Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Mar 1998 03:18:37 +0300
From:      Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
To:        Terry Lambert <tlambert@primenet.com>
Cc:        FreeBSD-current@FreeBSD.ORG
Subject:   Re: VM: Process hangs sleeping on vmpfw 
Message-ID:  <199803020018.DAA01416@tejblum.dnttm.rssi.ru>
In-Reply-To: Your message of "Sun, 01 Mar 1998 22:30:49 GMT." <199803012230.PAA26918@usr08.primenet.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> > But you must write correct getpages/putpages for unionfs in any case. 
> > Or, better, make a bypass routine for unionfs, to avoid similar 
> > problems with future new vnode operations :-).
> 
> Until this happens, I would prefer that the unionfs not silently
> pretend that there is no problem with the way it works, lulling
> innocent users into a false sense of security.
> 
> > > See above for the patch.  It's the identification problem and the
> > > stacking problem that I wanted to handle on a case-by-case basis.
> > 
> > I don't see why default ops doesn't solve stacking problems.
> 
> Because they provide a default operation for every FS, even FS's
> you want to use the bypass instead.

Stacking layers supposed to use generic bypass routine, like this:
        { &vop_default_desc,            (vop_t *) null_bypass },
This is the whole point of stacking layers --- they can bypass any 
operation that they don't need to handle specifically.

If you disagree with the above statement, you can anyway put 
vop_stdgetpages and vop_stdputpages to each local media filesystem's 
vnops table, instead of cut&paste the trivial implementation (I repeat 
it 3rd time, since I didn't seen an answer to it).

Also, stacking layers will not use the default anyway, if they are 
going to work. So I wouldn't count them as vote against getpages/putpages 
in the default ops table. If they cannot use a generic bypass, no 
one warning will save them from lot of troubles.

> 
> Ideally, there will be *no* default ops.  This was the point of
> John's comments about simplification in the vnode_pager code.

The comment is there for years.... I will wait until it actually 
happens. 

[...]

> > > You should also follow the NFS case in vnode_pager_generic_getpages
> > > and look at all the other vp->v_mount references.  Look what the
> > > change means to VOP_BMAP, specifically with regard to the assumptions
> > > comment in vnode_pager_generic_getpages and vnode_pager_input_smlfs's
> > > being called -- with the same assumptions but without the test.  It's
> > > pretty obvious that the VOP_BMAP return test is equal to the NFS
> > > test.  This code is at the heart of a lot of problems, and I'd like

Obvious, but doesn't true. NFS implement VOP_BMAP 8-).

> > > to take it slow...

Dima



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803020018.DAA01416>