compiling on nfs directories
Rick Macklem
rmacklem at uoguelph.ca
Fri Dec 19 00:05:27 UTC 2014
Gerrit Kuhn wrote:
> On Mon, 15 Dec 2014 15:59:29 -0500 (EST) Rick Macklem
> <rmacklem at uoguelph.ca> wrote about Re: compiling on nfs directories:
>
>
> RM> Also, note that he didn't see the problem with FreeBSD8.3, which
> would
> RM> have been following the same rules on the server as 10.1.
> RM>
> RM> What I suspect might cause this is one of two things:
> RM> 1 - The modify time of the file is now changing at a time the
> Linux
> RM> client doesn't expect, due to changes in ZFS or maybe TOD
> clock
> RM> resolution. (At one time, the TOD clock was only at a
> resolution
> RM> of 1sec, so the client wouldn't see the modify time change
> often.
> RM> I think it is now at a much higher resolution, but would have
> to
> RM> look at the code/test to be sure.)
> RM> 2 - I think you mention this one later in your message, in that
> the
> RM> build might be depending on file locking. If this is the
> case,
> RM> trying NFSv4, which does better file locking, might fix the
> RM> problem.
>
> Meanwhile I have googled around a bit more, and one of the few
> reasons
> other people see the error messages I see appears to be a broken
> clock that
> makes "make" recompile stuff on the installation stage. As I was
> already
> wondering why compilation took longer than I had actually expected, I
> may
> be seeing something similar (still need to look into that), although
> my
> clock is fine (but time stamps on the NFS might be messed up somehow
> like
> you mention above under "1").
avg@ just MFC'd a one line ZFS patch (the one I vaguely remembered before).
It is r275401 in head:
https://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c?r1=274337&r2=275401
and appears to fix a problem with mtime being updated.
This patch might be worth a try?
(You could email avg at freebsd.org for more information on it.)
rick
>
> RM> Gerrit, I would suggest that you do "nfsstat -m" on the Linux
> client,
> RM> to see what the mount options are. The Linux client might be
> using
> RM> NFSv4 already.
>
> This is what it says about my nfs-root:
>
> ---
> pt-nds ~ # nfsstat -m
> / from 192.168.32.253:/tank/diskless/nds
> Flags:
> rw,relatime,vers=3,rsize=4096,wsize=4096,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.32.253,mountvers=3,mountproto=tcp,local_lock=all,addr=192.168.32.253
> ---
>
> This is what I set up for pxe-booting:
>
> ---
> label gentoo-cs2
> menu label linux-3.8.13-gentoo-2
> kernel bzImage-3.8.13-gentoo-2
> append ip=dhcp root=/dev/nfs rw
> nfsroot=192.168.32.253:/tank/diskless/nds,nolock,tcp,v3
> rootdelay=15
> ---
>
>
> So I definitely run "nfsv3" and "nolock". I remember trying to use
> nfsv4 on the diskless machines some years ago, but back then it was
> not ready for prime time.
>
> RM> Also, avoid "soft, intr" especially if you are using NFSv4, since
> these
> RM> can cause slow server response to result in a failure of a
> read/write
> RM> when it shouldn't fail, due to timeout or interruption by a
> signal.
>
> There is "hard" in there as a default option. However, I might try
> turning on locking (I regarded it as superfluous up to now as I have
> only one client using the filesystem).
>
> RM> If you could find out more about what causes the specific build
> failure
> RM> on the Linux side, that might help.
>
> As I said above, I have some hints that indicate something might be
> wrong with timestamps, but I still need to dig deeper into that.
>
> RM> If you can reproduce a build failure quickly/easily, you can
> capture
> RM> packets via "tcpdump -s 0 -w <file> host <client-hostname>" on
> the
> RM> server and then look at it in wireshark to see what the server is
> RM> replying when the build failure occurs. (I don't mind looking at
> a
> RM> packet trace if it is relatively small, if you email it to me as
> an
> RM> attachment.)
>
> I can reproduce it 100%, but it only happens on the installation
> stage, after having compiled the whole stuff. So I don't know if I
> will be able to produce a dump of reasonable size that contains the
> issue, but I'll try.
>
> RM> ps: I am not familiar with the Linux mount options, but if it has
> RM> stuff like "nocto", you could try those.
>
> The manpage has the following:
>
> ---
> cto / nocto Selects whether to use close-to-open cache
> coherence
> semantics. If neither option is specified (or
> if cto is
> specified), the client uses close-to-open
> cache coher-
> ence semantics. If the nocto option is
> specified, the
> client uses a non-standard heuristic to
> determine when
> files on the server have changed.
>
> Using the nocto option may improve performance
> for read-
> only mounts, but should be used only if the
> data on the
> server changes only occasionally. The DATA AND
> METADATA
> COHERENCE section discusses the behavior of
> this option
> in more detail.
> ---
>
>
> So "cto" appears to be the default and is probably what is used right
> now. I'll put "nocto" on my list of things to try (although the
> description is not really that incouraging... :-).
>
>
> cu
> Gerrit
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to
> "freebsd-net-unsubscribe at freebsd.org"
>
More information about the freebsd-net
mailing list