RE: [PATCH 00/40] Staging: hv: Driver cleanup
From: KY Srinivasan <kys@microsoft.com>
Date: 2011-07-01 13:25:29
Also in:
lkml
-----Original Message----- From: Stephen Hemminger [mailto:shemminger@vyatta.com] Sent: Friday, July 01, 2011 12:45 AM To: KY Srinivasan Cc: Christoph Hellwig; devel@linuxdriverproject.org; gregkh@suse.de; linux- kernel@vger.kernel.org; virtualization@lists.osdl.org Subject: Re: [PATCH 00/40] Staging: hv: Driver cleanup On Fri, 1 Jul 2011 00:19:38 +0000 KY Srinivasan [off-list ref] wrote:quoted
quoted
-----Original Message----- From: Stephen Hemminger [mailto:shemminger@vyatta.com] Sent: Thursday, June 30, 2011 7:48 PM To: KY Srinivasan Cc: Christoph Hellwig; devel@linuxdriverproject.org; gregkh@suse.de; linux- kernel@vger.kernel.org; virtualization@lists.osdl.org Subject: Re: [PATCH 00/40] Staging: hv: Driver cleanup On Thu, 30 Jun 2011 23:32:34 +0000 KY Srinivasan [off-list ref] wrote:quoted
quoted
-----Original Message----- From: Christoph Hellwig [mailto:hch@infradead.org] Sent: Thursday, June 30, 2011 3:34 PM To: KY Srinivasan Cc: gregkh@suse.de; linux-kernel@vger.kernel.org; devel@linuxdriverproject.org; virtualization@lists.osdl.org Subject: Re: [PATCH 00/40] Staging: hv: Driver cleanup On Wed, Jun 29, 2011 at 07:38:21AM -0700, K. Y. Srinivasan wrote:quoted
Further cleanup of the hv drivers: 1) Cleanup the reference counting mess for both stor and netdevices.quoted
quoted
quoted
quoted
I really don't understand the need for reference counting on the storage side, especially now that you only have a SCSI driver. The SCSI midlayer does proper counting on it's objects (Scsi_Host, scsi_device, scsi_cmnd), so you'll get that for free given that SCSI drivers just piggyback on the midlayer lifetime rules. For now your patches should probably go in as-is, but mid-term you should be able to completely remove that code on the storage side.Greg, I am thinking of going back to my original implementation where I had onescsiquoted
quoted
hostquoted
per IDE device. This will certainly simply the code. Let me know what youthink.quoted
quoted
If youquoted
agree with this approach, please drop this patch-set, I will send you a newsetquoted
quoted
of patches. I think there ref counting on network devices is also unneeded as long as the unregister logic handles RCU correctly. The network layer calls the driver unregister routine after all packets are gone.On the networking side, what about incoming packets that may be racing with the device destruction. The current ref counting scheme deals with that case.Not sure how HV driver tells hypervisor to stop sending packets. But the destructor is not called until after all other CPU's are done processing packets from that device.
The issue I was concerned is one where, on packet reception, we need to de-reference the ext field in the struct hv_device (this is the pointer to the net device and this could happen concurrently with the guest trying to shut-down the device. In the current code we deal with this condition. Regards, K. Y