qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] virtio-pci: replace byte swap hack


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH] virtio-pci: replace byte swap hack
Date: Mon, 7 Jan 2013 18:11:08 +0200

On Sun, Jan 06, 2013 at 08:04:39PM +0000, Blue Swirl wrote:
> On Sun, Jan 6, 2013 at 6:25 PM, Andreas Färber <address@hidden> wrote:
> > Am 06.01.2013 14:17, schrieb Alexander Graf:
> >>
> >> On 30.12.2012, at 13:55, Blue Swirl wrote:
> >>
> >>> Remove byte swaps by declaring the config space
> >>> as native endian.
> >>
> >> This is wrong. Virtio-pci config space is split into 2 regions. One with 
> >> native endianness, the other one with little endian.
> >
> > Can that MemoryRegion be split in two?
> 
> Yes, but unfortunately the offset for the second region depends on if
> MSIX is enabled or not. PCI layer manages these bits without the
> device seeing any changes.
> 
> This could be handled by introducing a callback at PCI layer to inform
> interested devices about changes to MSIX setup, or even generalized:
> inform devices about changes within any set of bits specified by the
> device.

We already have a generic config_write callback and even use it in
virtio pci: virtio_write_config.  So you could simply do there:

        if (region size != VIRTIO_PCI_CONFIG(dev)) {
                resize regions
        }

We would also have to resize to the default setup on
vm load and on vm reset.

Overall not sure whether this would make the code cleaner or uglier.

> >
> > Andreas
> >
> > --
> > SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> > GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]