Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Commit8c21dc9
committed
gh-138122: Add blocking mode for accurate stack traces in Tachyon
Non-blocking sampling reads process memory while the target continuesrunning, which can produce torn stacks when generators or coroutinesrapidly switch between yield points. Blocking mode uses atomic processsuspension (task_suspend on macOS, NtSuspendProcess on Windows,PTRACE_SEIZE on Linux) to stop the target during each sample, ensuringconsistent snapshots.Use blocking mode with longer intervals (1ms+) to avoid impacting thetarget too much. The default non-blocking mode remains best for mostcases since it has zero overhead.Also fix a frame cache bug: the cache was including the last_profiled_frameitself when extending with cached data, but this frame was executing inthe previous sample and its line number may have changed. For example,if function A was sampled at line 6, then execution continued to line 10and called B→C, the next sample would incorrectly report A at line 6(from cache) instead of line 10. The fix uses start_idx + 1 to only trustframes ABOVE last_profiled_frame — these caller frames are frozen at theircall sites and cannot change until their callees return.Signed-off-by: Pablo Galindo <pablogsal@gmail.com>1 parent049c252 commit8c21dc9
File tree
14 files changed
+868
-78
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
+868
-78
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
Comments
(0)