On Sat, 4 Jul 2009, Jonathan Edwards wrote:
this is only going to help if you've got problems in zfetch .. you'd probably
see this better by looking for high lock contention in zfetch with lockstat
This is what lockstat says when performance is poor:
Adaptive mutex spin: 477 events in 30.019 seconds (16 events/sec)
Count indv cuml rcnt nsec Lock Caller
-------------------------------------------------------------------------------
47 10% 10% 0.00 5813 0xffffffff80256000 untimeout+0x24
46 10% 19% 0.00 2223 0xffffffffb0a2f200 taskq_thread+0xe3
38 8% 27% 0.00 2252 0xffffffffb0a2f200 cv_wait+0x70
29 6% 34% 0.00 1115 0xffffffff80256000 callout_execute+0xeb
26 5% 39% 0.00 3006 0xffffffffb0a2f200 taskq_dispatch+0x1b8
22 5% 44% 0.00 1200 0xffffffffa06158c0 post_syscall+0x206
18 4% 47% 0.00 3858 arc_eviction_mtx arc_do_user_evicts+0x76
16 3% 51% 0.00 1352 arc_eviction_mtx arc_buf_add_ref+0x2d
15 3% 54% 0.00 5376 0xffffffffb1adac28 taskq_thread+0xe3
11 2% 56% 0.00 2520 0xffffffffb1adac28 taskq_dispatch+0x1b8
9 2% 58% 0.00 2158 0xffffffffbb909e20 pollwakeup+0x116
9 2% 60% 0.00 2431 0xffffffffb1adac28 cv_wait+0x70
8 2% 62% 0.00 3912 0xffffffff80259000 untimeout+0x24
7 1% 63% 0.00 3679 0xffffffffb10dfbc0 polllock+0x3f
7 1% 65% 0.00 2171 0xffffffffb0a2f2d8 cv_wait+0x70
6 1% 66% 0.00 771 0xffffffffb3f23708 pcache_delete_fd+0xac
6 1% 67% 0.00 4679 0xffffffffb0a2f2d8 taskq_dispatch+0x1b8
5 1% 68% 0.00 500 0xffffffffbe555040 fifo_read+0xf8
5 1% 69% 0.00 15838 0xffffffff8025c000 untimeout+0x24
4 1% 70% 0.00 1213 0xffffffffac44b558 sd_initpkt_for_buf+0x110
4 1% 71% 0.00 638 0xffffffffa28722a0 polllock+0x3f
4 1% 72% 0.00 610 0xffffffff80259000 timeout_common+0x39
4 1% 73% 0.00 10691 0xffffffff80256000 timeout_common+0x39
3 1% 73% 0.00 1559 htable_mutex+0x78 htable_release+0x8a
3 1% 74% 0.00 3610 0xffffffffbb909e20 cv_timedwait_sig+0x1c1
3 1% 74% 0.00 1636 0xffffffffa240d410
ohci_allocate_periodic_in_resource+0x71
2 0% 75% 0.00 5959 0xffffffffbe555040 fifo_read+0x5c
2 0% 75% 0.00 3744 0xffffffffbe555040 polllock+0x3f
2 0% 76% 0.00 635 0xffffffffb3f23708 pollwakeup+0x116
2 0% 76% 0.00 709 0xffffffffb3f23708 cv_timedwait_sig+0x1c1
2 0% 77% 0.00 831 0xffffffffb3dd2070 pcache_insert+0x13d
2 0% 77% 0.00 5976 0xffffffffb3dd2070 pollwakeup+0x116
2 0% 77% 0.00 1339 0xffffffffb1eb9b80 metaslab_group_alloc+0x136
2 0% 78% 0.00 1514 0xffffffffb0a2f2d8 taskq_thread+0xe3
2 0% 78% 0.00 4042 0xffffffffb0a22988 vdev_queue_io_done+0xc3
2 0% 79% 0.00 3428 0xffffffffb0a21f08 vdev_queue_io_done+0xc3
2 0% 79% 0.00 1002 0xffffffffac44b558 sd_core_iostart+0x37
2 0% 79% 0.00 1387 0xffffffffa8c56d80 xbuf_iostart+0x7d
2 0% 80% 0.00 698 0xffffffffa58a3318 sd_return_command+0x11b
2 0% 80% 0.00 385 0xffffffffa58a3318 sd_start_cmds+0x115
2 0% 81% 0.00 562 0xffffffffa5647800 ssfcp_scsi_start+0x30
2 0% 81% 0.00 1620 0xffffffffa4162d58 ssfcp_scsi_init_pkt+0x1be
2 0% 82% 0.00 897 0xffffffffa4162d58 ssfcp_scsi_start+0x42
2 0% 82% 0.00 475 0xffffffffa4162b78 ssfcp_scsi_start+0x42
2 0% 82% 0.00 697 0xffffffffa40fb158 sd_start_cmds+0x115
2 0% 83% 0.00 10901 0xffffffffa28722a0 fifo_write+0x5b
2 0% 83% 0.00 4379 0xffffffffa28722a0 fifo_read+0xf8
2 0% 84% 0.00 1534 0xffffffffa2638390 emlxs_tx_get+0x38
2 0% 84% 0.00 1601 0xffffffffa2638350 emlxs_issue_iocb_cmd+0xc1
2 0% 84% 0.00 6697 0xffffffffa2503f08 vdev_queue_io_done+0x7b
2 0% 85% 0.00 4113 0xffffffffa24040b0
gcpu_ntv_mca_poll_wrapper+0x64
2 0% 85% 0.00 928 0xfffffe85dc140658 pollwakeup+0x116
1 0% 86% 0.00 404 iommulib_lock lookup_cache+0x2c
1 0% 86% 0.00 4867 pidlock thread_exit+0x6f
1 0% 86% 0.00 1245 plocks+0x3c0 pollhead_delete+0x23
1 0% 86% 0.00 2452 plocks+0x3c0 pollhead_insert+0x35
1 0% 86% 0.00 882 htable_mutex+0x3c0 htable_lookup+0x83
1 0% 87% 0.00 28547 htable_mutex+0x3c0 htable_create+0xe3
1 0% 87% 0.00 21173 htable_mutex+0x3c0 htable_release+0x8a
1 0% 87% 0.00 1235 htable_mutex+0x370 htable_lookup+0x83
1 0% 87% 0.00 3212 htable_mutex+0x370 htable_release+0x8a
1 0% 87% 0.00 793 htable_mutex+0x78 htable_lookup+0x83
1 0% 88% 0.00 981 buf_hash_table+0x1210 arc_buf_add_ref+0x7c
1 0% 88% 0.00 1222 buf_hash_table+0x1c50 arc_buf_add_ref+0x7c
1 0% 88% 0.00 1585 buf_hash_table+0x2490 arc_buf_remove_ref+0x6d
1 0% 88% 0.00 1545158 ARC_mru+0x58 remove_reference+0x56
1 0% 88% 0.00 564 0xffffffffbcad4a00 strrput+0x19a
1 0% 89% 0.00 1033 0xffffffffbcad4a00 polllock+0x3f
1 0% 89% 0.00 587 0xffffffffbd328098 putnext+0x6c
1 0% 89% 0.00 11576 0xffffffffbd328098 strrput+0x19a
1 0% 89% 0.00 847 0xffffffffb3f23708 pcache_insert+0x13d
1 0% 90% 0.00 703 0xffffffffbb909e20 poll_common+0x258
1 0% 90% 0.00 1286 0xffffffffbcad4870 kstrgetmsg+0x79
1 0% 90% 0.00 1528 0xffffffffb1012e00 cv_wait+0x70
1 0% 90% 0.00 404 0xffffffffb1011de0 zio_notify_parent+0x37
1 0% 90% 0.00 764 0xffffffffb1011de0 zio_create+0x29f
1 0% 91% 0.00 5887 0xffffffffb0a2f3b0 cv_wait+0x70
1 0% 91% 0.00 883 0xffffffffb1ad3de0 metaslab_group_alloc+0x7e
1 0% 91% 0.00 555 0xffffffffb10dfbc0 fifo_write+0x5b
1 0% 91% 0.00 692 0xffffffffb3dd2070 pollrelock+0x36
1 0% 91% 0.00 4390 0xffffffffb0a22988 vdev_queue_io+0x6e
1 0% 92% 0.00 1449 0xffffffffb0a21f60 vdev_cache_write+0x64
1 0% 92% 0.00 859 0xffffffffb0a21a20 vdev_cache_write+0x64
1 0% 92% 0.00 446 0xffffffffb0a20ec8 vdev_queue_io+0x6e
1 0% 92% 0.00 1987 0xffffffffb0a21f08 vdev_queue_io+0x6e
1 0% 92% 0.00 5968 0xffffffffb0a21f08 vdev_queue_io_done+0x3a
1 0% 93% 0.00 280 0xffffffffac44b558 sd_start_cmds+0x115
1 0% 93% 0.00 527 0xffffffffac44b118 sd_core_iostart+0x37
1 0% 93% 0.00 380 0xffffffffac51aed8 sd_initpkt_for_buf+0x110
1 0% 93% 0.00 742 0xffffffffac51aed8 sdstrategy+0x53
1 0% 94% 0.00 696 0xffffffffac51aed8 sd_start_cmds+0x115
1 0% 94% 0.00 5398 0xffffffffb0a1c988 vdev_queue_io_done+0x3a
1 0% 94% 0.00 6102 0xffffffffb0a1c988 vdev_queue_io_done+0x7b
1 0% 94% 0.00 988 0xffffffffa40fbcd8 sd_return_command+0x11b
1 0% 94% 0.00 298 0xffffffffa4101460 ssfcp_scsi_init_pkt+0x3b4
1 0% 95% 0.00 302 0xffffffffa40fbcd8 sdstrategy+0x53
1 0% 95% 0.00 1436 0xffffffffa40fb158 sdintr+0x3a
1 0% 95% 0.00 764 0xffffffffa40fbcd8 sd_initpkt_for_buf+0x110
1 0% 95% 0.00 846 0xffffffffa40fbcd8 sd_start_cmds+0x115
1 0% 95% 0.00 1172 0xffffffffa5644f60 vdev_cache_write+0x64
1 0% 96% 0.00 8401 0xffffffffa5644f08 vdev_queue_io_done+0xc3
1 0% 96% 0.00 417 0xffffffffa5644f08 vdev_queue_io+0x6e
1 0% 96% 0.00 3419 0xffffffffa5644f08 vdev_queue_io_done+0x7b
1 0% 96% 0.00 1341 0xffffffffa58a3318 sd_core_iostart+0x37
1 0% 96% 0.00 431 0xffffffffa22cc840 fc_ulp_init_packet+0x31
1 0% 97% 0.00 569 0xffffffff807a4000 callout_execute+0xeb
1 0% 97% 0.00 695 0xffffffff8025c000 callout_execute+0xeb
1 0% 97% 0.00 500 0xffffffff80244000 callout_execute+0xeb
1 0% 97% 0.00 855 0xfffffe85dc140658 pcache_insert+0x13d
1 0% 97% 0.00 13339 0xfffffe85d67ddc48 cv_wait+0x70
1 0% 98% 0.00 5377 0xffffffff80253000 untimeout+0x24
1 0% 98% 0.00 5104 0xffffffff80253000 timeout_common+0x39
1 0% 98% 0.00 508 0xffffffff80253000 callout_execute+0xeb
1 0% 98% 0.00 260 0xffffffffa2638420 emlxs_register_pkt+0x30
1 0% 99% 0.00 1059 0xffffffffa2638390 emlxs_tx_put+0x79
1 0% 99% 0.00 411 0xffffffffa3e3a298 sdstrategy+0x53
1 0% 99% 0.00 336 0xffffffffa3d6e380 fc_ulp_init_packet+0x31
1 0% 99% 0.00 926 0xffffffffa3cdfc58 sd_start_cmds+0x115
1 0% 99% 0.00 894 0xffffffffa3e3a298 sd_core_iostart+0x37
1 0% 100% 0.00 766 0xffffffffa3e3a298 sd_buf_iodone+0x23
1 0% 100% 0.00 340 0xffffffffa3e58420 emlxs_register_pkt+0x30
1 0% 100% 0.00 1516 0xffffffffa3e58420 emlxs_unregister_pkt+0x53
-------------------------------------------------------------------------------
Adaptive mutex block: 7 events in 30.019 seconds (0 events/sec)
Count indv cuml rcnt nsec Lock Caller
-------------------------------------------------------------------------------
1 14% 14% 0.00 39004 0xffffffffbe555040 fifo_read+0x5c
1 14% 29% 0.00 78624 0xffffffffb3dd2070 pollwakeup+0x116
1 14% 43% 0.00 6668 0xffffffffb0a2f200 taskq_dispatch+0x1b8
1 14% 57% 0.00 35694 0xffffffffb0a2f3b0 cv_wait+0x70
1 14% 71% 0.00 22697 0xffffffffb0a21f08 vdev_queue_io_done+0xc3
1 14% 86% 0.00 20174 0xffffffffb0a1c988 vdev_queue_io_done+0x3a
1 14% 100% 0.00 7365 0xfffffe85d67ddc48 cv_wait+0x70
-------------------------------------------------------------------------------
Spin lock spin: 478 events in 30.019 seconds (16 events/sec)
Count indv cuml rcnt nsec Lock Caller
-------------------------------------------------------------------------------
131 27% 27% 0.00 1383 0xffffffffa21a89f8 disp_lock_enter+0x1e
93 19% 47% 0.00 962 0xffffffffa250e9c0 disp_lock_enter+0x1e
84 18% 64% 0.00 3085 0xffffffffa21a8a28 disp_lock_enter+0x1e
73 15% 80% 0.00 2105 cpu0_disp disp_lock_enter+0x1e
33 7% 87% 0.00 3548 0xffffffffa21a8a28 disp_lock_enter_high+0x9
22 5% 91% 0.00 6011 cpu0_disp disp_lock_enter_high+0x9
21 4% 96% 0.00 2222 hres_lock hr_clock_lock+0x1d
9 2% 97% 0.00 3869 0xffffffffa21a89f8 disp_lock_enter_high+0x9
8 2% 99% 0.00 1649 0xffffffffa250e9c0 disp_lock_enter_high+0x9
4 1% 100% 0.00 624 cp_default disp_lock_enter+0x1e
-------------------------------------------------------------------------------
Thread lock spin: 6 events in 30.019 seconds (0 events/sec)
Count indv cuml rcnt nsec Lock Caller
-------------------------------------------------------------------------------
2 33% 33% 0.00 698 transition_lock ts_update_list+0x5c
2 33% 67% 0.00 779 cpu[3]+0xf8 cv_wait+0x3e
1 17% 83% 0.00 452 cpu[3]+0xf8 cv_timedwait_sig+0xe1
1 17% 100% 0.00 324 cpu[2]+0xf8 cv_timedwait_sig+0xe1
-------------------------------------------------------------------------------
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss