cvs commit: src/sys/vm vm_zeroidle.c
Alfred Perlstein
alfred at freebsd.org
Mon Nov 1 02:51:13 PST 2004
* Alan Cox <alc at cs.rice.edu> [041031 20:53] wrote:
> 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.
Yah, I figured there would be something in the cv code to optimize
the "no waiters" case.
> 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.
Didn't see that.
thank you,
-Alfred
More information about the cvs-src
mailing list