Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Srivatsa Vaddagiri
Date: Tuesday, April 3, 2007 - 5:56 am

On Mon, Apr 02, 2007 at 08:56:07PM +0200, Ingo Molnar wrote:

I would shy from saying that "that's the only problem". It could also be

	for_each_cpu_mask(some_mask)
		do_something_which_sleeps();

where some_mask is suppsoed to represent a subset of online cpus.

For ex: policy->cpus is a mask maintained by cpufreq, which it iterates thr' 
whenever changing cpu frequency. The cpus in that mask are supposed to be 
a subset of online cpus (with CPU_ONLINE/DEAD handlers in cpufreq.c adjusting 
the mask upon hotplug).

We could adopt a similar trick (get/put_each_cpu_mask) that you describe
below in those extended cases as well.


The real question is how do we convert over those sleeping
for_each_cpu_mask users (for ex: flush_workqueue) such that they don't
block freezer/hotplug for long periods?

One option is to probably rewrite them to understand that
online[or a derived]_map could have changed everytime they come out of a 
(un)interruptible sleep and deal with arising races appropriately. That
would mean a bit of maintenance headache unfortunately (I was hoping
freezer will lead to zero maintenance headache :)

Besides, how problematic is this in practise (that threads sleep for
extended durations in TASK_INTERRUPTIBLE state breaking
freezer/suspend/hotplug)?

Should we ignore this for the timebeing and take up later as and when
users report problems?

-- 
Regards,
vatsa
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Sun Apr 1, 10:34 pm)
[PATCH 2/8] Make process freezer reentrant, Gautham R Shenoy, (Sun Apr 1, 10:37 pm)
[PATCH 3/8] Use process freezer for cpu-hotplug, Gautham R Shenoy, (Sun Apr 1, 10:38 pm)
[PATCH 4/8] Rip out lock_cpu_hotplug(), Gautham R Shenoy, (Sun Apr 1, 10:39 pm)
[PATCH 5/8] __cpu_up: use singlethreaded workqueue, Gautham R Shenoy, (Sun Apr 1, 10:40 pm)
[PATCH 6/8] Make non-singlethreaded workqueues freezeable ..., Gautham R Shenoy, (Sun Apr 1, 10:41 pm)
[PATCH 8/8] Make kernel threads freezeable for cpu-hotplug, Gautham R Shenoy, (Sun Apr 1, 10:42 pm)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Srivatsa Vaddagiri, (Mon Apr 2, 2:28 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Mon Apr 2, 4:19 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Srivatsa Vaddagiri, (Mon Apr 2, 5:42 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Mon Apr 2, 7:16 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Rafael J. Wysocki, (Mon Apr 2, 3:12 pm)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Tue Apr 3, 5:01 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Srivatsa Vaddagiri, (Tue Apr 3, 5:56 am)
Re: [PATCH 7/8] Clean up workqueue.c with respect to the f ..., Srivatsa Vaddagiri, (Tue Apr 3, 6:59 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Tue Apr 3, 7:01 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Tue Apr 3, 7:15 am)
Re: [PATCH 7/8] Clean up workqueue.c with respect to the f ..., Srivatsa Vaddagiri, (Tue Apr 3, 10:18 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Rafael J. Wysocki, (Tue Apr 3, 12:34 pm)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Andrew Morton, (Tue Apr 3, 1:24 pm)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Srivatsa Vaddagiri, (Tue Apr 3, 8:15 pm)
Re: utrace merge, Ingo Molnar, (Wed Apr 4, 3:06 am)
Re: utrace merge, Christoph Hellwig, (Wed Apr 4, 3:36 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Wed Apr 4, 3:41 am)
Re: [RFC] Cpu-hotplug: Using the Process Freezer (try2), Gautham R Shenoy, (Wed Apr 4, 5:24 am)
Re: [PATCH 7/8] Clean up workqueue.c with respect to the f ..., Srivatsa Vaddagiri, (Wed Apr 4, 10:49 am)
Re: utrace merge, Andrew Morton, (Wed Apr 4, 11:41 am)
Re: [PATCH 2/8] Make process freezer reentrant, Oleg Nesterov, (Thu Apr 5, 2:53 am)
Re: [PATCH 2/8] Make process freezer reentrant, Gautham R Shenoy, (Thu Apr 5, 3:19 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Oleg Nesterov, (Thu Apr 5, 3:53 am)
Re: [PATCH 5/8] __cpu_up: use singlethreaded workqueue, Oleg Nesterov, (Thu Apr 5, 5:08 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Gautham R Shenoy, (Thu Apr 5, 5:14 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Oleg Nesterov, (Thu Apr 5, 6:34 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Nathan Lynch, (Fri Apr 6, 10:27 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Ingo Molnar, (Fri Apr 6, 10:34 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Nathan Lynch, (Fri Apr 6, 10:47 am)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Nigel Cunningham, (Fri Apr 6, 3:22 pm)
Re: [PATCH 7/8] Clean up workqueue.c with respect to the f ..., Srivatsa Vaddagiri, (Wed Apr 11, 7:22 pm)
Re: [PATCH 3/8] Use process freezer for cpu-hotplug, Pavel Machek, (Sat Apr 14, 11:48 am)