[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1247142266.9777.371.camel@twins>
Date: Thu, 09 Jul 2009 14:24:26 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Lucas De Marchi <lucas.de.marchi@...il.com>
Cc: Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org
Subject: Re: possible migration bug with hotplug cpu
On Thu, 2009-07-09 at 13:57 +0200, Lucas De Marchi wrote:
> So, I found the problem.
>
> These fields are currently not initialized upon fork. I noted that when I
> updated to 2.6.31-rc2; commit 6c594c21fcb02c662f11c97be4d7d2b73060a205 was
> merged into kernel by Ingo (not present yet in 2.6.30), but it only initializes
> nr_migrations. Why the other fields are not initialized to 0? Even when there
> are more processors, these fields may be wrong if not zeroed when a new task
> is started. Below the fast way to fix it. This fixed the counters for me.
Ah, awesome. I hadn't had time to look in detail yet. Thanks!
> What do you think of creating a struct sched_statistics embedded into
> sched_entity so we coudl memset it to zero all at once? All fields of
> SCHED_STATS piece should be initialized, right?
Sounds like a sane plan.
One of the things I have wanted to do for a long time is to rename
sched_entity to sched_fair_entity, and do something like:
struct sched_entity {
struct sched_common_entity common;
union {
struct sched_fair_entity fair;
struct sched_rt_entity rt;
};
};
I imagine we can add struct sched_statistics to the end of this as well.
The reason I haven't come around to doing this is that it takes a bit of
time to refactor the code and find all the common bits. So its been on
my todo list like forever.
Can I persuade you to look at this? :-)
I'll queue the below, can I add:
Signed-off-by: Lucas De Marchi <lucas.de.marchi@...il.com>
?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists