On Monday 16 May 2005 17:00, Jeff Dike wrote:
> On Sun, May 15, 2005 at 08:44:44PM +0200, Blaisorblade wrote:
> > copy_from_user() loops, in SKAS mode, calls do_op inside the inner loop;
> > do_op acts on 4k at once, so with modern pipelines, the potential cost of
> > the function call can be very big.

> > Beyond that, we also call setjmp_wrapper, which simply puts a sigjmp_buf
> > on the stack.

> > Wouldn't the code be cleaner if we rip that out, together with the
> > va_arg() calls, and do everything inside do_buffer_op? Doh, those are
> > from userspace headers. However it looks they would be includable from
> > kernel code (no reference to kernel headers), by adding them at the end
> > of the include search path.

> > What's your opinion? I'm ready to work on this.

> I was unhappy about adding the setjmp there, but it turns out that the
> kernel data might not be present and so can segfault.  So, when that
> happens, we need to get out of there and return an error, and the way
> that's done is by the page fault handler longjmping back out.

Yes, I remember it, I worked with you on diagnosing the /dev/kmem crash.

> If you can think of a better way to do it, go ahead.

I could move maybe move sigsetjmp to kernelspace code; however, another 
possibility would be to use the exception handler tables we've always 
supported without using them (only drawback is that the code *must* be 
inlined, and possibly the need for some assembler code, which however is 
probably avoidable).
-- 
Paolo Giarrusso, aka Blaisorblade
Skype user "PaoloGiarrusso"
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to