From: Peter Zijlstra <peterz@infradead.org>
To: Jiri Kosina <jkosina@suse.cz>
Cc: Adam Osuchowski <adwol@zonk.pl>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
Nick Piggin <npiggin@suse.de>
Subject: Re: Is 386 processor still supported?
Date: Thu, 08 Jan 2009 15:13:45 +0100 [thread overview]
Message-ID: <1231424025.11687.447.camel@twins> (raw)
In-Reply-To: <alpine.LRH.1.10.0901081359520.24105@twin.jikos.cz>
On Thu, 2009-01-08 at 14:05 +0100, Jiri Kosina wrote:
> [ CCs added ]
>
> On Thu, 8 Jan 2009, Adam Osuchowski wrote:
>
> > Recently, I found such piece of code in kernel 2.6.28 compiled for 386
> > processor:
> >
> > # grep M386 .config
> > CONFIG_M386=y
> > # objdump -d vmlinux | grep -A11 '<_spin_lock>:'
> > c0321827 <_spin_lock>:
> > c0321827: 89 e2 mov %esp,%edx
> > c0321829: 81 e2 00 f0 ff ff and $0xfffff000,%edx
> > c032182f: ff 42 14 incl 0x14(%edx)
> > c0321832: ba 00 01 00 00 mov $0x100,%edx
> > c0321837: f0 66 0f c1 10 lock xadd %dx,(%eax)
> > c032183c: 38 f2 cmp %dh,%dl
> > c032183e: 74 06 je c0321846 <_spin_lock+0x1f>
> > c0321840: f3 90 pause
> > c0321842: 8a 10 mov (%eax),%dl
> > c0321844: eb f6 jmp c032183c <_spin_lock+0x15>
> > c0321846: c3 ret
> >
> > But there is no xadd instruction on 386 processors. It is available on
> > 486+ only. I have no chance to run this kernel on real 386 box, so I can't
> > check it in practice, but I think it will not run.
> >
> > It is not compiler problem because it is explicitly written in assembly
> > in __raw_spin_lock() function (include/asm-x86/spinlock.h) and there is
> > no alternative code depending on CONFIG_M386.
>
> Hmm, this really looks like a bug to me. How about something like this
> (untested).
>
>
> From: Jiri Kosina <jkosina@suse.cz>
> Subject: x86: make spinlocks available on machines without xadd insn
>
> Current kernel wouldn't compile on ancient x86 machines that don't support
> xadd instruction, as ticket spinlocks implementation unconditionally uses
> it.
>
> On machines without CONFIG_X86_XADD, use old-style byte spinlock
> implementation instead.
afaik we don't support i386-smp and up spinlocks are trivial
preempt_disable() calls.
next prev parent reply other threads:[~2009-01-08 14:14 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-08 12:03 Is 386 processor still supported? Adam Osuchowski
2009-01-08 13:05 ` Jiri Kosina
2009-01-08 13:24 ` Cyrill Gorcunov
2009-01-08 13:48 ` Jiri Kosina
2009-01-08 14:13 ` Peter Zijlstra [this message]
2009-01-08 14:21 ` Jiri Kosina
2009-01-08 14:27 ` Peter Zijlstra
2009-01-08 15:04 ` Alan Cox
2009-01-08 15:10 ` Ingo Molnar
2009-01-13 1:06 ` Maciej W. Rozycki
2009-01-15 12:36 ` Jan-Benedict Glaw
2009-01-15 13:22 ` Maciej W. Rozycki
2009-01-15 13:32 ` Alan Cox
2009-01-15 14:15 ` Maciej W. Rozycki
2009-01-15 14:17 ` Ingo Molnar
2009-01-16 9:00 ` Pavel Machek
2009-01-16 10:13 ` Jan-Benedict Glaw
2009-01-16 11:18 ` Andrey Panin
2009-01-16 13:46 ` Ingo Molnar
2009-01-16 18:17 ` H. Peter Anvin
2009-01-15 14:20 ` Jan-Benedict Glaw
2009-01-15 14:37 ` Bastien ROUCARIES
2009-01-15 14:25 ` Alan Cox
2009-01-15 14:44 ` Maciej W. Rozycki
2009-01-15 20:11 ` H. Peter Anvin
2009-01-15 14:46 ` Jan-Benedict Glaw
2009-01-08 16:45 ` Sam Ravnborg
2009-01-08 16:27 ` 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=1231424025.11687.447.camel@twins \
--to=peterz@infradead.org \
--cc=adwol@zonk.pl \
--cc=jkosina@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
/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