Date: Thu, 21 Dec 2000 13:58:55 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: Julian Elischer <julian@elischer.org> Cc: smp@FreeBSD.ORG, archie@FreeBSD.ORG Subject: Re: looking for locking advice.. Message-ID: <XFMail.001221135855.jhb@FreeBSD.org> In-Reply-To: <3A4271B9.223CD683@elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 21-Dec-00 Julian Elischer wrote: > John Baldwin wrote: >> >> Julian, >> >> Just use reader/writer locks for now. They can use a lockmgr backend until >> a >> more efficient reader/writer lock is implemented. As a side note, we should >> probably work up a rw lock API and define some macros that just map to >> lockmgr >> operations for now but can be optimized later. As for mutexes: you should >> be >> using sleep mutexes, not spin mutexes, in which case interrupts aren't >> disabled >> while the lock is held. Very, very, very, very few things should be using >> spin >> mutexes. Note that when a mutex is released, if any threads are blocked on >> it, >> then the thread with the highest priority is woken up so it can run. Also >> note >> that interrupt threads have a higher priority than all other threads, so >> yes, >> you can block in an interrupt thread. However, blocking an interrupt thread >> is something that should still be somewhat minimized due to shared >> interrupts >> since you will be blocking all interrupt handlers associated with a >> particular >> interrupt source, thus don't go using tsleep() in an interrupt handler, for >> example. :) > > well if I block, and I can't use sleep, what CAN I use? > I need the previously running process/thread to continue > running because it is holding the lock I want to obtain.. > when it finishes and releases the lock I want to be called to > continue.. You can block using a mutex, just don't use the tsleep(9) function as "too" much sleeping in an interrupt handler is bad. If that makes any sense. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001221135855.jhb>