tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PUFFS ADVLOCK is too greedy



hi,

> Emmanuel Dreyfus <manu%netbsd.org@localhost> wrote:
> 
>> Please consider the test case below, ran on a PUFFS/perfuse/glusterfs
>> mount. A look at the PUFFS operation trace shows that the kernel sends
>> ADVLOCK for f0, f1 and m when a lock is requested on m.
> 
> Here is where the extra ADVLOCK happen:
> sys_exit -> exit1 -> fd_free -> fd_close -> VOP_ADVLOCK
> 
> In a nutshell, NetBSD clears locks on all file descriptor when a process
> exit, that include read-only descriptors, and FUSE filesystems seem to
> be unconfortable with that.
> 
> I am not sure of where this should be fixed: should we avoid unlocking
> read-only files in fd_close()? That seems a good idea performance-wise.
> 
> Or is it a desirable behavior on native filesystems while being a bug
> for FUSE filesystems?  In that case, it means I need to filter the
> operation in perfused.

it seems normal for native filesystems.

RDONLY is enough to set shared locks on the file.

i think it's safe to filter them using per vnode or puffs_node
PK_ADVLOCK-like "might have posix locks" hint.

YAMAMOTO Takashi

> 
> -- 
> Emmanuel Dreyfus
> http://hcpnet.free.fr/pubz
> manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index