Date: Fri, 26 Oct 2001 02:01:15 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Doug Rabson <dfr@nlsystems.com> Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/aac aac.c src/sys/dev/acpica/Osd Osd Message-ID: <XFMail.011026020115.jhb@FreeBSD.org> In-Reply-To: <20011026094417.B549-100000@salmon.nlsystems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26-Oct-01 Doug Rabson wrote: > On Thu, 25 Oct 2001, John Baldwin wrote: > >> jhb 2001/10/25 23:32:21 PDT >> >> Modified files: >> sys/dev/aac aac.c >> sys/dev/acpica/Osd OsdSchedule.c >> sys/dev/amr amr.c >> sys/dev/mly mly.c >> sys/kern subr_taskqueue.c >> sys/sys taskqueue.h >> Log: >> Add locking to taskqueues. There is one mutex per task, one mutex per >> queue, and a mutex to protect the global list of taskqueues. The only >> visible change is that a TASK_DESTROY() macro has been added to mirror >> the TASK_INIT() macro to destroy a task before it is free'd. >> >> Submitted by: Andrew Reiter <awr@watson.org> > > Thats a lot of mutexes. Wouldn't it be better to use a mutex pool for > tasks? That would avoid the need for TASK_DESTROY too. Tasks were intended > to be extremely lightweight, small objects with a stable ABI. This also > forces them to depend on the mutex ABI. Well, one thought I had was that the queue lock might be able to protect all the tasks on that queue. I think that works but am not sure. I think it would satisfy the current locking done on tasks at least. Does this sound feasible? Hmm. The only variable that's potentially manipulated while the task is on a queue is the pending count, and the queue lock can protect that. This assumes that if a task is not on a queue only one thread references it in which case it can do with it as it pleases w/o needing any locks until it puts it on the queue, at which point it must stay read only until it is dequeue'd. -- 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 cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.011026020115.jhb>