Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Oct 2007 19:54:18 -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:  <20071003025418.GN31826@elvis.mu.org>
In-Reply-To: <Pine.GSO.4.64.0710022244250.626@sea.ntplx.net>
References:  <20071003015231.GJ31826@elvis.mu.org> <Pine.GSO.4.64.0710022244250.626@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
* 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:

/* assume single threaded process for now */
static int is_critical;



atomic_mutex_lock();  /* implies ++is_critical */
 ...do stuff...
atomic_mutex_unlock(); /* implies --is_critical */

We don't want two or more syscalls per lock operation. :)

-- 
- Alfred Perlstein



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