Re: [Experimental CPU Hotplug PATCH] - Move migrate_all_tasks toCPU_DEAD handling

From: Nick Piggin
Date: Tue Apr 06 2004 - 04:27:09 EST


Srivatsa Vaddagiri wrote:
On Tue, Apr 06, 2004 at 10:28:53AM +1000, Nick Piggin wrote:

I think my stuff is a bit orthogonal to what you're attempting.
And they should probably work well together. My "lazy migrate"
patch means the tasklist lock does not need to be held at all,
only the dying runqueue's lock.


Hi Nick,
I went thr' your patch and have some comments:


Hi, thanks for the comments.

1. The benefit I see in your patch (over the solution present today)
is you migrate immediately only tasks in the runqueue and don't bother abt sleeping tasks. You catch up with them as and when they wake up.


That is correct, yes.

However by doing so, are we not adding an overhead in the wake-up
path? CPU offline should be a (very) rare event and to support that we have to check a cpu's offline status _every_ wakeup call.


Note there was already that check in the wakeup path, although
I suspect it was someone being overly cautious and isn't required.

Also in my patch, the offline check should probably be done below
the check for if (cpu == this_cpu... because that should be a common
route.

IMHO it is best if we migrate _all_ tasks in one shot during the
rare offline event and thus avoid the necessity of cpu_is_offline check during the (more) hotter wake_up path.


OK, whatever you like. At least you have my alternative if
you ever run into a problem here.

2. Also note that, migrate_all_tasks is being currently run with
rest of the machine frozen. So holding/not-holding tasklist
lock during that period does not make a difference!


Yeah, so Rusty pointed out. It still potentially moves a lot fewer
tasks though, but I guess it was really waiting for a patch like
yours ;)

My patch avoids having to migrate _immediately_ even the tasks present
in the runqueue. So the amout of time machine is frozen is greatly
reduced.


I really don't have much interest in the code so it is up to you.
If you ever have some realtime system that does cpu hotplugging
then give me a call!

Nick
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/