|
Bugzilla – Full Text Bug Listing |
| Summary: | Beagle keeps CPU from going idle | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 10.3 | Reporter: | Petr Baudis <pbaudis> |
| Component: | Mono | Assignee: | 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 | ||
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. 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. |
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!