On Tue, 2 Oct 2007, Alfred Perlstein wrote:
* Daniel Eischen <[EMAIL PROTECTED]> [071002 20:02] wrote:
On Tue, 2 Oct 2007, Alfred Perlstein wrote:
* Daniel Eischen <[EMAIL PROTECTED]> [071002 19:46] wrote:
On Tue, 2 Oct 2007, Alfred Perlstein wrote:
Hi guys, we need critical sections for userland here.
This is basically to avoid a process being switched out while holding
a user level spinlock.
Setting the scheduling class to real-time and using SCHED_FIFO
and adjusting the thread priority around the lock doesn't work?
Too heavy weight, we want to basically have this sort of code
in userland:
Well, yeah, but are you _really_ sure that you aren't just
running something that should be real-time and have priority
over other applications? SCHED_FIFO means you will run until
you relinquish the CPU (you can only do this as root). If
all your threads are well behaved, would this work? Have
you tried it?
No, because it wouldn't work. How do we know when to let go
of the cpu? In my system, the kernel tells you without polling.
You don't have to know when to "let go of the cpu" if your
threads are well behaved (meaning they block on some event,
or have periods when they wait). They will let go of the
CPU normally. When they're busy, they will not be switched
out (unless perhaps there is an interrupt thread that needs
to run -- I'm not sure how real-time threads get scheduled
against ithreads).
If your threads are not well behaved (CPU hogs), then that
isn't going to work because they'll probably bog down the
system.
--
DE
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"