[linux-pm] [Suspend-devel] [RFC][PATCH -mm 1/5] PM: Make freeze_processes SMP-safe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday, 27 November 2006 11:50, Pavel Machek wrote:
> Hi!
> 
> > > > @@ -61,10 +60,13 @@ static inline void freeze_process(struct
> > > >  	unsigned long flags;
> > > >  
> > > >  	if (!freezing(p)) {
> > > > -		freeze(p);
> > > > -		spin_lock_irqsave(&p->sighand->siglock, flags);
> > > > -		signal_wake_up(p, 0);
> > > > -		spin_unlock_irqrestore(&p->sighand->siglock, flags);
> > > > +		rmb();
> > > 
> > > If frozen is atomic_t, do we need memory barrier?
> > 
> > I think so.  For example on x86-64 atomic_read() is just a read.
> 
> Sorry for one more change, but
> 
> 
> /* set thread flags in other task's structures
>  * - see asm/thread_info.h for TIF_xxxx flags available
>  */
> static inline void set_tsk_thread_flag(struct task_struct *tsk, int
> flag)
> {
>         set_ti_thread_flag(task_thread_info(tsk), flag);
> }
> 
> ...could we use set_tsk_thread_flag and friends to avoid enlarging
> task struct?

_Of_ _course_.  [Heh, I didn't even know something like this existed. ;-)]

Greetings,
Rafael


-- 
You never change things by fighting the existing reality.
		R. Buckminster Fuller



[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux