Re: Will there ever be EMC6w201 support?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 10, 2011 at 10:05:29AM -0500, Jeff Rickman wrote:
> On 5/10/2011 9:24 AM, Jean Delvare wrote:
> >Hi Jeff,
> >
> >On Tue, 10 May 2011 08:54:21 -0500, Jeff Rickman wrote:
> >>I checked for any packages that could manipulate the CPU frequency. I
> >>only found "cpuspeed". I removed the "cpuspeed" package and rebooted to
> >>ensure a known state. Attempting to install the "stock i8k" module
> >>causes a crash. Reboot to return to known state.
> >>
> >>I changed the "maxcpus=4" in "grub.conf" to "maxcpus=1". Reboot.
> >>
> >>Attempt to load "stock i8k" module. Crash. "/proc/cpuinfo" shows 1 CPU.
> >
> >Care to try again with maxcpus=0? I seem to recall that this disables
> >even more of SMP than maxcpus=1 does.
> >
> >>Return system to previous configuration with "cpuspeed" and reboot.
> >>
> >>My only other choice would be to physically pull CPU2, leaving CPU1 in
> >>the system, but we know that config should work based on Harry's testing.
> >
> >We don't, actually. You have different software environments and maybe
> >different BIOS options. And not exactly the same hardware either...
> >
> >But I totally understand that you don't want to physically remove the
> >second CPU. I'm not even sure if that would help.
> >
> >OTOH, if you see an option in the BIOS to disable HT, that would be
> >worth trying.
> >
> 
> Slightly different crash with "maxcpus=0". See attached.

>From the log:

> [   74.591343] invalid opcode: 0000 [#1] SMP
[...]
> [   74.592309] Code: 52 8b 58 04 8b 48 08 8b 50 0c 8b 70 10 8b 78 14 58 e6 b2 e6 84 48 87 04 24 89 58 04 89 48 08 89 50 0c 89 70 10 89 78 14 5a 89 10 <9f> c1 e8 08 83 e0 01 85 c0 ba ea ff ff ff 75 0f 41 8b 08 66 83
> May 10 09:54:59 XX kernel: [   74.592309] RIP  [<ffffffffa0362041>] i8k_smm+0x41/0x65 [i8k]

   0:   52                      push   %rdx
   1:   8b 58 04                mov    0x4(%rax),%ebx
   4:   8b 48 08                mov    0x8(%rax),%ecx
   7:   8b 50 0c                mov    0xc(%rax),%edx
   a:   8b 70 10                mov    0x10(%rax),%esi
   d:   8b 78 14                mov    0x14(%rax),%edi
  10:   58                      pop    %rax
  11:   e6 b2                   out    %al,$0xb2
  13:   e6 84                   out    %al,$0x84
  15:   48 87 04 24             xchg   %rax,(%rsp)
  19:   89 58 04                mov    %ebx,0x4(%rax)
  1c:   89 48 08                mov    %ecx,0x8(%rax)
  1f:   89 50 0c                mov    %edx,0xc(%rax)
  22:   89 70 10                mov    %esi,0x10(%rax)
  25:   89 78 14                mov    %edi,0x14(%rax)
  28:   5a                      pop    %rdx
  29:   89 10                   mov    %edx,(%rax)
  2b:*  9f                      lahf        <-- trapping instruction
  2c:   c1 e8 08                shr    $0x8,%eax
  2f:   83 e0 01                and    $0x1,%eax
  32:   85 c0                   test   %eax,%eax
  34:   ba ea ff ff ff          mov    $0xffffffea,%edx
  39:   75 0f                   jne    0x4a
  3b:   41 8b 08                mov    (%r8),%ecx

lahf is present in the assembly block inside the driver in i8k_smm; lahf
moves the lowest byte of eflags into ah.
Wikipedia[1] tells me that:

  Early AMD64 and Intel 64 CPUs lacked LAHF and SAHF instructions. AMD
  introduced the instructions with their Athlon 64, Opteron and Turion 64
  revision D processors in March 2005 while Intel introduced
  the instructions with the Pentium 4 G1 stepping in December 2005.

Jeff's CPU does indeed lack lahf (see cpuinfo), so the driver should not
unconditionally use the intruction.
The driver should check X86_FEATURE_LAHF_LM or use use a different
method to read EFLAFS (pushf?).

drivers/char/toshiba.c (tosh_smm) also suffers from the same issue.

Luca
[1] http://en.wikipedia.org/wiki/X86-64

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux