[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