Re: cvs commit: src/sys/dev/syscons/apm apm_saver.c src/sys/i386/bios apm.c apm.h

[ Available lists | Index of cvs-all | Month of May 2006 | Week of 26 May 2006 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Date
26 May 2006 05:54:36
Subject
Re: cvs commit: src/sys/dev/syscons/apm apm_saver.c src/sys/i386/bios apm.c apm.h
Message-ID
20060526055424.GG49081@funkthat.com


[ Hide this part ]
Warner Losh wrote this message on Thu, May 25, 2006 at 22:06 -0600:
> > In the past, I've been against mandating that callouts/timeouts/generic
> > taskqueues should not be allowed to sleep. However, after looking over
> > the history of this problem as well as others, it seems that it's just
> > too easy for driver authors to make bad assumptions and wind up with a
> > priority inversion/deadlock like this. It would be relatively trivial
> > to mark these contexts as being non-sleepable and have the msleep code
> > enforce it, like is done with ithreads. What do you think? Anyways,
> > thanks for looking at this and fixing it.
>
> At the very least, we should mandate that timeouts are a non-sleepable
> event. Sleeping just doesn't work there. taskqueues, I'm less sure
> of, since short sleeps there work, but do degrade performance. I like
> this idea.

People worried about things like this should create their own thread
for their taskqueue.. It's quite easy (simple macro declaration), and
I did that for handling kq in kq...

--
John-Mark Gurney Voice: +1 415 225 5579

"All that I will do, has been done, All that I have, has not."


Elapsed time: 0.246 seconds