Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
603c461
perf: embed executor and compiler globals in the __thread TLS cache s…
henderkes Jul 14, 2026
49fd6e3
fix typo
henderkes Jul 23, 2026
8afed0b
leave the option of initial-exec tls model even for apache2handler if…
henderkes Aug 11, 2026
8cbf6f5
remove ts_allocate_fast_id_at again (unused, now that the four global…
henderkes Aug 11, 2026
549ecde
guard ts_apply_for_id and ts_free_id for own threads globals too
henderkes Aug 12, 2026
d83721c
reword comment
henderkes Aug 12, 2026
bd07fbb
stupid typo
henderkes Aug 12, 2026
573d980
clarification
henderkes Aug 12, 2026
c67e552
abort, rather than assert
henderkes Aug 12, 2026
f37864b
largely revert jit, just offsetof self* in the tsrm struct
henderkes Aug 13, 2026
4d670df
LE guard for external embedders
henderkes Aug 13, 2026
25559c2
drop unused TSRMLS_MAIN_CACHE_DEFINE()
henderkes Aug 20, 2026
07862bc
spelling mistakes
henderkes Aug 20, 2026
18c0f65
remove useless line
henderkes Aug 20, 2026
bcf1a46
move GC globals into __thread storage too
henderkes Aug 20, 2026
016e1ab
feedback: teb slot needs _m_x64
henderkes Aug 27, 2026
555646d
feedback: precompute teb slot offset
henderkes Aug 27, 2026
096ee6b
feedback: move macros into tsrm.h
henderkes Aug 27, 2026
b34b6c6
feedback: add zend_tsrmg_direct macro
henderkes Aug 27, 2026
bed8bda
feedback: move zend_win_tsrm_cache_init to tsrm.c
henderkes Aug 27, 2026
261db20
feedback: tsrm initializes tls slot
henderkes Aug 27, 2026
11afd15
perf: non-volatile gs read on clang
henderkes Aug 27, 2026
f5b3499
tsrm: identify thread entries by pointer, not by recycled thread id
henderkes Aug 28, 2026
6f60a87
fix tests
henderkes Aug 28, 2026
c2d4528
fix gdb script
henderkes Aug 28, 2026
a3c09d3
fall back to &_tsrm_ls_cache in case something blew the early TEB slo…
henderkes Aug 28, 2026
02ae5f7
suggestion: TlsFree in case of dll unload or late-TEB fallback
henderkes Aug 28, 2026
6b94d63
let ts_free_thread() clear EG(persistent_list) to prevent leaks
henderkes Sep 4, 2026
10f8c55
attach automatic pthread_key/fls callbacks to automatically call `ts_…
henderkes Sep 4, 2026
28ea67a
set up _tlv_atexit() for macOS plist cleanup
henderkes Sep 20, 2026
d34ae6b
use ir TLS_ADDR
henderkes Sep 21, 2026
868c117
Merge branch 'master' into perf/1-tls-eg-cg
henderkes Oct 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions .gdbinit
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,22 @@ define set_ts
end

document set_ts
set the ts resource, it is impossible for gdb to
call ts_resource_ex while no process is running,
but we could get the resource from the argument
of frame info.
set a legacy TSRM resource cache pointer when it is available
from a frame argument. Pass 0 to use the current thread's
direct executor and compiler globals.
end

define ____executor_globals
if basic_functions_module.zts
set $tsrm_ls = _tsrm_ls_cache
set $eg = ((zend_executor_globals*) (*((void ***) $tsrm_ls))[executor_globals_id-1])
set $cg = ((zend_compiler_globals*) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
set $eg_ptr = $eg
if !$tsrm_ls
set $eg = _tsrm_ls_cache.eg
set $cg = _tsrm_ls_cache.cg
set $eg_ptr = (zend_executor_globals*) &_tsrm_ls_cache.eg
else
set $eg = ((zend_executor_globals*) (*((void ***) $tsrm_ls))[executor_globals_id-1])
set $cg = ((zend_compiler_globals*) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
set $eg_ptr = $eg
end
else
set $eg = executor_globals
set $cg = compiler_globals
Expand Down
Loading
Loading