Subject: [sup-talk] ruby/sup causing lots of wakeups-from-idle

From: [email-masked] (Phil Snowberger)
Date: Sun, 11 Nov 2007 19:49:55 -0500

I was wondering if anybody else has a problem with sup/ruby causing
lots of wakeups-from-idle?  The following line comes from the output
of powertop on my thinkpad:

...
  20.6% ( 94.8)              ruby : do_nanosleep (hrtimer_wakeup)
...

That is, there are ~94.8 wakeups-from-idle per second occuring because
ruby is do_nanosleep'ing a lot.  Is there any workaround for this?
Cursory searching seems to indicate that lots of wakeups can be caused
by doing usleep()s instead of select()/poll().  I'm trying to save as
much battery power as possible, and I currently leave sup off until I
want to check my email, which introduces startup time, etc.

I could just run it on some other host and access it with ssh, but for
a few reasons (mostly not wanting to do X forwarding), I'd like to try
getting ruby/sup to behave a little better.

Thanks,
--Phil

---

From: [email-masked] (William Morgan)
Date: Sun, 11 Nov 2007 17:24:37 -0800

Excerpts from Phil Snowberger's message of Sun Nov 11 16:49:55 -0800 2007:
> lots of wakeups-from-idle?

Does this happen with other multithreaded Ruby apps? Sup uses select()
for input, and the only persistent threads have multi-second sleep
times. But I have no idea how that translates down to the OS level, as
Ruby does its own threading.

-- 
William <wmorgan-sup at masanjin.net>

---

From: [email-masked] (Phil Snowberger)
Date: Tue, 13 Nov 2007 15:26:26 -0500

> Ruby does its own threading.

I tried raggle to see if it would cause a similar amount of wakeups,
and it does;  Once it settles into a steady state (after it's checked
each feed on startup), it does ~95 wakeups per second, just like sup.

Sorry for what appears to be a false alarm; I'll take this question to
some ruby folks.

Thanks,
--Phil