On Wed, Feb 18, 2015 at 04:38:43PM -0800, Ameya Palande wrote:
Hi Kevin,
On Wed, Feb 18, 2015 at 12:15 PM, Kevin O'Connor kevin@koconnor.net wrote:
On Tue, Feb 17, 2015 at 02:00:49PM -0800, Ameya Palande wrote:
Use barrier() for memory mapped IO functions.
This fixes pvscsi driver to boot on QEMU's pvscsi controller. Test command: qemu -m 512 --enable-kvm -device pvscsi,id=pvscsi0 -device scsi-disk,bus=pvscsi0.0,drive=drive0 -drive id=drive0,if=none,file=ubuntu1410.img,if=none -bios seabios/out/bios.bin
Thanks. I didn't think it was standard for a barrier to be present in these functions, but I now see that Linux also uses barrier here. So, I've committed your patch (with a couple of minor changes).
Thanks for applying this patch!
Since memory mapped read and write are now protected by barriers, how should we deal about use of (potentially redundant) barriers in: src/hw/usb-ehci.c src/hw/usb-ohci.c src/hw/usb-uhci.c
I think redundant barriers should ultimately be removed.
Interestingly "src/hw/usb-xhci.c" doesn't use barrier() at all! Wondering if that was correct?
That is a good quesiton. I had not noticed any issues in this area before, but I wasn't looking explicitly for them.
Thanks, also, for tracking down the PVSCSI problem.
I could get it booting only under QEMU. I wanted to test seabios under ESXi to make sure it really boots under ESXi's pvscsi implementation. Does anyone know a way to get seabios running under ESXi so that pvscsi validity can be checked?
I'm not familiar with ESXi, so I can't help here.
-Kevin