Some more findings:

This is the strace snipped that gets repeated all over:

read(3, "\2\0\0\0\0\0\0\0", 16)         = 8
futex(0x194b7ac, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x194b7a8, {FUTEX_OP_SET, 0, 
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x194b790, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x194b5e4, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x194b7ac, FUTEX_WAIT_PRIVATE, 1280555, NULL) = -1 EAGAIN (Resource 
temporarily unavailable)
futex(0x194b790, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {9601, 188387021}) = 0
clock_gettime(CLOCK_MONOTONIC, {9601, 189027949}) = 0
poll([{fd=3, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, 
{fd=36, events=POLLIN}, {fd=39, events=POLLIN}, {fd=48, events=POLLIN}, {fd=49, 
events=POLLIN}], 7, -1) = 1 ([{fd=3, revents=POLLIN}])

One of the threads when attaching gdb:

Thread 15 (Thread 0x40f15460 (LWP 2067)):
#0  0x418a8fe4 in __libc_do_syscall () from 
/lib/arm-linux-gnueabihf/libpthread.so.0
#1  0x418a6432 in do_futex_wait () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x418a64a6 in sem_wait@@GLIBC_2.4 () from 
/lib/arm-linux-gnueabihf/libpthread.so.0
#3  0x413b7ab6 in v8::internal::LinuxSemaphore::Wait (this=0x44b00468) at 
../3rdparty/v8/src/platform-linux.cc:857
#4  0x4133f292 in v8::internal::RuntimeProfiler::WaitForSomeIsolateToEnterJS () 
at ../3rdparty/v8/src/runtime-profiler.cc:420
#5  0x4133f388 in v8::internal::RuntimeProfilerRateLimiter::SuspendIfNecessary 
(this=this@entry=0x196a2d4) at ../3rdparty/v8/src/runtime-profiler.cc:467
#6  0x413b8928 in v8::internal::SignalSender::Run (this=0x196a2b0) at 
../3rdparty/v8/src/platform-linux.cc:1136
#7  0x413b7a98 in v8::internal::ThreadEntry (arg=0x196a2b0) at 
../3rdparty/v8/src/platform-linux.cc:733
#8  0x418a1e64 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#9  0x410257c8 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#10 0x410257c8 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

This thread seems to do the futex_waits. According to
https://groups.google.com/forum/#!topic/nodejs/XPO7aVOVrds this seems to
happen when v8 starts garbage collecting. Other applications using v8
seem to show the exact same behavior. Same strace output and same CPU
hogging behavior.

And I still can't reproduce this. While it happens every once in a while
I still can't trigger this intentionally.

(After installing tons of dbgsym packages I don't see the corrupt stack
trace from the "dconf worker" any more. So the previous comments might
be wrong information)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1219871

Title:
  when idle with screen blank, unity8 generates hundreds of context
  switches per second

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1219871/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to