On 05/23/2010 10:12 PM, Avi Kivity wrote:
On 05/23/2010 05:43 PM, Antoine Martin wrote:
Description of the problem:
A guest tries to mount a large raw partition (1.5TB /dev/sda9 in my
case), this fails with pread enabled, works with it disabled.
Did you mean: preadv?
Yes, here's what makes it work ok (as suggested by Christoph earlier
in the thread) in posix-aio-compat.c:
#undef CONFIG_PREADV
#ifdef CONFIG_PREADV
static int preadv_present = 1;
#else
static int preadv_present = 0;
#endif
When preadv_present=1, does strace -fF show preadv being called?
There were some pread() but no preadv() in the strace BTW.
If so, the kernel's preadv() is broken.
If not, glibc's preadv() emulation is broken.
OK, I found what's causing it: chroot
I was testing all this in a chroot, I always do and I didn't think of
mentioning it, sorry about that.
Running it non-chrooted works in all cases, including aio!=native
Why does it work in a chroot for the other options (aio=native, if=ide,
etc) but not for aio!=native??
Looks like I am misunderstanding the semantics of chroot...
Does aio=native help?
It does indeed!
That's recommended anyway on raw partitions with cache=off.
What about non-raw partitions (or/and with cache=on)?
Antoine
--
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