[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V13 3/4] pc: add a Virtual Machine Generation ID
Re: [Qemu-devel] [PATCH V13 3/4] pc: add a Virtual Machine Generation ID device
Tue, 3 Mar 2015 12:06:05 +0100
On Tue, 3 Mar 2015 12:03:26 +1100
David Gibson <address@hidden> wrote:
> On Mon, 2 Mar 2015 22:06:22 +0100
> "Michael S. Tsirkin" <address@hidden> wrote:
> > On Mon, Mar 02, 2015 at 06:05:43PM +0100, Igor Mammedov wrote:
> > > On Sun, 1 Mar 2015 16:09:33 +0100
> > > "Michael S. Tsirkin" <address@hidden> wrote:
> > >
> > > > On Wed, Feb 25, 2015 at 05:08:52PM +0000, Igor Mammedov wrote:
> > > > > Based on Microsoft's sepecifications (paper can be dowloaded from
> > > > > http://go.microsoft.com/fwlink/?LinkId=260709), add a device
> > > > > description to the SSDT ACPI table and its implementation.
> > > > >
> > > > > The GUID is set using "vmgenid.uuid" property.
> > > > >
> > > > > Example of using vmgenid device:
> > > > > -device vmgenid,id=FOO,uuid="324e6eaf-d1d1-4bf6-bf41-b9bb6c91fb87"
> > > >
> > > > If you do this, doesn't windows then prompt for a driver?
> > > it doesn't since PCI_CLASS_MEMORY_RAM is displayed as driver less
> > > "PCI standard RAM Controller" binding in device manager.
> > >
> > > There was an issue with
> > > virtio balloon device + pseries firmware + kernel bug
> > > http://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04704.html
> > > but it shouldn't be an issue for x86 targets with which device is
> > > supposed to be used.
> > > CCing David and Laszlo in case UEFI might do some crazy stuff like
> > > pseries firmware.
> > I have to say, if it's not RAM, using PCI_CLASS_MEMORY_RAM seems
> > wrong. Can't we tag it in ACPI in some way?
I'm not sure that it's not a RAM though, (according to MS spec
it could be RAM, ROM or something else). This device is some RAM
controller and though it provides some RAM as its resource
it doesn't mean that it provides RAM that could be used freely as
as a generic RAM reported to host via E802 table.
> I agree. PCI_CLASS_MEMORY_RAM means something quite specific, and this
> device isn't it. AFAICT, this would break pseries guests exactly like
> the balloon device did before we removed the bogus class code.
Could you send me a reference to source that explains what
From what I've goggled out so far it's not RAM by itself but
some RAM controller.
I've noticed that for example NVidia cards could expose
several of such devices (my guess it's VRAM) so BAR exposed by
such device shouldn't be treated as generic RAM blindly (like it seems
pseries does) without vendor specific driver for example like ivshmem.
I've also checked linux kernel, it only has unused define for this
> I'm lacking context to see what the purpose of this device is, and
> whether we could ever want something similar on ppc64.
That is to provide guest with some UUID and possibly change it
at runtime and notify guest via ACPI about change as specified
by Microsoft spec.
> > I guess I can somewhat buy 0580 "other memory controller".
I've tried other CLASS IDs but then windows asks for driver for
a unknown device. I have also tried to hide PCI device entry
by setting _STA bit "not shown in UI" on respective PCI slot
but it doesn't help and windows depending on version asks for driver
or just tags with question mark PCI device in device manager.
Merging ACPI description of VMGEN_ID device with PCI slot
description produces anyway 2 devices in device manager:
1 PCI standard RAM controller
2 VM Generation ID
> > I think we also want some space for future expansion
> > in this device.
> > How about we reserve first 4K, and set bit 0 to mean
That might be useful in future but then it wouldn't be vmgenid only device.
Also what do you mean by the first?
> > "has uuid"?
> > --
> > MST