Subject: Re: UBC info
To: Manuel Bouyer <firstname.lastname@example.org>
From: Chuck Silvers <email@example.com>
Date: 06/16/1999 08:05:31
Manuel Bouyer writes:
> On Tue, Jun 15, 1999 at 09:09:35PM -0700, Chuck Silvers wrote:
> > [...]
> > does anyone feel it's important to retain EIO returns for real i/o errors
> > in the filesystem? there's a performance benefit for letting them turn
> > into EFAULT (or so the theory goes).
> I really think it's important. When you run into problems it's important to
> have as much infos as available.
> Is the performance benefit that big ?
I'm guessing the performance difference would be noticable, yea.
now that I think about this a moment, it's actually not that hard to solve.
we can add a new "p_faulterror" field to struct proc, which is cleared
at the top of the page-fault handler and set to an errno when a fault is
not going to be resolved. then the users of pcb_onfault can check
p_faulterror to get a real errno, falling back on EFAULT if p_faulterror
is 0. I haven't thought thru all the details, but I think this would work.
actually, this probably belongs in struct pcb, right next to pcb_onfault.
it may need to be saved and restored along with pcb_onfault, too.