Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Oct 2007 20:09:43 -0700
From:      Alfred Perlstein <alfred@freebsd.org>
To:        Daniel Eischen <deischen@freebsd.org>
Cc:        hackers@freebsd.org
Subject:   Re: Critical Sections for userland.
Message-ID:  <20071003030943.GQ31826@elvis.mu.org>
In-Reply-To: <Pine.GSO.4.64.0710022257340.626@sea.ntplx.net>
References:  <20071003015231.GJ31826@elvis.mu.org> <Pine.GSO.4.64.0710022244250.626@sea.ntplx.net> <20071003025418.GN31826@elvis.mu.org> <Pine.GSO.4.64.0710022257340.626@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
* Daniel Eischen <deischen@freebsd.org> [071002 20:02] wrote:
> On Tue, 2 Oct 2007, Alfred Perlstein wrote:
> 
> >* Daniel Eischen <deischen@freebsd.org> [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.

> 
> Are you trying to prevent switching out of the thread
> amongst other threads of the same application, or all
> threads in the system?

All threads on that CPU.

It's basically, almost like a "soft spl" for userland.

Right?

-- 
- Alfred Perlstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071003030943.GQ31826>