Skip to content

Instantly share code, notes, and snippets.

@rzezeski
Created March 28, 2015 18:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rzezeski/9629efcd0e22551bae40 to your computer and use it in GitHub Desktop.
Save rzezeski/9629efcd0e22551bae40 to your computer and use it in GitHub Desktop.
TLB shootdown tracker
# /data/shootdowns | tee -i /data/shootdowns2.log
ADDRESS PAGES SHOOTDOWNS FACTOR LATENCY (us)
0xffffff26f1674000 1792 1 1792 492
0xffffff26f1630000 67 1 67 28
0xffffff26ffaf7000 62 1 62 30
0xffffff0bd2a90000 2 1 2 7
0xffffff0c9f659000 16 1 16 9
0xffffff0ca14db000 32 1 32 10
0xffffff23542de000 64 1 64 16
0xffffff26f122e000 384 1 384 128
0xffffff26f13af000 64 1 64 26
0xffffff0c9f659000 16 1 16 10
0xffffff0ca14db000 32 1 32 11
0xffffff26ffb36000 67 1 67 34
0xffffff26ffb7a000 61 1 61 29
0xffffff0c9f659000 16 1 16 9
0xffffff0ca14db000 32 1 32 10
0xffffff23542de000 64 1 64 16
0xffffff26ffbb8000 67 1 67 28
0xffffff0c9f659000 16 1 16 9
0xffffff0ca14db000 32 1 32 10
0xffffff23542de000 64 1 64 16
ADDRESS PAGES SHOOTDOWNS FACTOR LATENCY (us)
0xffffff0c9f659000 16 1 16 9
0xffffff0ca14db000 32 1 32 12
0xffffff23542de000 64 1 64 17
0xffffff0906383000 2 1 2 5
0xffffff0906383000 2 1 2 4
0xffffff0906383000 2 1 2 3
0xffffff0906383000 2 1 2 4
0xffffff0906383000 2 1 2 4
0xffffff0906383000 2 1 2 4
^C
TOP FIVE STACKS BY FREQUENCY
The top five stacks leading to memory unload.
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
unix`kstat_free+0x35
unix`kstat_delete+0x176
mac`mac_misc_stat_delete+0x24
mac`mac_client_datapath_teardown+0xc7
mac`mac_unicast_remove+0x27a
vnic`vnic_dev_delete+0x15e
vnic`vnic_ioc_delete+0x28
dld`drv_ioctl+0x1e4
genunix`cdev_ioctl+0x39
specfs`spec_ioctl+0x60
genunix`fop_ioctl+0x55
genunix`ioctl+0x9b
unix`sys_syscall32+0x109
1
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`kmem_free+0x128
kstat`read_kstat_data+0x19d
kstat`kstat_ioctl+0x83
genunix`cdev_ioctl+0x39
specfs`spec_ioctl+0x60
genunix`fop_ioctl+0x55
genunix`ioctl+0x9b
unix`_sys_sysenter_post_swapgs+0x153
2
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`kmem_free+0x128
genunix`i_ddi_di_cache_free+0x71
genunix`free_cache_task+0x64
genunix`taskq_d_thread+0xb7
unix`thread_start+0x8
3
unix`hat_unload+0x3e
unix`bp_mapout+0xce
genunix`biowait+0x8b
ufs`ufs_putapage+0x401
ufs`ufs_putpages+0x39e
ufs`ufs_putpage+0x81
genunix`fop_putpage+0x4c
genunix`segvn_sync+0x549
genunix`as_ctl+0x342
genunix`memcntl+0x4de
unix`_sys_sysenter_post_swapgs+0x153
6
unix`hat_unload+0x3e
genunix`devmap_free_pages+0x49
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`devmap_umem_free_np+0x22
genunix`ddi_umem_free+0xc4
devinfo`di_freemem+0x3f
devinfo`di_ioctl+0x338
genunix`cdev_ioctl+0x39
specfs`spec_ioctl+0x60
genunix`fop_ioctl+0x55
genunix`ioctl+0x9b
unix`_sys_sysenter_post_swapgs+0x153
14
TOP FIVE STACKS BY PAGES UNMAPPED
The fives stacks unmapping the most memory. For each stack the
distribution of pages per memory unmapping is shown. The value on the
left is # of pages unmapped in one call.
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`kmem_free+0x128
kstat`read_kstat_data+0x19d
kstat`kstat_ioctl+0x83
genunix`cdev_ioctl+0x39
specfs`spec_ioctl+0x60
genunix`fop_ioctl+0x55
genunix`ioctl+0x9b
unix`_sys_sysenter_post_swapgs+0x153
value ------------- Distribution ------------- count
58 | 0
60 |██████████████████████████████████████ 1
62 |██████████████████████████████████████ 1
64 | 0
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`kmem_free+0x128
genunix`i_ddi_di_cache_free+0x71
genunix`free_cache_task+0x64
genunix`taskq_d_thread+0xb7
unix`thread_start+0x8
value ------------- Distribution ------------- count
64 | 0
66 |██████████████████████████████████████ 3
68 | 0
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`kmem_free+0x128
ip`ipcl_destroy+0x67
ip`ip_stack_fini+0x19b
genunix`netstack_apply_destroy+0xeb
genunix`apply_all_modules_reverse+0x49
genunix`netstack_stack_inactive+0x12b
genunix`netstack_rele+0x7d
genunix`netstack_zone_destroy+0x67
genunix`zsd_apply_destroy+0x1d1
genunix`zsd_apply_all_keys+0x5f
genunix`zone_zsd_callbacks+0xe6
genunix`zone_destroy+0xe0
genunix`zone+0x1e7
unix`sys_syscall+0x17a
value ------------- Distribution ------------- count
360 | 0
380 |██████████████████████████████████████ 1
400 | 0
unix`hat_unload+0x3e
genunix`devmap_free_pages+0x49
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`devmap_umem_free_np+0x22
genunix`ddi_umem_free+0xc4
devinfo`di_freemem+0x3f
devinfo`di_ioctl+0x338
genunix`cdev_ioctl+0x39
specfs`spec_ioctl+0x60
genunix`fop_ioctl+0x55
genunix`ioctl+0x9b
unix`_sys_sysenter_post_swapgs+0x153
value ------------- Distribution ------------- count
14 | 0
16 |██████████████████████████████████████ 5
18 | 0
20 | 0
22 | 0
24 | 0
26 | 0
28 | 0
30 | 0
32 |██████████████████████████████████████ 5
34 | 0
36 | 0
38 | 0
40 | 0
42 | 0
44 | 0
46 | 0
48 | 0
50 | 0
52 | 0
54 | 0
56 | 0
58 | 0
60 | 0
62 | 0
64 |██████████████████████████████▍ 4
66 | 0
unix`hat_unload+0x3e
unix`segkmem_free_vn+0x62
unix`segkmem_free+0x23
genunix`vmem_xfree+0xf4
genunix`vmem_free+0x23
genunix`kmem_free+0x128
kvm`kvm_free_physmem_slot+0x3d
kvm`kvm_free_physmem+0x40
kvm`kvm_arch_destroy_vm_comps+0x26
kvm`kvm_destroy_vm+0x36
kvm`kvm_close+0x88
genunix`dev_close+0x31
specfs`device_close+0xd8
specfs`spec_delmap+0xd8
genunix`fop_delmap+0x81
genunix`segdev_unmap+0x156
genunix`as_free+0xe7
genunix`relvm+0x220
genunix`proc_exit+0x49d
genunix`exit+0x15
value ------------- Distribution ------------- count
980 | 0
>= 1000 |██████████████████████████████████████ 1
OVERALL LATENCY
The latency distribution for all memory unmappings. The value on the
left is latency in microseconds.
value ------------- Distribution ------------- count
2 | 0
3 |██████▎ 1
4 |█████████████████████████▎ 4
5 |██████▎ 1
6 | 0
7 |██████▎ 1
8 | 0
9 |█████████████████████████▎ 4
10 |██████████████████████████████████████ 6
15 |█████████████████████████▎ 4
20 | 0
25 |█████████████████████████▎ 4
30 |████████████▋ 2
35 | 0
40 | 0
45 | 0
50 | 0
55 | 0
60 | 0
65 | 0
70 | 0
75 | 0
80 | 0
85 | 0
90 | 0
95 | 0
100 |██████▎ 1
150 | 0
200 | 0
250 | 0
300 | 0
350 | 0
400 | 0
450 |██████▎ 1
500 | 0
OVERALL SAVINGS
total pages unmapped 3074
total shootdowns 29
total factor saved 106
The savings distribution for all shootdowns. The value on the left
is the factor saved (# pages / # shootdowns).
value ------------- Distribution ------------- count
1 | 0
2 |██████████████████████████████████████ 7
3 | 0
4 | 0
5 | 0
6 | 0
7 | 0
8 | 0
9 | 0
10 | 0
12 | 0
14 | 0
16 |███████████████████████████▏ 5
18 | 0
20 | 0
22 | 0
24 | 0
26 | 0
28 | 0
30 | 0
32 |███████████████████████████▏ 5
34 | 0
36 | 0
38 | 0
40 | 0
42 | 0
44 | 0
46 | 0
48 | 0
50 | 0
52 | 0
54 | 0
56 | 0
58 | 0
60 |█████▍ 1
62 |█████▍ 1
64 |███████████████████████████▏ 5
66 |████████████████▎ 3
68 | 0
70 | 0
72 | 0
74 | 0
76 | 0
78 | 0
80 | 0
82 | 0
84 | 0
86 | 0
88 | 0
90 | 0
92 | 0
94 | 0
96 | 0
98 | 0
100 | 0
120 | 0
140 | 0
160 | 0
180 | 0
200 | 0
220 | 0
240 | 0
260 | 0
280 | 0
300 | 0
320 | 0
340 | 0
360 | 0
380 |█████▍ 1
400 | 0
420 | 0
440 | 0
460 | 0
480 | 0
500 | 0
520 | 0
540 | 0
560 | 0
580 | 0
600 | 0
620 | 0
640 | 0
660 | 0
680 | 0
700 | 0
720 | 0
740 | 0
760 | 0
780 | 0
800 | 0
820 | 0
840 | 0
860 | 0
880 | 0
900 | 0
920 | 0
940 | 0
960 | 0
980 | 0
>= 1000 |█████▍ 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment