mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christophe Saout <christophe@saout.de>
To: Andi Kleen <ak@muc.de>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: x86-64 preemption fix from IRQ and BKL in 2.6.12-rc1-mm2
Date: Sun, 27 Mar 2005 20:05:13 +0200	[thread overview]
Message-ID: <1111946713.20987.16.camel@leto.cs.pocnet.net> (raw)
In-Reply-To: <20050327172625.GC18506@muc.de>

[-- Attachment #1: Type: text/plain, Size: 2268 bytes --]

Am Sonntag, den 27.03.2005, 19:26 +0200 schrieb Andi Kleen:

> > preempt_schedule_irq is not an i386 specific function and seems to take
> > special care of BKL preemption and since reiserfs does use the BKL to do
> > certain things I think this actually might be the problem...?
> 
> Hmm, preempt_schedule_irq is not in mainline as far as I can see.
> My patches are always for mainline; i dont do a special
> patch kit for -mm*

PREEMPT_BKL has been in mainline since 2.6.11-rc1,  preempt_schedule_irq
made it in 2.6.11-rc3. Please look here:
http://linux.bkbits.net:8080/linux-2.6/search/?expr=preempt_schedule_irq&search=ChangeSet+comments

For i386 the first change was to switch to preempt_schedule in this code
path: http://linux.bkbits.net:8080/linux-2.6/patch@1.1966.39.63

preempt_schedule takes care of setting PREEMPT_ACTIVE and resetting it
afterwards, so I removed that from the assembler code.

Then preempt_schedule_irq has been introduced to move the sti/cli back
around the call to schedule:
http://linux.bkbits.net:8080/linux-2.6/patch@1.1982.28.91

So in the end the only thing that the patch I proposed was doing is to
*additionally* handle the PREEMPT_BKL case so that schedule doesn't
accidentally release the BKL semaphore when it shouldn't because we are
preempting and nobody explicitly called schedule.

Several other archs have done the same. No bug has shown up until the
recent -mm kernel where the execution of this code path actually became
possible (the "jc -> jnc" fix some lines above).

> It looks like a unfortunate interaction with some other patches
> in mm. Andrew, can you disable CONFIG_PREEMPT on x86-64 in
> mm for now?

These things are in 2.6.11 (except that they never got called because of
the wrong interrupt flag check in the IRQ handler).

> > Unfortunately I don't have a amd64 machine to play with, so can somebody
> > please check this?
> 
> How did you generate the crash dumps above then?

Well, nobody minds if I play with a webserver in the middle of the
night, as long as it works during the day. Shoot me. :)

Both servers are running fine since I applied my patch last night.

Now that I looked into it I think that it's obviously the correct
solution.


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2005-03-27 18:06 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-24 12:41 2.6.12-rc1-mm2 Andrew Morton
2005-03-24 14:40 ` 2.6.12-rc1-mm2 Stefano Rivoir
2005-03-24 15:13   ` 2.6.12-rc1-mm2 Manuel Lauss
2005-03-24 15:18   ` 2.6.12-rc1-mm2 Brice Goglin
2005-03-24 15:31     ` 2.6.12-rc1-mm2 Stefano Rivoir
2005-03-24 20:05       ` 2.6.12-rc1-mm2 Andrew Morton
2005-03-24 20:21         ` 2.6.12-rc1-mm2 Brice Goglin
2005-03-25  1:19           ` 2.6.12-rc1-mm2 Alexey Dobriyan
2005-03-24 15:09 ` 2.6.12-rc1-mm2 (build error In function `zft_init') Steven Cole
2005-03-24 15:55   ` 2.6.12-rc1-mm2 (patch to fix build " Steven Cole
2005-03-24 21:49     ` Greg KH
2005-03-24 21:53       ` Andrew Morton
2005-03-24 16:46 ` 2.6.12-rc1-mm2 Lee Revell
2005-03-24 20:17   ` 2.6.12-rc1-mm2 Andrew Morton
2005-03-24 22:31     ` 2.6.12-rc1-mm2 Rafael J. Wysocki
2005-03-24 22:37       ` 2.6.12-rc1-mm2 Rafael J. Wysocki
2005-03-24 23:33       ` 2.6.12-rc1-mm2 Laurent Riffard
2005-03-24 23:49         ` 2.6.12-rc1-mm2 Andrew Morton
2005-03-25  1:00           ` 2.6.12-rc1-mm2 Patrick Mochel
2005-03-25  6:05             ` 2.6.12-rc1-mm2 Greg KH
2005-03-25 18:01             ` 2.6.12-rc1-mm2 Laurent Riffard
2005-05-26  0:29       ` 2.6.12-rc1-mm2 Andrew Morton
2005-05-26 13:58         ` 2.6.12-rc1-mm2 Rafael J. Wysocki
2005-03-25  0:38 ` [2.6 patch] remove exports for oem modules Adrian Bunk
2005-03-25  4:12 ` OOPS running "ls -l /sys/class/i2c-adapter/*"-- 2.6.12-rc1-mm2 Miles Lane
2005-03-25  4:22   ` Andrew Morton
2005-03-25  7:38     ` Russell King
2005-03-25  7:45       ` Andrew Morton
2005-03-25  7:50         ` Russell King
2005-03-25  8:13           ` Russell King
2005-03-25 12:52             ` Miles Lane
2005-03-25 18:40               ` Andrew Morton
2005-03-25 19:50                 ` Jean Delvare
2005-03-26  4:44                   ` Miles Lane
2005-03-25 20:53       ` Lee Revell
2005-03-25 21:07         ` Russell King
2005-03-25 21:45           ` [PATCH] make Documentation/oops-tracing.txt relevant to 2.6 [was Re: OOPS running "ls -l /sys/class/i2c-adapter/*"-- 2.6.12-rc1-mm2] Lee Revell
2005-03-25 21:52             ` Russell King
2005-03-25 21:54               ` Lee Revell
2005-03-25 19:26 ` x86-64 preemption fix from IRQ and BKL in 2.6.12-rc1-mm2 Christophe Saout
2005-03-27  0:19   ` [PATCH] Fix preemption off of irq context on x86-64 with PREEMPT_BKL Christophe Saout
2005-03-27 17:28     ` Andi Kleen
2005-03-27 17:26   ` x86-64 preemption fix from IRQ and BKL in 2.6.12-rc1-mm2 Andi Kleen
2005-03-27 18:05     ` Christophe Saout [this message]
2005-03-28 15:26       ` Andi Kleen

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=1111946713.20987.16.camel@leto.cs.pocnet.net \
    --to=christophe@saout.de \
    --cc=ak@muc.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®