[Click] DelayUnqueue 100% cpu
Eddie Kohler
kohler at cs.ucla.edu
Thu Feb 7 18:32:44 EST 2008
Fixed, thanks for the report.
Eddie
Robert Ross wrote:
> Looks like something is missing from the latest CVS. routerthread will
> not compile due to missing inline reference:
>
> CXX [M] routerthread.o
> /usr/local/src/click/linuxmodule/../include/click/master.hh: In member
> function void RouterThread::driver():
> /usr/local/src/click/linuxmodule/../include/click/master.hh:117: sorry,
> unimplemented: inlining failed in call to Timestamp
> Master::next_timer_expiry_adjusted() const: function body not available
> /usr/local/src/click/linuxmodule/../lib/routerthread.cc:416: sorry,
> unimplemented: called from here
> make[3]: *** [/usr/local/src/click/linuxmodule/routerthread.o] Error 1
> make[2]: *** [_module_/usr/local/src/click/linuxmodule] Error 2
> make[2]: Leaving directory `/usr/src/kernels/linux-2.6.19.7'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/usr/local/src/click/linuxmodule'
> make: *** [linuxmodule] Error 2
>
> Can someone post the source fix to the mailing list and/or commit fixes
> to GIT/CVS?
>
> Robert A. Ross
> DSCI Inc.
> 609-509-5139
>
>
>
> -----Original Message-----
> From: click-bounces at pdos.csail.mit.edu on behalf of Eddie Kohler
> Sent: Tue 2/5/2008 5:40 PM
> To: Mike Scheutzow
> Cc: Click Mail List
> Subject: Re: [Click] DelayUnqueue 100% cpu
>
> Hi Mike,
>
> Thanks for this bug report. I agree that 100 milliseconds is way too high.
>
> I've checked in a change that not only reduces this sleeping threshold, but
> also hopefully improves Click's timer precision overall. The change adjusts
> Timer check frequencies based on observed lag (how slow the machine is).
>
> Let me know if it works for you.
> Eddie
>
>
> Mike Scheutzow wrote:
> > Problem
> >
> > If I use either the DelayUnqueue or DelayShaper elements with Click
> > userlevel, my cpu usage always pegs at 100%.
> >
> > This problem is present in both 1.6.0 and in the cvs repository
> > (checkout on Jan 31, 2008).
> >
> > Solution
> >
> > The bug is in the code which decides whether the thread should sleep or
> > not. A threshold of 100 milliseconds is way too high.
> >
> > In elements/standard/delayunqueue.cc and
> > elements/standard/delayshaper.cc, I changed:
> >
> > usec_to_subsec(100000)
> > to:
> > usec_to_subsec(100)
> >
> > and everything works much better. Our kernel uses a 1 millisecond tick.
> >
> >
> > Mike Scheutzow
> > scheutzow at alcatel-lucent.com
> >
> > _______________________________________________
> > click mailing list
> > click at amsterdam.lcs.mit.edu
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
More information about the click
mailing list