Saurabh Misra
2009-May-21 18:23 UTC
[crossbow-discuss] Panic in mac:mac_tx_srs_wakeup on freed flow control entry
Hi -- I''m seeing a panic while running NICDRV. It''s happening when running test09 (Nemo_Trunk) of the testsuite. I didn''t see this before though. Just want to check if it''s my problem or not. It does seem like a race between TX interrupt calling mac_tx_update() and thread removing TX src (mac src client). > $C ffffff0003ec59f0 vpanic() ffffff0003ec5a20 mutex_panic+0x73(fffffffffb92d478, ffffffcc53dc82c0) ffffff0003ec5a80 mutex_vector_enter+0x446(ffffffcc53dc82c0) ffffff0003ec5ad0 mac_tx_srs_wakeup+0x2b(ffffffcc53dc82c0, 0) ffffff0003ec5b10 i_mac_tx_srs_notify+0x79(ffffff0153f3a738, 0) ffffff0003ec5b30 mac_tx_update+0x18(ffffff0153f3a738) ffffff0003ec5b60 bfe_tx_done+0x34(ffffff0153b0dd00, 1000000) ffffff0003ec5bb0 bfe_interrupt+0xbb(ffffff0153b0dd00, 0) ffffff0003ec5c00 av_dispatch_autovect+0x7c(15) ffffff0003ec5c40 dispatch_hardint+0x33(15, 0) ffffff00045888d0 switch_sp_and_call+0x13() ffffff0004588920 do_interrupt+0x9e(ffffff0004588930, ffffffcc53dc88b8) ffffff0004588930 _interrupt+0xba() ffffff0004588a30 mac_srs_free+0x5a(ffffffcc53dc82c0) ffffff0004588a90 mac_srs_group_teardown+0xf5(ffffff6972044130, ffffff9a92f95428 , 1) ffffff0004588af0 mac_datapath_teardown+0x8e(ffffff6972044130, ffffff9a92f95428, 1) ffffff0004588b40 mac_unicast_remove+0xfa(ffffff6972044130, ffffff84bda00c40) ffffff0004588b70 aggr_port_delete+0xc2(ffffff84bd9ea790) ffffff0004588be0 aggr_grp_delete+0x1aa(11c) ffffff0004588c20 aggr_ioc_delete+0x27(ffffff84c246dd60, 8046f74, 100003, ffffff7302534830, ffffff0004588de4) ffffff0004588cc0 drv_ioctl+0x137(b200000000, a660002, 8046f74, 100003, ffffff7302534830, ffffff0004588de4) ffffff0004588d00 cdev_ioctl+0x45(b200000000, a660002, 8046f74, 100003, ffffff7302534830, ffffff0004588de4) ffffff0004588d40 spec_ioctl+0x83(ffffff01513c7200, a660002, 8046f74, 100003, ffffff7302534830, ffffff0004588de4, 0) ffffff0004588dc0 fop_ioctl+0x7b(ffffff01513c7200, a660002, 8046f74, 100003, ffffff7302534830, ffffff0004588de4, 0) ffffff0004588ec0 ioctl+0x18e(3, a660002, 8046f74) ffffff0004588f10 _sys_sysenter_post_swapgs+0x14b() Here''s the cclient list > ffffff0153f3a738::print mac_impl_t mi_clients_list | ::list mac_client_impl_t mci_client_next | ::print mac_client_impl_t mci_flent | ::print flow_entry_t fe_tx_srs fe_tx_srs = 0xffffffcc53dc82c0 fe_tx_srs = 0 And the mac src (TX) is freed already by the pinned thread perhaps. > 0xffffffcc53dc82c0::print mac_soft_ring_set_t srs_lock { srs_lock._opaque = [ 0xdeadbeefdeadbeef ] } > I don''t see any detach in progress so my driver didn''t call mac_unregister while interrupt was still active. From test09 logs : stdout| Configuring nfs . DONE stdout| Distributing the test binary . . DONE stdout| Configuring mount points . . DONE stdout| Starting Corrupt . . DONE stdout| Corrupt Started. Running for 600 seconds stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed stdout| trunk_switch: aggr1 deleted stdout| trunk_switch: aggr1 plumbed I''m running snv_113. Thanks, -- http://saurabhslr.blogspot.com/
rajagopal kunhappan
2009-May-21 19:02 UTC
[crossbow-discuss] Panic in mac:mac_tx_srs_wakeup on freed flow control entry
Saurabh, If you have time, take a look at other NICs and see why it doesn''t happen there. Otherwise feel free to file a bug and one of us will get back to you. At this time, everyone is chasing one hot issue or other. Thanks, -krgopi> Hi -- > > I''m seeing a panic while running NICDRV. It''s happening when running > test09 (Nemo_Trunk) of the testsuite. I didn''t see this before though. > > Just want to check if it''s my problem or not. It does seem like a race > between TX interrupt calling mac_tx_update() and thread removing TX src > (mac src client). > > > $C > ffffff0003ec59f0 vpanic() > ffffff0003ec5a20 mutex_panic+0x73(fffffffffb92d478, ffffffcc53dc82c0) > ffffff0003ec5a80 mutex_vector_enter+0x446(ffffffcc53dc82c0) > ffffff0003ec5ad0 mac_tx_srs_wakeup+0x2b(ffffffcc53dc82c0, 0) > ffffff0003ec5b10 i_mac_tx_srs_notify+0x79(ffffff0153f3a738, 0) > ffffff0003ec5b30 mac_tx_update+0x18(ffffff0153f3a738) > ffffff0003ec5b60 bfe_tx_done+0x34(ffffff0153b0dd00, 1000000) > ffffff0003ec5bb0 bfe_interrupt+0xbb(ffffff0153b0dd00, 0) > ffffff0003ec5c00 av_dispatch_autovect+0x7c(15) > ffffff0003ec5c40 dispatch_hardint+0x33(15, 0) > ffffff00045888d0 switch_sp_and_call+0x13() > ffffff0004588920 do_interrupt+0x9e(ffffff0004588930, ffffffcc53dc88b8) > ffffff0004588930 _interrupt+0xba() > ffffff0004588a30 mac_srs_free+0x5a(ffffffcc53dc82c0) > ffffff0004588a90 mac_srs_group_teardown+0xf5(ffffff6972044130, > ffffff9a92f95428 > , 1) > ffffff0004588af0 mac_datapath_teardown+0x8e(ffffff6972044130, > ffffff9a92f95428, > 1) > ffffff0004588b40 mac_unicast_remove+0xfa(ffffff6972044130, > ffffff84bda00c40) > ffffff0004588b70 aggr_port_delete+0xc2(ffffff84bd9ea790) > ffffff0004588be0 aggr_grp_delete+0x1aa(11c) > ffffff0004588c20 aggr_ioc_delete+0x27(ffffff84c246dd60, 8046f74, 100003, > ffffff7302534830, ffffff0004588de4) > ffffff0004588cc0 drv_ioctl+0x137(b200000000, a660002, 8046f74, 100003, > ffffff7302534830, ffffff0004588de4) > ffffff0004588d00 cdev_ioctl+0x45(b200000000, a660002, 8046f74, 100003, > ffffff7302534830, ffffff0004588de4) > ffffff0004588d40 spec_ioctl+0x83(ffffff01513c7200, a660002, 8046f74, > 100003, > ffffff7302534830, ffffff0004588de4, 0) > ffffff0004588dc0 fop_ioctl+0x7b(ffffff01513c7200, a660002, 8046f74, 100003, > ffffff7302534830, ffffff0004588de4, 0) > ffffff0004588ec0 ioctl+0x18e(3, a660002, 8046f74) > ffffff0004588f10 _sys_sysenter_post_swapgs+0x14b() > > > Here''s the cclient list > > > ffffff0153f3a738::print mac_impl_t mi_clients_list | ::list > mac_client_impl_t mci_client_next | ::print mac_client_impl_t mci_flent > | ::print flow_entry_t fe_tx_srs > fe_tx_srs = 0xffffffcc53dc82c0 > fe_tx_srs = 0 > > And the mac src (TX) is freed already by the pinned thread perhaps. > > > 0xffffffcc53dc82c0::print mac_soft_ring_set_t srs_lock > { > srs_lock._opaque = [ 0xdeadbeefdeadbeef ] > } > > > > I don''t see any detach in progress so my driver didn''t call > mac_unregister while interrupt was still active. > > From test09 logs : > > stdout| Configuring nfs . DONE > stdout| Distributing the test binary . . DONE > stdout| Configuring mount points . . DONE > stdout| Starting Corrupt . . DONE > stdout| Corrupt Started. Running for 600 seconds > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > stdout| trunk_switch: aggr1 deleted > stdout| trunk_switch: aggr1 plumbed > > > I''m running snv_113. > > Thanks, > -- > http://saurabhslr.blogspot.com/ > _______________________________________________ > crossbow-discuss mailing list > crossbow-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/crossbow-discuss--