Problems Re-Starting mountd

Jason Keltz jas at cse.yorku.ca
Wed Jan 9 18:36:46 UTC 2013


On 01/09/2013 07:55 AM, Andrey Simonenko wrote:
>
> When mountd starts it flushes NFS export settings for all file systems,
> for each mount point it calls nmount(), even if /etc/exports is empty
> it will call nmount() for all currently mounted file systems.
>
> When mountd loads export settings into NFS server it calls statfs() and
> lstat() for each pathname from /etc/exports (number of lstat() calls depends
> on number of '/' in each pathname), then it calls nmount() for each
> address specification for each pathname from /etc/exports.  It uses
> nmount() interface for communication with kern/vfs_export.c that is
> responsible for NFS export settings for file systems.  For the NFSv4
> root directory mountd uses nfssvc() to update its settings, that
> calls kern/vfs_export.c:vfs_export().
>
> When mountd receives SIGHUP it flushes everything and loads /etc/exports.
> This signal is sent by mount(8) when it mounts any file system.
>
> This delay in above described example came from ZFS kernel code, since
> the same configuration for 2000 nullfs(5) file systems takes ~0.20 second
> (less than second) by mountd in nmount() system calls.  At least on
> 9.1-STABLE I do not see that this delay came from mountd code, it came
> from nmount() used by mountd.
>

Hi Andrey,

Thanks for your message.

If this is the case, I wonder if there's really any change that needed 
at all.  Maybe one of the ZFS filesystem maintainers might have some 
idea why 2000 nullfs filesystems take ~0.20 second to process with 
nmount(), yet the same number of ZFS filesystems take so much longer to 
process.  Maybe there's a bug somewhere?

Jason.



More information about the freebsd-fs mailing list