Opened 10 years ago

Closed 10 years ago

#3535 closed bug (fixed)

Scheduling stops on extra cores

Reported by: jonas.kirilla Owned by: axeld
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Running Haiku hrev29436 on a Core 2 Quad 6600 with 4 cores:

  1. Stress the system with 4 Terminals running "cat /dev/zero > /dev/null"
  1. Observe Pulse indicate near 100% CPU use on all four cores.
  1. Open the Applications folder, Alt-A, Alt-O and wait for them to load
  1. Observe in Pulse how scheduling stops on some cores. If you pause scheduling on the remaining/working cores Haiku freezes.

This has also been seen in VMware by Phadin on #Haiku.

Attachments (2)

4_cats__before.txt (4.4 KB) - added by jonas.kirilla 10 years ago.
4 cats, before
4_cats__after.txt (5.4 KB) - added by jonas.kirilla 10 years ago.
4 cats, after

Download all attachments as: .zip

Change History (5)

comment:1 Changed 10 years ago by anevilyak

Any change in behavior whatsoever in hrev29484 or newer? Specifically with the last step? Either way, a visit to KDL + a dump of the thread states would be most helpful prior to it actually freezing. Offhand though this smells like it could possibly be a duplicate of ticket #2710.

comment:2 Changed 10 years ago by jonas.kirilla

It happens also on hrev29503, gcc2.

Step 3 is likely redundant.

A while after having started 4 cat threads, Pulse shows one core at 100% activity and 3 idle cores. KDL output looks to me as if all four cat processes are alive and running each on its own core. The only difference I can see, post vs pre, is that some flags and fault handlers differ. (Maybe these differ between when a process runs in the kernel and when in runs in userland?)

The cat processes can be stopped by ctr-c, which appears to release the "idle" cores, from Pulse´s point of view. Whether they are truly idle I can´t say.

Pulse and ProcessController sometimes display differently. Post-issue and post-killing the cat threads, ProcessController may show some cores pinned at 100% even when there is clearly no load anymore.

(I don´t know if this is related at all, but I just tried opening all preferences while having all four cores loaded, resulting in multiple errors of this kind: "Could not open X with application X (Unknown Application Error (-2147418110)".)

Having 4 cat processes and Pulse showing 1 core loaded and 3 cores "idle", turning off the loaded core makes Haiku freeze, but F12 can still be pressed. In KDL, "running" shows 3 cat processes running on the supposedly idle cores and an idle thread running on the previously loaded, now turned off, first core.

See KDL output.

Changed 10 years ago by jonas.kirilla

Attachment: 4_cats__before.txt added

4 cats, before

Changed 10 years ago by jonas.kirilla

Attachment: 4_cats__after.txt added

4 cats, after

comment:3 Changed 10 years ago by bonefish

Resolution: fixed
Status: newclosed

Tried to reproduce with hrev34615 on a Core i7 with HT. hrev34614/hrev34615 might have fixed the issue. Closing. Please reopen, if you can still reproduce it.

Note: See TracTickets for help on using tickets.