[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haiku-bugs
Subject:    [haiku-bugs] Re: [Haiku] #18430: [kernel] System hangs or KDLs disabling CPUs
From:       "Haiku" <trac () haiku-os ! org>
Date:       2023-05-30 21:50:21
Message-ID: 063.2d87fc0601e9968fc956eb9442bff22f () haiku-os ! org
[Download RAW message or body]

--==============515803875150159773=MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

#18430: [kernel] System hangs or KDLs disabling CPUs
----------------------------+-------------------------
  Reporter:  waddlesplash   |      Owner:  nobody
      Type:  bug            |     Status:  new
  Priority:  normal         |  Milestone:  Unscheduled
 Component:  System/Kernel  |    Version:  R1/beta4
Resolution:                 |   Keywords:
Blocked By:                 |   Blocking:
  Platform:  All            |
----------------------------+-------------------------
Comment (by waddlesplash):

 Here's a test program I made:
 {{{
 #include <OS.h>

 extern status_t         _kern_set_cpu_enabled(int32 cpu, bool enabled);

 int main()
 {
         for (int32 i = 0; i < (INT32_MAX-1); i++) {
                 _kern_set_cpu_enabled(1, i%2);
         }
 }
 }}}
 Running this with the system under load produces KDLs. Example:

 {{{
 PANIC: ASSERT FAILED (../haiku-
 git/src/system/kernel/scheduler/scheduler.cpp:425): nextThreadData->Core()
 == core
 Welcome to Kernel Debugging Land...
 Thread 1726 "daemon" running on CPU 1
 stack trace for thread 1726 "daemon"
     kernel stack: 0xffffffff82087000 to 0xffffffff8208c000
       user stack: 0x00007f9764bca000 to 0x00007f9764c0a000
 frame                       caller             <image>:function + offset
  0 ffffffff8208bb08 (+  24) ffffffff80146eac   <kernel_x86_64>
 arch_debug_call_with_fault_handler + 0x16
  1 ffffffff8208bb20 (+  80) ffffffff800b0518   <kernel_x86_64>
 debug_call_with_fault_handler + 0x78
  2 ffffffff8208bb70 (+  96) ffffffff800b1b83   <kernel_x86_64>
 kernel_debugger_loop(char const*, char const*, __va_list_tag*, int) + 0xf3
  3 ffffffff8208bbd0 (+  80) ffffffff800b1f1e   <kernel_x86_64>
 kernel_debugger_internal(char const*, char const*, __va_list_tag*, int) +
 0x6e
  4 ffffffff8208bc20 (+ 240) ffffffff800b2277   <kernel_x86_64> panic +
 0xb7
  5 ffffffff8208bd10 (+ 112) ffffffff8009baa6   <kernel_x86_64>
 reschedule(int) + 0x296
  6 ffffffff8208bd80 (+  48) ffffffff8008b566   <kernel_x86_64>
 thread_block + 0xc6
  7 ffffffff8208bdb0 (+ 112) ffffffff80057be5   <kernel_x86_64>
 ConditionVariableEntry::Wait(unsigned int, long) + 0x155
  8 ffffffff8208be20 (+ 160) ffffffff8006f4b1   <kernel_x86_64>
 read_port_etc + 0x111
  9 ffffffff8208bec0 (+  96) ffffffff80070401   <kernel_x86_64>
 _user_read_port_etc + 0x91
 10 ffffffff8208bf20 (+  16) ffffffff8014899f   <kernel_x86_64>
 x86_64_syscall_entry + 0xfb
 user iframe at 0xffffffff8208bf30 (end = 0xffffffff8208bff8)
  rax 0xde                  rbx 0x7f9764c07c50        rcx 0x15748583d6c
  rdx 0x7f9764c07c50        rsi 0x7f9764c07c4c        rdi 0x17
  rbp 0x7f9764c09c90         r8 0x0                    r9 0x0
  r10 0x2001                r11 0x246                 r12 0x7f15f5b7e290
  r13 0x7f9764c07c4c        r14 0xffffffff            r15 0x7f15f5b7e430
  rip 0x15748583d6c         rsp 0x7f9764c07c28     rflags 0x246
  vector: 0x63, error code: 0x0
 11 ffffffff8208bf30 (+140290320489824) 0000015748583d6c   <libroot.so>
 _kern_read_port_etc + 0x0c
 12 00007f9764c09c90 (+  16) 000001d3cbb59b29   <_APP_>
 SyslogDaemon::_DaemonThread(void*) + 0x09
 13 00007f9764c09ca0 (+  32) 0000015748582b49   <libroot.so>
 _thread_do_exit_work (nearest) + 0x89
 14 00007f9764c09cc0 (+   0) 00007fab621e1258   <commpage>
 commpage_thread_exit + 0x00
 }}}
 continuing from this just ends in a NULL dereference.
-- 
Ticket URL: <https://dev.haiku-os.org/ticket/18430#comment:4>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.
--==============515803875150159773==--

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic