[Pvfs2-users] Review: Fix pvfs2 bufmap to fix NFS writes

Murali Vilayannur murali.vilayannur at gmail.com
Sun Oct 7 04:36:27 EDT 2007


Hi Emmanuel,
Sorry for the late response. I had been intending to send you a patch
to try out for some time. Did not have the time to polish it off and test it
out on my setup until today.

Anyways, attached patch (against CVS HEAD) implements the necessary
functionality in pvfs bufmap code to copy to application address
specified by an array of iovectors from client-core's context in the
completion
path of the aio request. Like I mentioned earlier, we didn't implement
this since there wasn't a genuine need  for the interface. Given that
NFS reexport is a valid use case that broke because of the absence of
this interface, I fixed this instead of cheesy workaround/kludges that
I had emailed earlier.
In addition, I also took the liberty of polishing up the bufmap code a
little bit so that the code is a little better to understand. It is
still not in such a great shape from a cleanliness POV.

Sam, I tested heavy I/O intensive programs both against pvfs2 and NFS
reexported volume and they all passed. In addition, I also ran the AIO
test programs and the vector I/O programs in the test subdirectory and
they also passed.
NOTE: I only tested on 32 bit machines. I hope it doesn't break any 64
bit machine, but I don't have access to one to try it out.
If Emmanuel confirms that this fixes the NFS writes problem, it will
be great if this can be checked into HEAD for the next release.
Thanks,
Murali

On 9/24/07, Emmanuel Florac <eflorac at intellique.com> wrote:
> Le Fri, 21 Sep 2007 07:08:51 -0700
> "Murali Vilayannur" <murali.vilayannur at gmail.com> écrivait:
>
> > one temporary kludge is to open pvfs2-config.h and comment out the
> > line #define HAVE_COMBINED_AIO_AND_VECTOR 1
> > and then rebuild the kernel module (using make kmod)
>
> Hu, doesn't compile... Is there something else to comment out perhaps?
>
>
> CC
> [M]  /usr/sarge64/usr/src/pvfs-2.6.3/src/kernel/linux-2.6/devpvfs2-req.o /usr/sarge64/usr/src/pvfs-2.6.3/src/kernel/linux-2.6/devpvfs2-req.c:1033:
> error: unknown field `writev' specified in
> initializer /usr/sarge64/usr/src/pvfs-2.6.3/src/kernel/linux-2.6/devpvfs2-req.c:1033:
> attention : initialisation d'un type pointeur incompatible make[3]: ***
> [/usr/sarge64/usr/src/pvfs-2.6.3/src/kernel/linux-2.6/devpvfs2-req.o]
> Erreur 1 make[2]: ***
> [_module_/usr/sarge64/usr/src/pvfs-2.6.3/src/kernel/linux-2.6] Erreur 2
> make[1]: *** [default] Erreur 2 make: *** [just_kmod] Erreur 2
>
> --
> ----------------------------------------
> Emmanuel Florac     |   Intellique
> ----------------------------------------
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nfs-pvfs2-bufmap.patch
Type: text/x-patch
Size: 50021 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-users/attachments/20071007/a85e1e77/nfs-pvfs2-bufmap-0001.bin


More information about the Pvfs2-users mailing list