On 2018/09/14 10:05, Mike Larkin wrote:
> On Thu, Sep 13, 2018 at 11:17:15AM +0200, Hrvoje Popovski wrote:
> > Hi all,
> > 
> > i'm having Fujitsu PRIMERGY RX2530 M4 server with Intel Gold 6134 cpu
> > with 8/16 cores.
> > When booting box up to 14 cores everything seems fine, but with 16 cores
> > i'm getting panic. In attachment you can find sendbug. Dmesg in sendbug
> > is with 14 cores.
> > 
> > 8 cores (HT disabled) are more than enough for me but maybe this panic
> > is interesting to developers so i report it ...
> > 
> > 
> > root on sd0a (fa90dc9ea66a7e54.a) swap on sd0b dump on sd0b
> > panipanic: l anel pu
> >                     gnStopped at      db_enter+0x12:  popq    %r11
> >     TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
> >  380736  12442      0     0x14000      0x200    5  zerothread
> >  196414  98064      0     0x14000      0x200    7  aiodoned
> > db_enter() at db_enter+0x12
> > panic() at panic+0x120
> > acpicpu_idle() at acpicpu_idle+0x2e8
> > sched_idle(0) at sched_idle+0x245
> > end trace frame: 0x0, count: 11
> > https://www.openbsd.org/ddb.html describes the minimum info required in
> > bug reports.  Insufficient info makes it difficult to find and fix bugs.
> > 
> > 
> > ddb{3}> trace
> > db_enter() at db_enter+0x12
> > panic() at panic+0x120
> > acpicpu_idle() at acpicpu_idle+0x2e8
> 
> There are only 3 panics in acpicpu_idle. One at the very top:
>       panic ("null acpicpu");
> 
> and two much further down:
>       panic ("idle with interrupts blocked");
> 
> Based on the fact that it's called at acpicpu_idle+0x2e8, I'm
> inclined to believe it to be the lattter, but the garbled
> panic string seems to more closely match the former.

Looking at objdump --line --disassemble --reloc acpicpu.o, it does indeed seem
to be null acpicpu.

...
0000000000001260 <acpicpu_idle>:
acpicpu_idle():
/src/cvs-openbsd/sys/dev/acpi/acpicpu.c:1138
...

$ moo 0x1260+0x2e8
0x1548

...
/src/cvs-openbsd/sys/dev/acpi/acpicpu.c:1146
    153a:       48 c7 c7 00 00 00 00    mov    $0x0,%rdi
                        153d: R_X86_64_32S      .rodata.str1.1+0x299
    1541:       31 c0                   xor    %eax,%eax
    1543:       e8 00 00 00 00          callq  1548 <acpicpu_idle+0x2e8>
                        1544: R_X86_64_PC32     panic+0xfffffffffffffffc
    1548:       48 c7 c7 00 00 00 00    mov    $0x0,%rdi
                        154b: R_X86_64_32S      .rodata.str1.1+0x318
    154f:       e8 00 00 00 00          callq  1554 <acpicpu_idle+0x2f4>
                        1550: R_X86_64_PC32     
__stack_smash_handler+0xfffffffffffffffc
...

$ cat -n /src/cvs-openbsd/sys/dev/acpi/acpicpu.c | grep -5 1146
  1141          struct acpi_cstate *best, *cx;
  1142          unsigned long itime;
  1143
  1144          if (sc == NULL) {
  1145                  __asm volatile("sti");
  1146                  panic("null acpicpu");
  1147          }
  1148
  1149          /* possibly update the MWAIT_ONLY flag in cpu_info */
  1150          if (sc->sc_flags & FLAGS_MWAIT_ONLY) {
  1151                  if ((ci->ci_mwait & MWAIT_ONLY) == 0)

Reply via email to