Indexes and tables#
TODO#
Todo
Can reuse serial lock for gl-*? And if we can, does it make sense to introduce further complexity in the serial lock? For gl-*, we can really only avoid an abort if we do -wb and -vbv.
(The original entry is located in /home/marxin/BIG/buildbot/buildworker/marxinbox-sphinx/build/libitm/doc/locking-conventions.rst, line 119.)
Todo
How to implement the waiters? Should those flags be per-transaction or at a central place? We want to avoid one wake/wait call per active transactions, so we might want to use either a tree or combining to reduce the syscall overhead, or rather spin for a long amount of time instead of doing blocking. Also, it would be good if only the last transaction that the privatizer waits for would do the wake-up.
(The original entry is located in /home/marxin/BIG/buildbot/buildworker/marxinbox-sphinx/build/libitm/doc/locking-conventions.rst, line 214.)
Todo
Lexical or dynamic scope?
(The original entry is located in /home/marxin/BIG/buildbot/buildworker/marxinbox-sphinx/build/libitm/doc/the-libitm-abi/function-list.rst, line 59.)
Todo
The intention was always to drop the registration functions
entirely, and create a new ELF Phdr describing the linker-sorted table. Much
like what currently happens for PT_GNU_EH_FRAME
.
This work kept getting bogged down in how to represent the N
different
code generation variants. We clearly needed at least two—SW and HW
transactional clones—but there was always a suggestion of more variants for
different TM assumptions/invariants.
(The original entry is located in /home/marxin/BIG/buildbot/buildworker/marxinbox-sphinx/build/libitm/doc/the-libitm-abi/function-list.rst, line 234.)