[lkml]   [2002]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subjectnon-atomic test victim #1
Current kernel with the non-atomic test I sent, SMP with preemption.

I only get two triggers, both during boot. They are on migration_thread
and ksoftirqd startup. The problem lies in set_cpus_allowed():

Trace; c0116ac4 <schedule+a4/4b0>
Trace; c011731a <wait_for_completion+11a/1d0>
Trace; c0116f30 <default_wake_function+0/40>
Trace; c0115d02 <try_to_wake_up+312/320>
Trace; c0116f30 <default_wake_function+0/40>
Trace; c0118f0f <set_cpus_allowed+22f/250>
Trace; c0118f7d <migration_thread+4d/590>
Trace; c0118f30 <migration_thread+0/590>
Trace; c0118f30 <migration_thread+0/590>
Trace; c010586d <kernel_thread_helper+5/18>

It is obviously the preempt_disable() which we hold past the wake_up().

The issue is that, without this preempt_disable() there have been
observed crashes, especially on large n-way machines. Both Andrew
Morton and Anton Blanchard have reported the problem and that this fixes

Question is, why does set_cpus_allowed() need it? I do not see it... it
must be an issue with an early preemption and the resulting

Ingo, ideas?

Robert Love

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:41    [W:0.022 / U:5.612 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site