lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 2 Nov 2017 11:36:17 +0100 (CET)
From:   Miroslav Benes <mbenes@...e.cz>
To:     Oleg Nesterov <oleg@...hat.com>
cc:     Petr Mladek <pmladek@...e.com>, jpoimboe@...hat.com,
        jeyu@...nel.org, jikos@...nel.org, lpechacek@...e.cz, pavel@....cz,
        live-patching@...r.kernel.org, linux-kernel@...r.kernel.org,
        Michael Ellerman <mpe@...erman.id.au>,
        Thomas Gleixner <tglx@...utronix.de>,
        Ingo Molnar <mingo@...hat.com>,
        "H. Peter Anvin" <hpa@...or.com>,
        Andy Lutomirski <luto@...nel.org>,
        linuxppc-dev@...ts.ozlabs.org, x86@...nel.org
Subject: Re: [PATCH v3 1/2] livepatch: send a fake signal to all blocking
 tasks

On Wed, 1 Nov 2017, Oleg Nesterov wrote:

> On 11/01, Petr Mladek wrote:
> >
> > On Tue 2017-10-31 12:48:52, Miroslav Benes wrote:
> > > +		if (task->flags & PF_KTHREAD) {
> > > +			/*
> > > +			 * Wake up a kthread which still has not been migrated.
> > > +			 */
> > > +			wake_up_process(task);
> >
> > I have just noticed that freezer used wake_up_state(p, TASK_INTERRUPTIBLE);
> > IMHO, we should do so as well.
> 
> I won't argue, but...
> 
> > wake_up_process() wakes also tasks in TASK_UNINTERRUPTIBLE state.
> > These might not be ready for an unexpected wakeup. For example,
> > see concat_dev_erase() in drivers/mtd/mtdcontact.c.
> 
> I'd say that concat_dev_erase() should be fixed, any code should be ready
> for spurious wakeup.

I agree.
 
> Note also that wake_up_state(TASK_INTERRUPTIBLE) won't wakeup the TASK_IDLE
> kthreads, and most of the kthreads which use TASK_INTERRUPTIBLE should use
> TASK_IDLE today, because in most cases TASK_INTERRUPTIBLE was used to not
> contribute to loadavg.

Yes. Unfortunately, we have TASK_IDLE for more than two years now and 
nothing much has happened yet. TASK_IDLE is still used sporadically. I'd 
like to be on the safe side with livepatch and given that 
TASK_INTERRUPTIBLE loops should be prepared for spurious wakeups by 
definition, I think it is better to have wake_up_state(TASK_INTERRUPTIBLE) 
there. At least till all "concat_dev_erase" beauties are fixed (sigh).

Miroslav

Powered by blists - more mailing lists