#15585: IO stall for a long time during creation or deletion of many small files
-----------------------------+----------------------------
Reporter: X512 | Owner: nobody
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: System/Kernel | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
-----------------------------+----------------------------
Comment (by X512):
In most cases I get following stack trace:
{{{
KERN: USER: FileTest: timeout, thread: 1337
KERN: Welcome to Kernel Debugging Land...
KERN: Thread 1340 "watchdog" running on CPU 0
KERN: kdebug> bt 1337stack trace for thread 1337 "FileTestWatchdog"
KERN: kernel stack: 0xffffffff82055000 to 0xffffffff8205a000
KERN: user stack: 0x00007fb94f885000 to 0x00007fb950885000
KERN: frame caller <image>:function +
offset
KERN: 0 ffffffff82059630 (+ 112) ffffffff80098102 <kernel_x86_64>
reschedule(int) + 0x4f2
KERN: 1 ffffffff820596a0 (+ 64) ffffffff80088086 <kernel_x86_64>
thread_block + 0xf6
KERN: 2 ffffffff820596e0 (+ 80) ffffffff80054e15 <kernel_x86_64>
ConditionVariableEntry::Wait(unsigned int, long) + 0xf5
KERN: 3 ffffffff82059730 (+ 128) ffffffff800da595 <kernel_x86_64>
IORequest::Wait(unsigned int, long) + 0x95
KERN: 4 ffffffff820597b0 (+ 368) ffffffff824ca9cc <scsi_disk>
das_write(void*, long, void const*, unsigned long*) + 0x9c
KERN: 5 ffffffff82059920 (+ 112) ffffffff800f19e8 <kernel_x86_64>
_kern_writev + 0x118
KERN: 6 ffffffff82059990 (+ 32) ffffffff8016b573 <kernel_x86_64>
writev_pos + 0x13
KERN: 7 ffffffff820599b0 (+ 384) ffffffff82141e04 <bfs>
_ZN7Journal22_WriteTransactionToLogEv.localalias.9 + 0x8f4
KERN: 8 ffffffff82059b30 (+ 48) ffffffff82141fc5 <bfs>
Journal::Unlock(Transaction*, bool) + 0x35
KERN: 9 ffffffff82059b60 (+ 144) ffffffff821469e6 <bfs>
bfs_create(fs_volume*, fs_vnode*, char const*, int, int, void**, long*) +
0x216
KERN: 10 ffffffff82059bf0 (+ 400) ffffffff801030e0 <kernel_x86_64>
create_vnode(vnode*, char const*, int, int, bool) + 0xa0
KERN: 11 ffffffff82059d80 (+ 320) ffffffff80104b04 <kernel_x86_64>
file_create(int, char*, int, int, bool) + 0x54
KERN: 12 ffffffff82059ec0 (+ 96) ffffffff8010ce14 <kernel_x86_64>
_user_open + 0xd4
KERN: 13 ffffffff82059f20 (+ 16) ffffffff8014fd34 <kernel_x86_64>
x86_64_syscall_entry + 0xfe
KERN: user iframe at 0xffffffff82059f30 (end = 0xffffffff82059ff8)
KERN: rax 0x6b rbx 0x1aabea5cd10 rcx
0x14b12395a64
KERN: rdx 0x601 rsi 0x7fb950884550 rdi 0xffffffff
KERN: rbp 0x7fb950822a40 r8 0x3a38e7b588 r9 0x1
KERN: r10 0x1a4 r11 0x3202 r12 0x4
KERN: r13 0x3a38e7b584 r14 0x1 r15
0x7fb9508849e0
KERN: rip 0x14b12395a64 rsp 0x7fb9508229d8 rflags 0x3202
KERN: vector: 0x63, error code: 0x0
KERN: 14 ffffffff82059f30 (+140436009945872) 0000014b12395a64
<libroot.so> _kern_open + 0x0c
KERN: 15 00007fb950822a40 (+ 48) 0000014b123c7730 <libroot.so>
_IO_new_file_fopen + 0xa0
KERN: 16 00007fb950822a70 (+ 48) 0000014b123ca205 <libroot.so>
__fopen_internal + 0x75
KERN: 17 00007fb950822aa0 (+400384) 0000003a38e7b38a <FileTestWatchdog>
TestApplication::ArgvReceived(int, char**) + 0xca
KERN: 18 00007fb9508846a0 (+ 96) 00000211af0fe05c <libbe.so>
BApplication::_ArgvReceived(BMessage*) + 0x18c
KERN: 19 00007fb950884700 (+ 592) 00000211af100585 <libbe.so>
BApplication::DispatchMessage(BMessage*, BHandler*) + 0x1c5
KERN: 20 00007fb950884950 (+ 80) 00000211af10780c <libbe.so>
BLooper::task_looper() + 0x26c
KERN: 21 00007fb9508849a0 (+ 32) 00000211af0fd761 <libbe.so>
BApplication::Run() + 0x21
KERN: 22 00007fb9508849c0 (+ 432) 0000003a38e7ad6c <FileTestWatchdog>
main + 0x37
KERN: 23 00007fb950884b70 (+ 48) 0000003a38e7ad2e <FileTestWatchdog>
_start + 0x3e
KERN: 24 00007fb950884ba0 (+ 48) 0000022787d9e485
</boot/system/runtime_loader@0x0000022787d8a000> <unknown> + 0x14485
KERN: 25 00007fb950884bd0 (+ 0) 00007ffedc5a5260 <commpage>
commpage_thread_exit + 0x00
KERN: kdebug> es
}}}
Sometimes watchdog triggers in `Journal::TransactionDone`.
--
Ticket URL: <https://dev.haiku-os.org/ticket/15585#comment:32>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.