Re: [PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip()

2012-10-24 Thread Tejun Heo
Hello, Oleg. On Tue, Oct 23, 2012 at 05:39:19PM +0200, Oleg Nesterov wrote: > > Hmm Guess we should drop __ from set_current_state. > > Yes. > > Or we can change ptrace_stop() and do_signal_stop() to use > freezer_do_not_count/ > freezer_count and remove task_is_stopped_or_traced() from up

Re: [PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip()

2012-10-23 Thread Oleg Nesterov
Hi Tejun, On 10/22, Tejun Heo wrote: > > On Mon, Oct 22, 2012 at 07:44:04PM +0200, Oleg Nesterov wrote: > > > We probably have another similar race. If ptrace_stop()->may_ptrace_stop() > > returns false, the task does > > > > __set_current_state(TASK_RUNNING); > > // no mb in between > >

Re: [PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip()

2012-10-22 Thread Tejun Heo
Hello, Oleg. On Mon, Oct 22, 2012 at 07:44:04PM +0200, Oleg Nesterov wrote: > > static inline void freezer_count(void) > > { > > current->flags &= ~PF_FREEZER_SKIP; > > + /* > > +* If freezing is in progress, the following paired with smp_mb() > > +* in freezer_should_skip() ensure

Re: [PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip()

2012-10-22 Thread Oleg Nesterov
On 10/16, Tejun Heo wrote: > > +/** > + * freezer_count - tell freezer to stop ignoring %current > + * > + * Undo freezer_do_not_count(). It tells freezers that %current should be > + * considered again and tries to freeze if freezing condition is already in > + * effect. > */ > static inline v

[PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip()

2012-10-16 Thread Tejun Heo
A task is considered frozen enough between freezer_do_not_count() and freezer_count() and freezers use freezer_should_skip() to test this condition. This supposedly works because freezer_count() always calls try_to_freezer() after clearing %PF_FREEZER_SKIP. However, there currently is nothing whi