Messages in this thread |  | | | From | Diwakar Tundlam <> | | Date | Tue, 8 May 2012 15:14:48 -0700 | | Subject | RE: [PATCH] sched: Make nr_uninterruptible count a signed value |
| |
Sorry to bug you when it is late for you..
You're right, there is no real difference at all. Only cosmetic difference when you look at the output of cat /proc/sched_debug.
But I suddenly realized maybe the increment/decrement of nr_interruptible is reversed. Maybe that's the source of the problem: decrement in activate task and increment in deactivate task !!
Code snip:
/* * activate_task - move a task to the runqueue. */ static void activate_task(struct rq *rq, struct task_struct *p, int flags) { if (task_contributes_to_load(p)) rq->nr_uninterruptible--; <<<<< why decrement in activate task enqueue_task(rq, p, flags); inc_nr_running(rq); } /* * deactivate_task - remove a task from the runqueue. */ static void deactivate_task(struct rq *rq, struct task_struct *p, int flags) { if (task_contributes_to_load(p)) rq->nr_uninterruptible++; <<<<< why increment in deactivate task dequeue_task(rq, p, flags); dec_nr_running(rq); } Thanks, --Diwakar.
-----Original Message----- From: Peter Zijlstra [mailto:a.p.zijlstra@chello.nl] Sent: Tuesday, May 08, 2012 2:57 PM To: Diwakar Tundlam Cc: 'Ingo Molnar'; 'David Rientjes'; 'linux-kernel@vger.kernel.org'; Peter De Schrijver Subject: Re: [PATCH] sched: Make nr_uninterruptible count a signed value On Tue, 2012-05-08 at 14:39 -0700, Diwakar Tundlam wrote: > Declare nr_uninterruptible as a signed long to avoid garbage values > seen in cat /proc/sched_debug when a task is moved to the run queue of > a newly online core. This is part of a global counter where only the > total sum over all CPUs matters.
Its late here, but do explain how any of this makes any difference what so ever? Since all we do with that field is add/sub the whole sign issue shouldn't matter one way or the other.
|  |