tech-kern archive

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

Re: ZFS vs NetBSD vnode recycling

On Tue, Oct 13, 2009 at 12:02:58PM +0200, Adam Hamsik wrote:
> 1) Defer calling of zfs_zinactive, to system taskq, which can later  
> destroy znode. I have tested this version and it works but I'm getting  
> deadlock. I need to investigate it, if it is caused by my change or not.

Can that cause temporary resource starvation if a lot of vnodes need to
be allocated and the taskq is not currently active?

> 2) Some sort of vreclaim patch(disable vnode recycling and just call  
> vnalloc in getnewvnode), which will be done right this time. I'm  
> willing to do it but I'm not sure how it should be done.

Do you propose to remove the global vnode table and associate vnodes
directly with the invidiual file-system? The BSD 4.4 book claims this
bad because you can end up having a lot of vnodes used by a file-system
that is currently idle.

> 3) Do it like FreeBSD does it. They do almost the same like we in 1.  
> But they do it differently.

Let me see if I understand this code:
1.) If it can get the locks it immediately reclaims the vnode.
2.) If it cannot get the lock it defers reclaiming the vnode to
    a taskq.

That sounds like a better approach than your first suggestion because
it will (hopefully) avoid the overhead and delay in most cases.

        Kind regards

Matthias Scheler                        

Home | Main Index | Thread Index | Old Index