[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] xenwatch_dev_cb into D states with abnormal socket connect between host and VM



I have met a netback issue.


when a socket connect between Host and VMthe server in Host and client in VMif the client send messagebut server don’t receive packet with some unknown reasonnow shutdown the VM

netback’s xenwatch_dev_cb kernel thread into D states, Until kill server process, netback exit D states,


the stack of xenwatch_dev_cb is:

[<ffffffffa0947135>] netif_disconnect+0x75/0x200 [netbk]

[<ffffffffa0945f06>] netback_disconnect+0x76/0xb0 [netbk]

[<ffffffffa094671a>] frontend_changed+0x12a/0x430 [netbk]

[<ffffffff802f5add>] xenwatch_dev_callback+0x8d/0x120

[<ffffffff80069c16>] kthread+0x96/0xa0

[<ffffffff80415f74>] kernel_thread_helper+0x4/0x10


By analyzing the module drivers/xen/netback, I think the reason is as follows:

1.       the thread hold in wait_event(netif->waiting_to_free, atomic_read(&netif->refcnt) == 0) in netif_disconnect fun, because netif->refcnt not equal 0

2.       when the socket connected but server don’t receive packetthe skb from netback will be queued in socket’s list, and skb’s page can’t be unmap, the netback’s refcnt can’t be decrease.


Xen4.1.2 and host is SUSE 11 SP3, kernel 3.0.93-0.8-xen;


Does anyone have met such problems? Thanks.


Best regards,

Zhang Yabin


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.