[haiku-bugs] Re: [Haiku] #15585: IO stall for a long time during creation or deletion of many small files

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Sun, 29 Mar 2020 06:03:56 -0000

#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.

Other related posts: