Re: [Qemu-devel] [RFC PATCH 3/6] RAMBlock: Add a name field

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2010-06-09 at 03:54 +0100, Paul Brook wrote:
> > On 06/08/2010 09:30 PM, Paul Brook wrote:
> > >> The offset given to a block created via qemu_ram_alloc/map() is
> > >> arbitrary, let the caller specify a name so we can make a positive
> > >> match.
> > >> 
> > >> 
> > >> @@ -1924,7 +1925,9 @@ static int pci_add_option_rom(PCIDevice *pdev)
> > >> +    snprintf(name, sizeof(name), "pci:%02x.%x.rom",
> > >> +             PCI_SLOT(pdev->devfn), PCI_FUNC(pdev->devfn));
> > >> +    pdev->rom_offset = qemu_ram_alloc(name, size);
> > > 
> > > This looks pretty bogus.  It should be associated with the device, rather
> > > than incorrectly trying to generate a globally unique name.
> > 
> > Not all ram is associated with a device.
> 
> Maybe not, but where it is we should be using that information.
> Absolute minimum we should be using the existing qdev address rather than 
> inventing a new one.  Duplicating this logic inside every device seems like a 
> bad idea so I suggest identifying ram blocks by a (name, device) pair. For now 
> we can allow a NULL device for system memory.

I'm not sure if this is what you're after, but what if we change it to
something like:

+    snprintf(name, sizeof(name), "%s.%02x.%x.rom-%s",
+             pdev->bus->qbus.name, PCI_SLOT(pdev->devfn),
+             PCI_FUNC(pdev->devfn), pdev->qdev.info->name);

This gives us things like "pci.0.03.0.rom-rtl8139".  For pci-assign, we
can expand on the host details, such as:

+                snprintf(name, sizeof(name),
+                         "%s.%02x.%x.bar%d-%s(%04x:%02x:%02x.%d)",
+                         pci_dev->dev.bus->qbus.name,
+                         PCI_SLOT(pci_dev->dev.devfn),
+                         PCI_FUNC(pci_dev->dev.devfn), i,
+                         pci_dev->dev.qdev.info->name,
+                         pci_dev->host.seg, pci_dev->host.bus,
+                         pci_dev->host.dev, pci_dev->host.func);

Giving us "pci.0.04.0.bar0-pci-assign(0000:01:10.0)".  Anywhere closer?
Thanks,

Alex


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux