Bug 112284

Summary: Possible typo in linux-2.4.22-ac1-scheduler-update.patch?
Product: [Fedora] Fedora Reporter: Yue Shi Lai <ylai>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED NOTABUG QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 1   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-12-18 06:22:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Yue Shi Lai 2003-12-17 02:24:02 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.4) Gecko/20030922

Description of problem:
While possible effect is unknown, there is a possible typographical
mistake in the Fedora Core's O(1) scheduler interactivity patch backport.

The macro CAN_MIGRATE_TASK is modified by the Con Kolivas O(1)
interactivity patch to static inline int can_migrate_task(task_t *,
runqueue_t *, int, int). The first condition in the original macro

(!idle || (NS_TO_JIFFIES(now - (p)->timestamp) > cache_decay_ticks))

has been negated (by using elementary Boolean algebra) to the first
condition

if (idle && (delta <= JIFFIES_TO_NS(cache_decay_ticks)))
return 0;

which returns 0 (false) if the condition is met.

In linux-2.4.22-ac1-scheduler-update.patch from
kernel-2.4.22-1.2115.nptl.src.rpm , and also contrary to the current
kernel.org 2.6.0-test11 kernel, this condition has been rewritten to

if (!idle && (delta <= JIFFIES_TO_NS(cache_decay_ticks)))
return 0;

(with negation of idle).

Unless there is a good reason, the liklihood for this being a
typographical mistake is very high.

Version-Release number of selected component (if applicable):
kernel-2.4.22-1.2115.nptl

How reproducible:
Always

Steps to Reproduce:
1. Install (unpack) kernel-2.4.22-1.2115.nptl.src.rpm
2. Open linux-2.4.22-ac1-scheduler-update.patch and go to the patch
section @@ -755,21 +1193,39 @@ for kernel/sched.c
3. Go to the third line in can_migrate_task() - and also note the
previous macro variant cited above.
    

Additional info:

Comment 1 Ingo Molnar 2003-12-17 08:54:30 UTC
This function has identical logic to that of 2.6.0-test11. Why do you
think it's "contrary to the current kernel.org 2.6.0-test11 kernel"?

Comment 2 Yue Shi Lai 2003-12-17 20:11:40 UTC
OK, first sorry for the incorrect position of difference I gave. Now I
looked through the patch files for 2.6.0-test6 (where this
originates), and there seems to be a difference between
patch-test5-O20.3int
(http://ck.kolivas.org/patches/2.6/2.6.0-test5/patch-test5-O20.3int)
from Con Kolivas and kernel.org's patch-2.6.0-test6.

The issue is still strange, since O20.3int is the patch for O(1)
interactivity, and there has been no comment except a "clean up" of
CAN_MIGRATE_TASK. But since this seems not to be a Red Hat specific
problem, maybe we can close this issue.

Comment 3 Yue Shi Lai 2003-12-18 06:22:35 UTC
Now I looked through the Kernel mailing list archives, the inversion
of idle is obviously introduced by Andrew Theurer
<habanero.com> (Wed Aug 27 2003). The way in 2.6.0-test6 and
later, also Fedora Core 1, seems to be the correct one. I think we can
close this issue.