Re: [PATCH 16/20] xfs: pass a 64-bit count argument to xfs_iomap_write_unwritten

J. Bruce Fields
2015-02-11T22:54:42Z

On Wed, Feb 11, 2015 at 05:35:22PM -0500, J. Bruce Fields wrote:
> On Tue, Feb 03, 2015 at 07:35:33PM +0100, Christoph Hellwig wrote:
> > On Mon, Feb 02, 2015 at 02:48:26PM -0500, J. Bruce Fields wrote:
> > > Previously: http://lkml.kernel.org/r/20150106175611.GA16413@lst.de
> > >
> > > > - any advice on testing? Is there was some simple
> > > > virtual setup that would allow any loser with no special
> > > > hardware (e.g., me) to check whether they've broken the
> > > > block server?
> > >
> > > Run two kvm VMs that share the same disk. Create an XFS
> > > filesystem on the MDS, and export it. If the client has blkmapd
> > > running (on Debian it needs to be started manually) it will use
> > > pNFS for accessing the filesystem. Verify that using the
> > > per-operation counters in /proc/self/mounstats. Repeat with
> > > additional clients as nessecary.
> > >
> > > Alternatively set up a simple iSCSI target using tgt or lio and
> > > connect to it from multiple clients.
> > >
> > > Which sounds reasonable to me, but I haven't tried to incorporate this
> > > into my regression testing yet.
> >
> > Additionally I can offer the following script to generate recalls,
> > which don't really happen during normal operation. I don't
> > really know how to write a proper testcase that coordinates access
> > to the exported filesystem and nfs unless it runs locally on the same node,
> > though. It would need some higher level, network aware test harness:
>
> Thanks. I got as far as doing a quick manual test with vm's sharing a
> "disk":

Oh, also I forgot, on fedora:

[root@f21-2]# systemctl enable nfs-blkmap.target

> [root@f21-2]# mount -overs=4.1 f21-1:/exports/xfs-pnfs /mnt/
> [root@f21-2]# echo "hello world" >/mnt/testfile
> [root@f21-2]# grep LAYOUTGET /proc/self/mountstats
> LAYOUTGET: 1 1 0 236 196 0 4 4
>
> I haven't tried to set up automated testing with recalls, but that
> shouldn't be hard.
>
> --b.
>
> >
> > ----- snip -----
> > #!/bin/sh
> >
> > set +x
> >
> > # wait for grace period
> > touch /mnt/nfs1/foo
> >
> > dd if=/dev/zero of=/mnt/nfs1/foo bs=128M count=32 conv=fdatasync oflag=direct &
> >
> > sleep 2
> >
> > echo "" > /mnt/test/foo && echo "recall done"