Tried it on Win7 Enterprise SP1 - SHPC works well, _OSC patches aren't necessary (since pci-bridge has its own controller, I suppose). On Linux guests it works when adding device from CLI with -device, but OS seems to fail detecting the device when I add it with device_add from monitor. Also there're some issues with unplugging on Linux (haven't tested unplugging on WIndows yet). That's the news.
2017-07-03 21:29 GMT+03:00 Michael S. Tsirkin <m...@redhat.com>: > On Mon, Jul 03, 2017 at 09:26:33PM +0300, Marcel Apfelbaum wrote: > > On 03/07/2017 19:34, Michael S. Tsirkin wrote: > > > On Mon, Jul 03, 2017 at 02:27:11PM +0200, Igor Mammedov wrote: > > > > On Fri, 30 Jun 2017 10:25:05 +0300 > > > > Marcel Apfelbaum <mar...@redhat.com> wrote: > > > > > > > > [...] > > > > > > > > > > So for the modern systems not supporting PCI ACPI hotplug > > > > > we don't need pci-bridges anyway, but for the older ones > > > > > the ACPI code of the pci-bridge will be loaded into the > > > > > ACPI namespace only if a pci-bridge is actually hot-plugged. > > > > > > > > just note that the set of 'older' guest OSes is limited to > > > > one that do not support SHPC (i.e. to EOLed WinXP & co) > > > > as for linux and more modern Windows SHPC hotplug should > > > > just work without our ACPI hack (which taxes low memory > > > > to keep acpi tables for bridges). > > > > > > > > So I'm in favor of Michael's suggestion to leave ACPI PCI > > > > only in PC machine for old WinXP guests and to keep Q35 > > > > clean, where linux or newer Windows guests could just > > > > use standard SHPC. > > > > > > > > [...] > > > > > > I didn't realize windows actually supports SHPC for PCI. > > > > Me neither, if Igor is right I am all for shpc hotplug > > since Q35 is not supposed to support older guests. > > > > I remember I succeeded to enable shpc hotplug some time > > ago, but only for Linux guests. > > > > Igor, do you have some spec/doc on newer Windows OSes that confirm > > PCI shpc hotplug support? > > Just try it, easier than poking at specs which aren't always up to date. > > > > > > > Do they correctly set _OSC Arg3, bit offset 1? > > > SHPC Native Hot Plug control > > > The OS sets this bit to 1 to request control over PCI/PCI-X > Standard Hot-Plug Controller > > > (SHPC) hot plug. If the OS successfully receives control of this > feature, it must track and > > > update the status of hot plug slots and handle hot plug events as > described in the SHPC > > > Specification. > > > I was under impression they only set bit 0. > > > > > > > Alexandr, if modern Windows OSes do support shpc, it makes our > > job easier, can you please try to enable shpc hotplug? > > > > Thanks, > > Marcel > > No need to enable or even have a bridge for that at all - > set the bit in _OSC, see what does guest enable. > -- Alexander Bezzubikov