cvs commit: src/sys/vm vm_zeroidle.c

Alan Cox alc at cs.rice.edu
Sun Oct 31 20:53:32 PST 2004


On Sun, Oct 31, 2004 at 07:13:17PM -0800, Alfred Perlstein wrote:
> * Alan Cox <alc at FreeBSD.org> [041031 11:33] wrote:
> > alc         2004-10-31 19:32:57 UTC
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     sys/vm               vm_zeroidle.c 
> >   Log:
> >   Introduce a Boolean variable wakeup_needed to avoid repeated, unnecessary
> >   calls to wakeup() by vm_page_zero_idle_wakeup().
> >   
> >   Revision  Changes    Path
> >   1.31      +9 -2      src/sys/vm/vm_zeroidle.c
> 
> Why not switch to a cv?

Calling cv_signal repeatedly would be no better than calling wakeup()
repeatedly.  Either way, a Boolean variable is desirable to prevent
unnecessary calls.

As for the question of msleep()/wakeup() vs. cv_wait*()/cv_signal(),
cv_wait*() has no analogue to msleep()'s PDROP.  In this case, there
is no need to hold the lock after returning from the sleep.  So,
msleep(PDROP) is better suited to this case.

Regards,
Alan


More information about the cvs-all mailing list