Re: [RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_stop

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Rafael J. Wysocki <rjw@...>
Cc: Andrew Morton <akpm@...>, Ingo Molnar <mingo@...>, Oleg Nesterov <oleg@...>, <linux-kernel@...>, <vatsa@...>, <paulmck@...>, <pavel@...>
Date: Monday, April 23, 2007 - 8:35 am

On Sun, Apr 22, 2007 at 09:40:59PM +0200, Rafael J. Wysocki wrote:

I'm trying hard to convince myself that this will work. May be I am
missing something here, but I find a potential race window (very small though) 
when k is entering the refrigerator.

Here's how.

kthread_stop(k)					k->refrigerator()
---------------------------------------------------------------------
						task_lock(k);
						1) check_if_exempted();
						/* not exempted. So 
						 * we will freeze
						 * ourself.
						 */
2) freezer_exempt(k);

3) if(frozen(k))
/* No, we're not yet frozen. So we
 * don't clear_frozen_flag(k) here
 */
						4) frozen_process(k);
						   task_unlock(k);
						
						5) for(;;) {
						 set_current_state(UNINTERRUPTIBLE);
						  if(!frozen_process(k))
						  /* k is frozen. We
						   * don't break :( 
						   */
						 
						  	schedule();
						}
						

Thus the freezer can still fail, no?
IMO, we need the to take the task_lock for k here. Something like

		task_lock(k);
		task_unlock(k);


Thanks and Regards
gautham.
-- 
Gautham R Shenoy
Linux Technology Center
IBM India.
"Freedom comes with a price tag of responsibility, which is still a bargain,
because Freedom is priceless!"
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC 0/2] Fix Freezer related races., Gautham R Shenoy, (Thu Apr 19, 8:01 am)
[RFC PATCH(experimental) 2/2] Fix freezer-kthread_stop race, Gautham R Shenoy, (Thu Apr 19, 8:04 am)
Re: [RFC PATCH(experimental) 2/2] Fix freezer-kthread_stop r..., Rafael J. Wysocki, (Fri Apr 20, 4:54 am)
Re: [RFC PATCH(experimental) 2/2] Fix freezer-kthread_stop r..., Rafael J. Wysocki, (Fri Apr 20, 5:45 pm)
Re: [RFC PATCH(experimental) 2/2] Fix freezer-kthread_stop r..., Rafael J. Wysocki, (Fri Apr 20, 7:59 am)
[RFC][PATCH -mm 0/3] Separate freezer flags, Rafael J. Wysocki, (Sun Apr 22, 3:28 pm)
[RFC][PATCH -mm 1/3] Separate freezer from PM code, Rafael J. Wysocki, (Sun Apr 22, 3:33 pm)
Re: [RFC][PATCH -mm 1/3] Separate freezer from PM code, Pavel Machek, (Mon Apr 23, 6:41 am)
[RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Sun Apr 22, 3:39 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Oleg Nesterov, (Mon Apr 23, 6:23 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Mon Apr 23, 6:40 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Oleg Nesterov, (Mon Apr 23, 6:55 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Mon Apr 23, 7:10 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Oleg Nesterov, (Mon Apr 23, 7:19 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Tue Apr 24, 7:32 am)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Gautham R Shenoy, (Mon Apr 23, 6:41 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Mon Apr 23, 6:55 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Gautham R Shenoy, (Mon Apr 23, 9:17 am)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Mon Apr 23, 3:57 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Satyam Sharma, (Mon Apr 23, 12:09 am)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Mon Apr 23, 3:06 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Gautham R Shenoy, (Mon Apr 23, 10:19 am)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Mon Apr 23, 2:49 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Rafael J. Wysocki, (Sun Apr 22, 6:14 pm)
Re: [RFC][PATCH -mm 2/3] freezer: Introduce freezer_flags, Satyam Sharma, (Sun Apr 22, 11:18 pm)
[RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_stop, Rafael J. Wysocki, (Sun Apr 22, 3:40 pm)
Re: [RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_s..., Gautham R Shenoy, (Mon Apr 23, 8:35 am)
Re: [RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_s..., Rafael J. Wysocki, (Mon Apr 23, 3:55 pm)
Re: [RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_s..., Rafael J. Wysocki, (Mon Apr 23, 5:30 pm)
Re: [RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_s..., Rafael J. Wysocki, (Mon Apr 23, 4:05 pm)
Re: [RFC][PATCH -mm 3/3] freezer: Fix problem with kthread_s..., Rafael J. Wysocki, (Mon Apr 23, 3:50 pm)
Re: [RFC PATCH(experimental) 2/2] Fix freezer-kthread_stop r..., Rafael J. Wysocki, (Fri Apr 20, 5:13 pm)
Re: [RFC PATCH(experimental) 2/2] Fix freezer-kthread_stop r..., Rafael J. Wysocki, (Fri Apr 20, 8:50 am)
[RFC PATCH 1/2] Fix PF_NOFREEZE and freezeable race, Gautham R Shenoy, (Thu Apr 19, 8:02 am)
Re: [RFC PATCH 1/2] Fix PF_NOFREEZE and freezeable race, Rafael J. Wysocki, (Thu Apr 19, 5:39 pm)
Re: [RFC PATCH 1/2] Fix PF_NOFREEZE and freezeable race, Oleg Nesterov, (Fri Apr 20, 2:02 pm)
Re: [RFC PATCH 1/2] Fix PF_NOFREEZE and freezeable race, Gautham R Shenoy, (Mon Apr 23, 6:26 am)
Re: [RFC PATCH 1/2] Fix PF_NOFREEZE and freezeable race, Oleg Nesterov, (Mon Apr 23, 1:49 pm)