Subject: Re: verified exec per page fingerprints
To: YAMAMOTO Takashi <firstname.lastname@example.org>
From: Brett Lymn <email@example.com>
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.