From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41504) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wioft-0002bC-FB for qemu-devel@nongnu.org; Fri, 09 May 2014 13:33:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wiofp-0007nd-Mm for qemu-devel@nongnu.org; Fri, 09 May 2014 13:33:33 -0400 Received: from smtp.citrix.com ([66.165.176.89]:2706) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wiofp-0007nT-FE for qemu-devel@nongnu.org; Fri, 09 May 2014 13:33:29 -0400 Message-ID: <536D114A.3050409@citrix.com> Date: Fri, 9 May 2014 13:32:58 -0400 From: Ross Philipson MIME-Version: 1.0 References: <1399625235-8216-1-git-send-email-arei.gonglei@huawei.com> <536CBD840200007800010D2D@mail.emea.novell.com> <33183CC9F5247A488A2544077AF19020815E7487@SZXEMA503-MBS.china.huawei.com> <1399629430.9513.143.camel@kazak.uk.xensource.com> <33183CC9F5247A488A2544077AF19020815E74DA@SZXEMA503-MBS.china.huawei.com> <1399631195.9513.149.camel@kazak.uk.xensource.com> <20140509132553.GA3057@phenom.dumpdata.com> <1399642266.561.14.camel@kazak.uk.xensource.com> <536CE879.4050303@citrix.com> <20140509160039.GA5721@phenom.dumpdata.com> <1399651933.561.56.camel@kazak.uk.xensource.com> <9AAE0902D5BC7E449B7C8E4E778ABCD034E037@AMSPEX01CL01.citrite.net> In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD034E037@AMSPEX01CL01.citrite.net> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Xen-devel] [PATCH v4] Hvmloader: Modify ACPI to only supply _EJ0 methods for PCIslots that support hotplug by runtime patching List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Durrant , Ian Campbell , Konrad Rzeszutek Wilk Cc: "Huangweidong (C)" , "Gonglei (Arei)" , "mst@redhat.com" , "Hanweidong (Randy)" , "qemu-devel@nongnu.org" , "xen-devel@lists.xen.org" , "fabio.fantoni@m2r.biz" , Anthony Perard , "kevin@koconnor.net" , Stefano Stabellini , Jan Beulich , "johannes.krampf@googlemail.com" , "Gaowei (UVP)" On 05/09/2014 12:34 PM, Paul Durrant wrote: >> -----Original Message----- >> From: Ian Campbell >> Sent: 09 May 2014 17:12 >> To: Konrad Rzeszutek Wilk >> Cc: Ross Philipson; kevin@koconnor.net; Huangweidong (C); Hanweidong >> (Randy); mst@redhat.com; qemu-devel@nongnu.org; xen- >> devel@lists.xen.org; fabio.fantoni@m2r.biz; >> johannes.krampf@googlemail.com; Gonglei (Arei); Stefano Stabellini; >> Gaowei (UVP); Jan Beulich; Anthony Perard; Paul Durrant >> Subject: Re: [Xen-devel] [PATCH v4] Hvmloader: Modify ACPI to only supply >> _EJ0 methods for PCIslots that support hotplug by runtime patching >> >> On Fri, 2014-05-09 at 12:00 -0400, Konrad Rzeszutek Wilk wrote: >> >>> So we could just then gat the _EJ0 functionality based on values that >>> are present (or not) in the SSDT ? >> >> AIUI the very presence of _EJ0 is what marks the device as being >> ejectable (e.g. in the Windows device manager). >> >> It would be possible to make _EJ0 conditionally turn itself into a NOP >> without resorting to an SSDT, but I don't think that solves the issue >> they are trying to solve, which is that the user can even try to eject >> an non-hotplug device. (grep for UAR1 in our dsdt.asl and >> acpi_info->com1_present in hvmloader/acpi/build.c for an example of this >> sort of conditional thing) >> Going back to the SSDT idea. A little poking around and what not and I came up with something like this that I build into an SSDT: DefinitionBlock ("SSDTX.aml", "SSDT", 2, "Xen", "HVM", 0) { /* S00 device is defined in DSDT, this allows me to * refrence it in this SSDT */ External (\_SB.PCI0.S00, DeviceObj) ... /* Extend the functionality of S00 */ Scope ( \_SB.PCI0.S00 ) { Method(_EJ0, 1, NotSerialized) { /* Do stuffs here */ } } } So I did find some examples of this after all in my pile of ACPI firmware snapshots from all our supported platforms. I think this would work allowing you to just add or not add _EJ0 methods to the PCI devices you want by either using different SSDTs or doing something to generate or munge the SSDT at runtime (which would be simpler than messing with the DSDT I think. I did not try it (actually I did but ran into other problems on our platform :). > > Yes, ejectable is only part of it. If there's appropriate AML for the slot, it is enough to indicate that a device is removable. I found the following link to an old M$ doc describing hotplug PCI: http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx. (There's a load of Chinese characters surrounding the doc, but the body is in English). > > Paul > > ----- > No virus found in this message. > Checked by AVG - www.avg.com > Version: 2014.0.4570 / Virus Database: 3931/7443 - Release Date: 05/05/14 > -- Ross Philipson From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ross Philipson Subject: Re: [PATCH v4] Hvmloader: Modify ACPI to only supply _EJ0 methods for PCIslots that support hotplug by runtime patching Date: Fri, 9 May 2014 13:32:58 -0400 Message-ID: <536D114A.3050409@citrix.com> References: <1399625235-8216-1-git-send-email-arei.gonglei@huawei.com> <536CBD840200007800010D2D@mail.emea.novell.com> <33183CC9F5247A488A2544077AF19020815E7487@SZXEMA503-MBS.china.huawei.com> <1399629430.9513.143.camel@kazak.uk.xensource.com> <33183CC9F5247A488A2544077AF19020815E74DA@SZXEMA503-MBS.china.huawei.com> <1399631195.9513.149.camel@kazak.uk.xensource.com> <20140509132553.GA3057@phenom.dumpdata.com> <1399642266.561.14.camel@kazak.uk.xensource.com> <536CE879.4050303@citrix.com> <20140509160039.GA5721@phenom.dumpdata.com> <1399651933.561.56.camel@kazak.uk.xensource.com> <9AAE0902D5BC7E449B7C8E4E778ABCD034E037@AMSPEX01CL01.citrite.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD034E037@AMSPEX01CL01.citrite.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Paul Durrant , Ian Campbell , Konrad Rzeszutek Wilk Cc: "Huangweidong (C)" , "Gonglei (Arei)" , "mst@redhat.com" , "Hanweidong (Randy)" , "qemu-devel@nongnu.org" , "xen-devel@lists.xen.org" , "fabio.fantoni@m2r.biz" , Anthony Perard , "kevin@koconnor.net" , Stefano Stabellini , Jan Beulich , "johannes.krampf@googlemail.com" , "Gaowei (UVP)" List-Id: xen-devel@lists.xenproject.org On 05/09/2014 12:34 PM, Paul Durrant wrote: >> -----Original Message----- >> From: Ian Campbell >> Sent: 09 May 2014 17:12 >> To: Konrad Rzeszutek Wilk >> Cc: Ross Philipson; kevin@koconnor.net; Huangweidong (C); Hanweidong >> (Randy); mst@redhat.com; qemu-devel@nongnu.org; xen- >> devel@lists.xen.org; fabio.fantoni@m2r.biz; >> johannes.krampf@googlemail.com; Gonglei (Arei); Stefano Stabellini; >> Gaowei (UVP); Jan Beulich; Anthony Perard; Paul Durrant >> Subject: Re: [Xen-devel] [PATCH v4] Hvmloader: Modify ACPI to only supply >> _EJ0 methods for PCIslots that support hotplug by runtime patching >> >> On Fri, 2014-05-09 at 12:00 -0400, Konrad Rzeszutek Wilk wrote: >> >>> So we could just then gat the _EJ0 functionality based on values that >>> are present (or not) in the SSDT ? >> >> AIUI the very presence of _EJ0 is what marks the device as being >> ejectable (e.g. in the Windows device manager). >> >> It would be possible to make _EJ0 conditionally turn itself into a NOP >> without resorting to an SSDT, but I don't think that solves the issue >> they are trying to solve, which is that the user can even try to eject >> an non-hotplug device. (grep for UAR1 in our dsdt.asl and >> acpi_info->com1_present in hvmloader/acpi/build.c for an example of this >> sort of conditional thing) >> Going back to the SSDT idea. A little poking around and what not and I came up with something like this that I build into an SSDT: DefinitionBlock ("SSDTX.aml", "SSDT", 2, "Xen", "HVM", 0) { /* S00 device is defined in DSDT, this allows me to * refrence it in this SSDT */ External (\_SB.PCI0.S00, DeviceObj) ... /* Extend the functionality of S00 */ Scope ( \_SB.PCI0.S00 ) { Method(_EJ0, 1, NotSerialized) { /* Do stuffs here */ } } } So I did find some examples of this after all in my pile of ACPI firmware snapshots from all our supported platforms. I think this would work allowing you to just add or not add _EJ0 methods to the PCI devices you want by either using different SSDTs or doing something to generate or munge the SSDT at runtime (which would be simpler than messing with the DSDT I think. I did not try it (actually I did but ran into other problems on our platform :). > > Yes, ejectable is only part of it. If there's appropriate AML for the slot, it is enough to indicate that a device is removable. I found the following link to an old M$ doc describing hotplug PCI: http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx. (There's a load of Chinese characters surrounding the doc, but the body is in English). > > Paul > > ----- > No virus found in this message. > Checked by AVG - www.avg.com > Version: 2014.0.4570 / Virus Database: 3931/7443 - Release Date: 05/05/14 > -- Ross Philipson