RE: Virtio_pci in kernel ignore endian of PCI I/O space?

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

 



> -----Original Message-----
> From: Hollis Blanchard [mailto:hollisb@xxxxxxxxxx] 
> Sent: Tuesday, September 02, 2008 10:16 PM
> To: Liu Yu-B13201
> Cc: kvm-ppc@xxxxxxxxxxxxxxx; kvm
> Subject: Re: Virtio_pci in kernel ignore endian of PCI I/O space?
> 
> On Tue, 2008-09-02 at 15:29 +0800, Liu Yu-B13201 wrote:
> > Hollis,
> > 
> > I noticed fuction virtio_blk_update_config() 
> (qemu/hw/virtio-blk.c) in
> > qemu
> > updated the virtio disk's capacity in little endian.
> > But virtblk_probe() (drivers/block/virtio_blk.c) in kernel read the
> > capacity from I/O space without convertion.
> 
> Sigh, I don't remember why this works any more.
> 
> There was discussion on this on kvm-ppc-devel in April 
> (unfortunately it
> was right at the month line, so the threading is broken, but see e.g.
> http://marc.info/?l=kvm-ppc&m=120716463602156), and ultimately
> cpu_to_le64() was added to qemu. However, a couple weeks later, the
> swapping that the kernel was doing was removed (see
> http://thread.gmane.org/gmane.linux.kernel.virtualization/5776
> /focus=5801).
> 
> However, the code is actually working today on 440 (and 
> reporting a sane
> number of blocks). Also, this patch
> (http://article.gmane.org/gmane.linux.kernel.virtualization/61
> 26/match=virtio%5fblk+fix+endianess+annotations) suggests 
> that struct virtio_blk_config is no longer LE, so I'm 
> thinking your problem must be in qemu. AFAICS the kernel is 
> basically just doing memcpy in a few places.

Thanks for your informations!

> 
> > Since E500 is big endian, this bring the misunderstanding 
> between qemu
> > and guest.
> 
> What are you using for PCI emulation in qemu? I don't think it should
> matter in this case, since the kernel is doing 1-byte reads 
> in vp_get(),
> but endianness gets very convoluted wherever qemu is involved. :(
> 

Did you see Anthony's reply?
It's weird that 440 can still work fine.

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

[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux