From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40691) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wsr71-0007wB-23 for qemu-devel@nongnu.org; Fri, 06 Jun 2014 06:11:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wsr6w-0001uP-H6 for qemu-devel@nongnu.org; Fri, 06 Jun 2014 06:11:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1407) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wsr6w-0001uI-8s for qemu-devel@nongnu.org; Fri, 06 Jun 2014 06:10:58 -0400 Date: Fri, 6 Jun 2014 18:10:49 +0800 From: Amos Kong Message-ID: <20140606101049.GB12992@z.redhat.com> References: <1402017120-27655-1-git-send-email-akong@redhat.com> <1402017120-27655-4-git-send-email-akong@redhat.com> <33183CC9F5247A488A2544077AF1902086C05E64@SZXEMA503-MBS.china.huawei.com> <20140606052915.GB11586@z.redhat.com> <33183CC9F5247A488A2544077AF1902086C05FED@SZXEMA503-MBS.china.huawei.com> <20140606082340.GA12992@z.redhat.com> <33183CC9F5247A488A2544077AF1902086C06097@SZXEMA503-MBS.china.huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <33183CC9F5247A488A2544077AF1902086C06097@SZXEMA503-MBS.china.huawei.com> Subject: Re: [Qemu-devel] [PATCH v3 3/4] virtio-blk-test.c: add hotplug subtest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Gonglei (Arei)" Cc: "stefanha@gmail.com" , "qemu-devel@nongnu.org" , "afaerber@suse.de" On Fri, Jun 06, 2014 at 09:31:57AM +0000, Gonglei (Arei) wrote: > > -----Original Message----- > > From: Amos Kong [mailto:akong@redhat.com] > > Sent: Friday, June 06, 2014 4:24 PM > > To: Gonglei (Arei) > > Cc: qemu-devel@nongnu.org; stefanha@gmail.com; afaerber@suse.de > > Subject: Re: [PATCH v3 3/4] virtio-blk-test.c: add hotplug subtest > > > > On Fri, Jun 06, 2014 at 08:05:15AM +0000, Gonglei (Arei) wrote: > > > > -----Original Message----- > > > > From: Amos Kong [mailto:akong@redhat.com] > > > > Sent: Friday, June 06, 2014 1:29 PM > > > > To: Gonglei (Arei) > > > > Cc: qemu-devel@nongnu.org; stefanha@gmail.com; afaerber@suse.de > > > > Subject: Re: [PATCH v3 3/4] virtio-blk-test.c: add hotplug subtest > > > > > > > > On Fri, Jun 06, 2014 at 01:28:59AM +0000, Gonglei (Arei) wrote: > > > > > Hi, Amos > > > > > > > > > > > -----Original Message----- > > > > > > From: Amos Kong [mailto:akong@redhat.com] > > > > > > Sent: Friday, June 06, 2014 9:12 AM > > > > > > To: qemu-devel@nongnu.org > > > > > > Cc: stefanha@gmail.com; afaerber@suse.de; Gonglei (Arei) > > > > > > Subject: [PATCH v3 3/4] virtio-blk-test.c: add hotplug subtest > > > > > > > > > > > > This patch adds a new subtest, it hotplugs 29 * 8 = 232 virtio-blk > > > > > > devices to guest, and try to hot-unplug them. > > > > > > > > > > > > Note: the hot-unplug can't work without cooperation of guest OS. > > > > > > > > > > > > > > +static void test_blk_hotplug(void) > > > > > > +{ > > > > > > + int i, j; > > > > > > + > > > > > > + /* start with no network/block device, slots 3~0x1f are free */ > > > > > > + qtest_start("-net none"); > > > > > > + > > > > > > + for (i = 3; i <= 0x1f; i++) { > > > > > > + for (j = 7; j >= 0; j--) { > > > > > > + qmp_exec_hmp_cmd("OK\r\n", > > > > > > + "drive_add 0 > > > > > > if=none,file=/dev/null,id=drv-%x.%x", > > > > > > + i, j); > > > > > > + qmp_exec_hmp_cmd("", > > > > > > + "device_add > > > > > > virtio-blk-pci,id=dev-%x.%x,drive=drv-%x.%x," > > > > > > + "addr=0x%x.%x,multifunction=on", i, j, i, j, > > i, > > > > j); > > > > > > + } > > > > > > + } > > > > > > > > > > Do the pci multifunction devices support hotplug/unplug yet? > > > > > > > > Yes. > > > > > > > > You can hotplug single functions one by one, guest will identify > > > > all the functions when function 0 is added. > > > > Hotunplug function 0, all functions in same slot will be removed. > > > > > > > Thanks. > > > > > > IMHO, if we hot-plug function 0 first, the other functions will be not support > > to > > > hot-plug. > > > > Actually other functions can also be identified by guest, I had a > > commit to add this support. > > > > | commit f382a086f3129edc152b8044b69ccc6682e637bb > > | Author: Amos Kong > > | Date: Fri Nov 25 15:03:07 2011 +0800 > > | > > | PCI: Can continually add funcs after adding func0 > > > > > Good, Thanks! > > BTW, the limits of ACPI DSDT table have been resolved yet? Which limit? There was a hot-unplug bug of multiple function, I tried to fix it by change ACPI DSDT table in seabios, but finally we fixed this in kernel. |commit ce29ca3ea40744f24c2b5d88431e8ac566d257cc |Author: Amos Kong |Date: Wed May 23 10:20:35 2012 -0600 | | PCI: acpiphp: remove all functions in slot, even without ACPI _EJx > > > Similarly, it will not be allowed if we only hot-unplug function 1~7, > > > but function 0, right? > > > > Yes. function 0 is always necessary. > > > > > Best regards, > > > -Gonglei > > > > -- > > Amos. -- Amos.