On Fri, Jun 10, 2011 at 05:36:13PM +0530, Aneesh Kumar K.V wrote: > On Fri, 10 Jun 2011 11:33:05 +0100, "Daniel P. Berrange" > <berra...@redhat.com> wrote: > > I've been doing some work trying to run QEMU guests with a root filesystem > > exported from the host using virtio 9pfs. One of the issues that I have > > discovered is that the 9p FS running on QEMU appears to cap all reads at > > 4096 bytes[1]. Any larger read will return only partial data for plain > > files. > > > > But we should loop in kernel, requesting for multiple 9p request. > > kernel does > > size = fid->iounit ? fid->iounit : fid->clnt->msize - P9_IOHDRSZ; > if (count > size) > ret = v9fs_file_readn(filp, NULL, udata, count, *offset); > else > ret = p9_client_read(fid, NULL, udata, *offset, count); > > and v9fs_file_readn() does.. > > do { > n = p9_client_read(fid, data, udata, offset, count); > if (n <= 0) > break; > > if (data) > data += n; > if (udata) > udata += n; > > offset += n; > count -= n; > total += n; > } while (count > 0 && n == size); > > > I also did an strace of simple test and i see > > open("test", O_RDONLY) = 3 > read(3, > "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) > = 8192
In my test I did # strace -e trace=read,open perl -e 'open FOO, "/usr/share/X11/XKeysymDB"; sysread FOO, $foo, 8192' open("/usr/share/X11/XKeysymDB", O_RDONLY) = 3 read(3, "! Copyright 1993 Massachusetts I"..., 8192) = 4096 Perhaps there is a guest kernel driver difference ? I'm using 2.6.35.13-91.fc14.x86_64 Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|