Re: scheduler times/upcalls

Paul Barton-Davis (pbd@Op.Net)
Wed, 30 Sep 1998 01:15:47 -0300


>From: lm@bitmover.com (Larry McVoy)
>b) If you can't run in the kernel, you really ought to consider upcalls from
> driver's interrupt routine. What are those?

This is *funny*. A month ago, I wrote this list to ask for opinions
regarding implementing upcalls in Linux. This was given the work I
helped do to implement "scheduler activations" in the Mach uKernel
(Usenix 1993). I wondered if anyone thought it would be good to have
upcalls available as a general mechanism for Linux (not scheduler
activations per se, just the upcall mechanism).

Nobody commented, except one private email from someone who knew what
SA's were, and wanted me to tell him if I ever ported the Mach stuff
to Linux.

So I don't need much help understanding upcalls, having already been
through the nightmare of writing a user-level thread library that has
to have an instruction-level reentrant context switch because an
upcall could come at any moment :)

> if you had a light weight way to get out to user space when an event occurs
> you could do some rally cool things - it could well amount to you having
> the speed of kernel code and the ease of use of user code.

Do I take it then that you'd be a fan of having upcalls implemented
under Linux ?

> I haven't prorotyped this so maybe I'm full of it, maybe there is some
> problem that says this can't be done.

Its been done, for Mach on the x86 at least, by me (and 2 other people).

> do something cool. If anyone is inclined, send me private mail and we'll
> talk about it and try and come up with a plan.

Most of my programming time is currently spent on Linux MIDI and audio
tools, but this is still something I'm considering doing, if only to
support my next monster music application.

--pbd (once upon a time, pauld@cs.washington.edu, and then pbd@amazon.com)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/