[lkml]   [2009]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectIs 386 processor still supported?
Recently, I found such piece of code in kernel 2.6.28 compiled for 386

# grep M386 .config
# 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.


 \ /
  Last update: 2009-01-08 13:11    [W:0.064 / U:8.348 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site