All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Michael Cree <mcree@orcon.net.nz>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Oleg Nesterov <oleg@redhat.com>,
	dl8bcu@dl8bcu.de, peterz@infradead.org, mingo@kernel.org,
	linux-kernel@vger.kernel.org, linux-alpha@vger.kernel.org
Subject: Re: [PATCH 1/1] task_work: Add local_irq_enable() into task_work_run()
Date: Sat, 13 Oct 2012 16:39:00 +0100	[thread overview]
Message-ID: <20121013153900.GR2616@ZenIV.linux.org.uk> (raw)
In-Reply-To: <201210132259.25791.mcree@orcon.net.nz>

On Sat, Oct 13, 2012 at 10:59:25PM +1300, Michael Cree wrote:

> Any chance that we could have the fixes backported to the stable queue, in 
> particular to the 3,2 kernel?  We should then be able to run the Debian built 
> SMP kernel on the autobuilders at Debian-Ports rather than having to run a 
> specially built kernel or a UP kernel.
> 
> BTW, the WARNING: at kernel/softirq.c:139 __local_bh_enable+0xe8/0x110() still 
> occurs when bringing up the CPUs.  Actually it happens twice now.  I've 
> attached my dmesg dump should you wish to check.

The obvious fix is to add local_irq_disable() into do_entInt(), just before
calling handle_ipi().  But I'm not sure if we wouldn't be better off just
doing it right in the beginning of do_entInt().  Take a look at that switch
in there: case 0 - we want local_irq_disable() done before handle_ipi().
case 1 - we do local_irq_disable() right there on SMP and do it almost
instantly in case of UP, since handle_irq() will do it a few insns after
entry anyway.  case 3 - ->device_interrupt() calls handle_irq() very soon
on all subarchitectures.  That leaves machine checks and perf_irq.  I have
no idea how hot those paths really are; do we spend enough time in there
to make blanket local_disable_irq() on those painful?  If not, we'd probably
be better off just lifting local_disable_irq() to the beginning of
do_entInt() and killing it in handle_irq() - that sucker is always called
from do_entInt(), directly or via ->device_interrupt().

Comments?

  reply	other threads:[~2012-10-13 15:39 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-06 20:47 [regression] boot failure on alpha, bisected Thorsten Kranzkowski
2012-10-07 16:55 ` Oleg Nesterov
2012-10-07 17:08   ` Al Viro
2012-10-07 17:33     ` Oleg Nesterov
2012-10-07 19:39       ` Al Viro
2012-10-08 14:14         ` Dialup Jon Norstog
2012-10-08 14:14         ` Dialup Jon Norstog
2012-10-08 18:59         ` Oleg Nesterov
2012-10-07 17:13   ` Oleg Nesterov
2012-10-07 18:04     ` Thorsten Kranzkowski
2012-10-07 19:16       ` Oleg Nesterov
2012-10-07 19:41         ` Thorsten Kranzkowski
2012-10-08 18:59         ` Geert Uytterhoeven
2012-10-08 19:10           ` Oleg Nesterov
2012-10-12 16:03 ` [PATCH 0/1] (Was: [regression] boot failure on alpha, bisected) Oleg Nesterov
2012-10-12 16:03   ` [PATCH 1/1] task_work: Add local_irq_enable() into task_work_run() Oleg Nesterov
2012-10-13  1:09     ` Linus Torvalds
2012-10-13  1:48       ` Al Viro
2012-10-13  9:59       ` Michael Cree
2012-10-13 15:39         ` Al Viro [this message]
2012-10-13 13:06       ` Thorsten Kranzkowski
2012-10-12 22:18   ` [PATCH 0/1] (Was: [regression] boot failure on alpha, bisected) Al Viro
2012-10-14 18:35     ` Oleg Nesterov
2012-10-14 18:42       ` Oleg Nesterov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121013153900.GR2616@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=dl8bcu@dl8bcu.de \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcree@orcon.net.nz \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.