Commit 6c08254
committed
gh-138122: Add blocking mode for accurate stack traces in Tachyon
Non-blocking sampling reads process memory while the target continues
running, which can produce torn stacks when generators or coroutines
rapidly switch between yield points. Blocking mode uses atomic process
suspension (task_suspend on macOS, NtSuspendProcess on Windows,
PTRACE_SEIZE on Linux) to stop the target during each sample, ensuring
consistent snapshots.
Use blocking mode with longer intervals (1ms+) to avoid impacting the
target too much. The default non-blocking mode remains best for most
cases since it has zero overhead.
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>1 parent 049c252 commit 6c08254
File tree
14 files changed
+889
-94
lines changed- Doc/library
- Lib
- profiling/sampling
- test
- test_profiling/test_sampling_profiler
- Misc/NEWS.d/next/Library
- Modules/_remote_debugging
- clinic
- Python
- Tools/inspection
14 files changed
+889
-94
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
| 315 | + | |
| 316 | + | |
315 | 317 | | |
316 | 318 | | |
317 | 319 | | |
| |||
362 | 364 | | |
363 | 365 | | |
364 | 366 | | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
365 | 411 | | |
366 | 412 | | |
367 | 413 | | |
| |||
1296 | 1342 | | |
1297 | 1343 | | |
1298 | 1344 | | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
1299 | 1352 | | |
1300 | 1353 | | |
1301 | 1354 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
342 | 342 | | |
343 | 343 | | |
344 | 344 | | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
345 | 352 | | |
346 | 353 | | |
347 | 354 | | |
| |||
778 | 785 | | |
779 | 786 | | |
780 | 787 | | |
| 788 | + | |
781 | 789 | | |
782 | 790 | | |
783 | 791 | | |
| |||
848 | 856 | | |
849 | 857 | | |
850 | 858 | | |
| 859 | + | |
851 | 860 | | |
852 | 861 | | |
853 | 862 | | |
| |||
893 | 902 | | |
894 | 903 | | |
895 | 904 | | |
| 905 | + | |
896 | 906 | | |
897 | 907 | | |
898 | 908 | | |
| |||
940 | 950 | | |
941 | 951 | | |
942 | 952 | | |
| 953 | + | |
943 | 954 | | |
944 | 955 | | |
945 | 956 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
12 | 28 | | |
13 | 29 | | |
14 | 30 | | |
| |||
28 | 44 | | |
29 | 45 | | |
30 | 46 | | |
31 | | - | |
| 47 | + | |
32 | 48 | | |
33 | 49 | | |
34 | 50 | | |
35 | 51 | | |
36 | 52 | | |
| 53 | + | |
37 | 54 | | |
38 | 55 | | |
39 | 56 | | |
| |||
63 | 80 | | |
64 | 81 | | |
65 | 82 | | |
| 83 | + | |
66 | 84 | | |
67 | 85 | | |
68 | 86 | | |
69 | 87 | | |
70 | | - | |
71 | | - | |
72 | 88 | | |
73 | 89 | | |
74 | 90 | | |
| |||
78 | 94 | | |
79 | 95 | | |
80 | 96 | | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
89 | 106 | | |
90 | 107 | | |
91 | | - | |
| 108 | + | |
92 | 109 | | |
93 | 110 | | |
94 | 111 | | |
| 112 | + | |
95 | 113 | | |
96 | 114 | | |
97 | 115 | | |
| |||
303 | 321 | | |
304 | 322 | | |
305 | 323 | | |
| 324 | + | |
306 | 325 | | |
307 | 326 | | |
308 | 327 | | |
| |||
318 | 337 | | |
319 | 338 | | |
320 | 339 | | |
| 340 | + | |
321 | 341 | | |
322 | 342 | | |
323 | 343 | | |
| |||
343 | 363 | | |
344 | 364 | | |
345 | 365 | | |
| 366 | + | |
346 | 367 | | |
347 | 368 | | |
348 | 369 | | |
| |||
364 | 385 | | |
365 | 386 | | |
366 | 387 | | |
| 388 | + | |
367 | 389 | | |
368 | 390 | | |
369 | 391 | | |
| |||
379 | 401 | | |
380 | 402 | | |
381 | 403 | | |
| 404 | + | |
382 | 405 | | |
383 | 406 | | |
384 | 407 | | |
| |||
404 | 427 | | |
405 | 428 | | |
406 | 429 | | |
| 430 | + | |
407 | 431 | | |
408 | 432 | | |
409 | 433 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2931 | 2931 | | |
2932 | 2932 | | |
2933 | 2933 | | |
2934 | | - | |
| 2934 | + | |
2935 | 2935 | | |
2936 | | - | |
2937 | | - | |
| 2936 | + | |
| 2937 | + | |
2938 | 2938 | | |
2939 | | - | |
2940 | | - | |
2941 | | - | |
| 2939 | + | |
2942 | 2940 | | |
2943 | 2941 | | |
2944 | | - | |
2945 | | - | |
2946 | | - | |
| 2942 | + | |
| 2943 | + | |
2947 | 2944 | | |
2948 | | - | |
2949 | | - | |
| 2945 | + | |
| 2946 | + | |
| 2947 | + | |
| 2948 | + | |
| 2949 | + | |
2950 | 2950 | | |
2951 | | - | |
| 2951 | + | |
2952 | 2952 | | |
2953 | 2953 | | |
2954 | 2954 | | |
| |||
2958 | 2958 | | |
2959 | 2959 | | |
2960 | 2960 | | |
2961 | | - | |
2962 | | - | |
| 2961 | + | |
| 2962 | + | |
2963 | 2963 | | |
2964 | 2964 | | |
2965 | | - | |
| 2965 | + | |
2966 | 2966 | | |
2967 | | - | |
| 2967 | + | |
2968 | 2968 | | |
2969 | | - | |
2970 | | - | |
| 2969 | + | |
| 2970 | + | |
2971 | 2971 | | |
2972 | 2972 | | |
2973 | | - | |
| 2973 | + | |
2974 | 2974 | | |
2975 | | - | |
| 2975 | + | |
2976 | 2976 | | |
2977 | 2977 | | |
2978 | | - | |
2979 | | - | |
| 2978 | + | |
| 2979 | + | |
2980 | 2980 | | |
2981 | | - | |
2982 | 2981 | | |
2983 | 2982 | | |
2984 | 2983 | | |
2985 | 2984 | | |
2986 | 2985 | | |
2987 | 2986 | | |
2988 | | - | |
2989 | | - | |
2990 | | - | |
2991 | | - | |
2992 | | - | |
2993 | | - | |
2994 | | - | |
2995 | | - | |
2996 | | - | |
2997 | | - | |
2998 | | - | |
2999 | | - | |
3000 | | - | |
3001 | | - | |
3002 | | - | |
3003 | | - | |
3004 | | - | |
3005 | | - | |
3006 | | - | |
3007 | | - | |
| 2987 | + | |
| 2988 | + | |
| 2989 | + | |
| 2990 | + | |
| 2991 | + | |
| 2992 | + | |
| 2993 | + | |
| 2994 | + | |
| 2995 | + | |
3008 | 2996 | | |
3009 | 2997 | | |
| 2998 | + | |
| 2999 | + | |
| 3000 | + | |
| 3001 | + | |
| 3002 | + | |
| 3003 | + | |
| 3004 | + | |
| 3005 | + | |
3010 | 3006 | | |
3011 | 3007 | | |
3012 | 3008 | | |
| |||
0 commit comments