вт, 4 июля 2017 г. в 1:06, Alexander Bezzubikov <address@hidden
<mailto:address@hidden>>:
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 <address@hidden
<mailto:address@hidden>>:
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 <address@hidden
<mailto:address@hidden>> 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
--
Alexander Bezzubikov