preempt-kernel on 2.4.19-pre2-ac2 bugfix

Submitted by Cine
on March 6, 2002 - 12:36am

In recent O(1) scheduler releases, an optimization was made that removed schedule_tail from UP kernels. This causes the initial preempt_count of a new task, which starts at 1, to never decrement to zero and thus never become preemptible. Users of 2.4+O(1)+preempt (i.e. -ac) should use this patch.

From: Robert Love
Subject: [PATCH] preempt-kernel on 2.4.19-pre2-ac2 bugfix
Date: 04 Mar 2002 19:23:10 -0500

The same schedule_tail bug affecting 2.5 affects 2.4 with O(1). I.e., 2.4.19-pre2-ac2.

In recent O(1) scheduler releases, an optimization was made that removed schedule_tail from UP kernels. This causes the initial preempt_count of a new task, which starts at 1, to never decrement to zero and thus never become preemptible. CONFIG_PREEMPT requires schedule_tail, too.

Users of 2.4+O(1)+preempt (i.e. -ac) should use this patch:

http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/preempt-kernel-rml-2.4.19-pre2-ac2-2.patch

instead. Thanks to everyone who pointed out the lousy performance.

Enjoy,

Robert Love

re: sections

Jeremy
on
March 7, 2002 - 10:25am

There is not currently a way to submit a story only to a specific section. I will look into modifying the Drupal code to support this feature, though only after I've upgraded to the much improved CVS version.

The KernelTrap upgrade to the CVS Drupal won't be occuring until early April, when I return for a vacation.

Voting

lucky
on
March 5, 2002 - 4:43pm

Er, hi, I'm lucky, and I'm new here. I just wanted to point out that I voted 0 because I don't think that this is of very general interest. Instead, as pointed out before, it should go in the linux-category.

--
Lucky

RE: preempt-kernel on 2.4.19-pre2-ac2 bugfix

nimrod
on
March 6, 2002 - 2:33pm

There's a parallel patch for 2.5.6-pre2 which fixes the same bug (in the 2.5 tree).

announcement is here.

here's a copy of the message:

From: Robert Love
Date: 2002-03-05 0:11:23

During 2.5.5-pre, an optimization was made that removed schedule_tail
from UP kernels. This causes the initial preempt_count of a new task,
which starts at 1, to never decrement to zero and thus never become
preemptible.

Thanks to everyone who pointed out the lousy performance - it took
awhile to find but it should be fixed now. Please
comment if not.

Patch is against 2.5.6-pre2 and is critical for all UP+preempt users. Robert Love

The patch is appended to the post, you can get it at the place linked to above.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.