[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] QEMU 9pfs intentionally returning short reads ?
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] QEMU 9pfs intentionally returning short reads ? |
Date: |
Fri, 10 Jun 2011 13:20:25 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
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" <address@hidden>
> 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 :|