From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amos Kong Subject: Re: [PATCH v2] virtio-rng: fix stuck of hot-unplugging busy device Date: Wed, 10 Sep 2014 14:12:57 +0800 Message-ID: <20140910061257.GA30285@zen.redhat.com> References: <1410261242-16328-1-git-send-email-akong@redhat.com> <20140910053454.GA29832@grmbl.mre> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20140910053454.GA29832@grmbl.mre> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Amit Shah Cc: stable@vger.kernel.org, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org T24gV2VkLCBTZXAgMTAsIDIwMTQgYXQgMTE6MDQ6NTRBTSArMDUzMCwgQW1pdCBTaGFoIHdyb3Rl Ogo+IEhpIEFtb3MsCj4gCj4gT24gKFR1ZSkgMDkgU2VwIDIwMTQgWzE5OjE0OjAyXSwgQW1vcyBL b25nIHdyb3RlOgo+ID4gV2hlbiB3ZSB0cnkgdG8gaG90LXJlbW92ZSBhIGJ1c3kgdmlydGlvLXJu ZyBkZXZpY2UgZnJvbSBRRU1VIG1vbml0b3IsCj4gPiB0aGUgZGV2aWNlIGNhbid0IGJlIGhvdC1y ZW1vdmVkLiBCZWNhdXNlIHZpcnRpby1ybmcgZHJpdmVyIGhhbmdzIGF0Cj4gPiB3YWl0X2Zvcl9j b21wbGV0aW9uX2tpbGxhYmxlKCkuCj4gPiAKPiA+IFRoaXMgcGF0Y2ggZXhpdHMgdGhlIHdhaXRp bmcgYnkgY29tcGxldGluZyBoYXZlX2RhdGEgY29tcGxldGlvbiBiZWZvcmUKPiA+IHVucmVnaXN0 ZXJpbmcsIHJlc2V0cyBkYXRhX2F2YWlsIHRvIGF2b2lkIHRoZSBod3JuZyBjb3JlIHVzZSB3cm9u Zwo+ID4gYnVmZmVyIGJ5dGVzLiBCZWZvcmUgcmVhbCB1bnJlZ2lzdGVyaW5nIHdlIHNob3VsZCBy ZXR1cm4gLUVOT0RFViBmb3IKPiA+IHJlYWRpbmcuCj4gPiAKPiA+IFdoZW4gd2UgaG90LXVucGx1 ZyB0aGUgZGV2aWNlLCBkZCBwcm9jZXNzIGluIGd1ZXN0IHdpbGwgZXhpdC4KPiA+ICAgJCBkZCBp Zj0vZGV2L2h3cm5nIG9mPS9kZXYvbnVsbAo+ID4gICBkZDogZXJyb3IgcmVhZGluZyDigJgvZGV2 L2h3cm5n4oCZOiBObyBzdWNoIGRldmljZQo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbW9zIEtv bmcgPGFrb25nQHJlZGhhdC5jb20+Cj4gPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+ID4g LS0tCj4gPiBWMjogcmVzZXQgZGF0YV9hdmFpbCAoQW1pdCkKPiA+ICAgICBhZGp1c3QgdW5yZWdp c3RlciBvcmRlcgo+IAo+IFRoYW5rcywgdGhpcyBsb29rcyBnb29kLgo+IAo+IENhbiB5b3UgcGxl YXNlIHNwbGl0IGludG8gdHdvIHBhcnRzLCB0aGUgY29tcGxldGUoKSBpbiBvbmUsIGFuZCB0aGUK PiBod3JuZ19yZWdpc3Rlcl9kb25lIHN0dWZmIGludG8gYW5vdGhlcj8KCkkganVzdCBwb3N0ZWQg dGhlIFYzLCBzcGxpdCB0byB0d28gcGF0Y2hlcywgYW5kIHVwZGF0ZWQgdGhlIGNvbW1pdGxvZwp0 byBkZXNjcmliZSB3aHkgd2UgbmVlZCB0byByZXR1cm4gRU5PREVWIGZvciByZWFkaW5nLgogCj4g VGhhbmtzLAo+IAo+IAkJQW1pdAoKLS0gCgkJCUFtb3MuCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0 dWFsaXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4 Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 10 Sep 2014 14:12:57 +0800 From: Amos Kong To: Amit Shah Cc: virtualization@lists.linux-foundation.org, kvm@vger.kernel.org, stable@vger.kernel.org, rusty@rustcorp.com.au Subject: Re: [PATCH v2] virtio-rng: fix stuck of hot-unplugging busy device Message-ID: <20140910061257.GA30285@zen.redhat.com> References: <1410261242-16328-1-git-send-email-akong@redhat.com> <20140910053454.GA29832@grmbl.mre> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20140910053454.GA29832@grmbl.mre> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, Sep 10, 2014 at 11:04:54AM +0530, Amit Shah wrote: > Hi Amos, > > On (Tue) 09 Sep 2014 [19:14:02], Amos Kong wrote: > > When we try to hot-remove a busy virtio-rng device from QEMU monitor, > > the device can't be hot-removed. Because virtio-rng driver hangs at > > wait_for_completion_killable(). > > > > This patch exits the waiting by completing have_data completion before > > unregistering, resets data_avail to avoid the hwrng core use wrong > > buffer bytes. Before real unregistering we should return -ENODEV for > > reading. > > > > When we hot-unplug the device, dd process in guest will exit. > > $ dd if=/dev/hwrng of=/dev/null > > dd: error reading ‘/dev/hwrng’: No such device > > > > Signed-off-by: Amos Kong > > Cc: stable@vger.kernel.org > > --- > > V2: reset data_avail (Amit) > > adjust unregister order > > Thanks, this looks good. > > Can you please split into two parts, the complete() in one, and the > hwrng_register_done stuff into another? I just posted the V3, split to two patches, and updated the commitlog to describe why we need to return ENODEV for reading. > Thanks, > > Amit -- Amos.