Bug 309795

Summary: Beagle keeps CPU from going idle
Product: [openSUSE] openSUSE 10.3 Reporter: Petr Baudis <pbaudis>
Component: MonoAssignee: E-mail List <bnc-team-mono>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: behlert
Version: Beta 3   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 341832    

Description Petr Baudis 2007-09-12 09:57:33 UTC
Beagle keeps needlessly polling the CPU all the time and prevents it from going to really idle state. This has serious impact for power management.

Powertop shows beagle as the worst offender on my fresh beta3 installation:

  17.5% ( 19.4)           beagled : futex_wait (hrtimer_wakeup) 

and sure enough tracing one of the beagle threads shows

gettimeofday({1189590817, 41018}, NULL) = 0
futex(0xb797da84, FUTEX_WAKE, 1)        = 0
clock_gettime(CLOCK_REALTIME, {1189590817, 41187417}) = 0
futex(0xb797daa0, FUTEX_WAIT, 15, {0, 99812583}) = -1 ETIMEDOUT (Connection timed out)
                                   
looping all the time; if I get the order of tv_nsec right, it wants to wake 100x per second!
Comment 1 Joe Shaw 2007-09-12 18:52:42 UTC
This is a Mono bug; calling Monitor.Wait() causes Mono to wake up every 100ms.  It's a known bug for them, but the fix didn't make it into 1.2.5 because it broke other things.
Comment 2 JP Rosevear 2008-07-18 19:11:22 UTC
Not a beagle issue, mono team says this is covered in a variety of bugs and designs for post 2.0.  I'm going to invalidate this particular report in favor of those.