[haiku-bugs] Re: [Haiku] #11470: [Boot Loader] goes into Death Land with 4 CPUs in VMware

  • From: "bonefish" <trac@xxxxxxxxxxxx>
  • Date: Sat, 15 Nov 2014 13:22:34 -0000

#11470: [Boot Loader] goes into Death Land with 4 CPUs in VMware
----------------------------------+----------------------------
   Reporter:  diver               |      Owner:  bonefish
       Type:  bug                 |     Status:  new
   Priority:  normal              |  Milestone:  R1
  Component:  System/Boot Loader  |    Version:  R1/Development
 Resolution:                      |   Keywords:
 Blocked By:                      |   Blocking:
Has a Patch:  0                   |   Platform:  All
----------------------------------+----------------------------
Changes (by bonefish):

 * cc: anevilyak, jackburton, korli (added)


Comment:

 Stack trace is:
 {{{
 acpi_validate_rsdt(acpi_descriptor_header *)
 acpi_check_rsdt(acpi_rsdp_extended *)
 acpi_init()
 _start()
 multiboot_start()
 }}}
 Disassembly with crashing instruction:
 {{{
 00013f50 <acpi_validate_rsdt(acpi_descriptor_header *)>:
    13f50:       55                      push   %ebp
    13f51:       89 e5                   mov    %esp,%ebp
    13f53:       53                      push   %ebx
    13f54:       8b 55 08                mov    0x8(%ebp),%edx
    13f57:       89 d3                   mov    %edx,%ebx
    13f59:       b1 00                   mov    $0x0,%cl
    13f5b:       31 c0                   xor    %eax,%eax
    13f5d:       3b 42 04                cmp    0x4(%edx),%eax
    13f60:       73 0e                   jae    13f70
 <acpi_validate_rsdt(acpi_descriptor_header *)+0x20>
    13f62:       8b 52 04                mov    0x4(%edx),%edx
    13f65:       8d 76 00                lea    0x0(%esi),%esi
 >> 13f68:       02 0c 18                add    (%eax,%ebx,1),%cl
    13f6b:       40                      inc    %eax
    13f6c:       39 d0                   cmp    %edx,%eax
    13f6e:       72 f8                   jb     13f68
 <acpi_validate_rsdt(acpi_descriptor_header *)+0x18>
    13f70:       31 c0                   xor    %eax,%eax
    13f72:       84 c9                   test   %cl,%cl
    13f74:       74 05                   je     13f7b
 <acpi_validate_rsdt(acpi_descriptor_header *)+0x2b>
    13f76:       b8 10 00 00 80          mov    $0x80000010,%eax
    13f7b:       5b                      pop    %ebx
    13f7c:       89 ec                   mov    %ebp,%esp
    13f7e:       5d                      pop    %ebp
    13f7f:       c3                      ret
 }}}
 The crashing instruction corresponds to the source line `checksum +=
 data[i];` (cf. [http://cgit.haiku-
 
os.org/haiku/tree/src/system/boot/platform/bios_ia32/acpi.cpp?id=f9ac1e93fb1ba12163bff4128efb54d8e548e4a8#n77
 src/system/boot/platform/bios_ia32/acpi.cpp]). `i` is 0x51 (eax) which
 moves the read access to the next page (0x81106000), which is apparently
 not mapped. CC'ing to the people who touched the code in the past.

--
Ticket URL: <https://dev.haiku-os.org/ticket/11470#comment:5>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: