> -----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