On 18/03/2026 09:42, Michael Kelly wrote:
On 17/03/2026 08:42, Samuel Thibault wrote:
And the mypy testsuite.

Samuel

mypy package is certainly a good example. It crashed my VM yesterday running out of swap space although admittedly I have only 4GB of that available. I'm going to run this same build on a Debian/Linux similarly sized VM to see what memory resources are used on that OS for comparison.

The build on Linux uses huge amounts of swap too. There's a compilation early in the build whose process size grows to a virtual size of 6.5GB using over 4G of swap. This reveals nothing except it is indeed a resource hungry build so I'm ceasing this comparison.

I did succeed in getting the Hurd mypy build to lock up. This is perhaps what Samuel is experiencing on the buildd? In my case, several of the mach-defpager threads are stuck and the build stops. See kernel debugger output appended. I think that thread 4 is blocked because the page is 'busy' but why it's busy, given that it's a real (not fictitious) page, I don't know yet. Why is $map21 locked? I have this state preserved in a VM snapshot but I've run out of time today to look further.

Do the buildd machines run up or up-dbg gnumach?

Cheers,

Mike.


db> show task $task21
    TASK        THREADS
 21 (/hurd/mach-defpager(104)) (ffffffffdfc2b570): 6 threads:
              0 (ffffffffdf9c7030) .W.O.FP(mach_msg_continue) 0
              1 (ffffffffdf9f1d58) .W.O.F.(mach_msg_continue) 0
              2 default_pager (ffffffffdfc2d250) .W..NFP 0xffffffffdfc27a18
              3 default_pager (ffffffffdf9c78f0) .W..NFP 0xffffffffdfc27a18
              4 default_pager (ffffffffdf9c76c0) .W..NFP 0xffffffffe391f5d0
              5 default_pager (ffffffffdf9c7490) .W.O.FP(mach_msg_continue) 0
              
db> print $map21
ffffffffdfc27a18

db> show page 0xffffffffe391f5d0
       Page 0xffffffffe391f5d0: object 0xffffffffb0f43af8, offset       0x0 
wire_count 0, loose clean busy absent wanted,phys_addr = 0x1039ab000
, lock = 0x0, unlock_request = 0x0

db> show object 0xffffffffb0f43af8, 
       Object 0xffffffffb0f43af8: size=0x1000, 2 references
       1 resident pages, 1 absent pages, 1 paging ops
        memory object=0xffffffffb0bdf2f0 
(offset=0x0),control=0xffffffffb0bdfb60, name=0xffffffffb0bdf0b0
         ready created,temporary internal,copy_strategy=0
        shadow=0x0 (offset=0x0),copy=0x0
        wired: 0/1
         memory:=(off=0x0,page=0xffffffffe391f5d0)

db> x vm_page_laundry_count
                5

db> trace /tu $task21.2
switch_context(...)+0x101
thread_invoke(...)+0x107
thread_block(...)+0x5d
thread_sleep(...)+0x22
lock_write(...)+0x139
vm_map_lock(...)+0x11
vm_map_find_entry_anywhere(...)+0x268
vm_map_copyout(...)+0x71
ipc_kmsg_copyout_body(...)+0x70
ipc_kmsg_copyout(...)+0x51
mach_msg_continue(...)+0x9c
>>>>> user space <<<<<
0x0()

db> trace /tu $task21.3
switch_context(...)+0x101
thread_invoke(...)+0x107
thread_block(...)+0x5d
thread_sleep(...)+0x22
lock_write(...)+0xa2
vm_map_lock(...)+0x11
vm_map_find_entry_anywhere(...)+0x268
vm_map_copyout(...)+0x71
ipc_kmsg_copyout_body(...)+0x70
ipc_kmsg_copyout(...)+0x51
mach_msg_continue(...)+0x9c
>>>>> user space <<<<<
0x0()

db> trace /tu $task21.4
switch_context(...)+0x101
thread_invoke(...)+0x107
thread_block(...)+0x5d
vm_fault_page(...)+0x121b
vm_fault(...)+0x4e0
vm_fault_wire(...)+0x75
vm_map_pageable_scan(...)+0x154
vm_map_pageable(...)+0x141
vm_map_copyout(...)+0x457
ipc_kmsg_copyout_body(...)+0x70
ipc_kmsg_copyout(...)+0x51
mach_msg_continue(...)+0x9c
>>>>> user space <<<<<
0x0()

Reply via email to