Subject: Re: verified exec per page fingerprints
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Brett Lymn <blymn@baesystems.com.au>
List: tech-kern
Date: 11/18/2005 11:20:41
On Fri, Nov 18, 2005 at 09:16:13AM +0900, YAMAMOTO Takashi wrote:
>
> what's "block"?
>
An overloaded term :) In this case it is a one or more pages that are
being brought in by VOP_GETPAGES.
> +{
> + error = VOP_GETATTR(vp, &va, curlwp->l_proc->p_ucred,
> + curlwp->l_proc);
>
> VOP_GETATTR with holding pages busy is not safe with
> the current implementation of nfs client.
>
OK - do we need to put a lock around this, or just unbusy the pages
while we check the attributes?
>
> i don't think that pages can be PG_FAKE here.
>
Yes, that was what I thought on the train this morning but removing
the PG_FAKE check caused my test process to get stuck in the D state,
having another look I may need to uvm_pagefree() the pages to properly
get rid of them.
>
> async VOP_GETPAGES doesn't return pages.
>
Yes, I know - at the moment things work mainly because it looks like
text pages are never brought in async. I don't want to rely on that
always being true though.
> which is your intention?
Check pages when they are read in. I previously had a look at this
but ran into difficulties working out how to get enough information to
be able to relate the async callback with a particular vnode so that
we could get the correct page fingerprints to check against. I will
have another look at this as it may be easier with the improvements
that Elad has made.
--
Brett Lymn