Syzkaller hit 'panic: Assertion sb->sb_hiwat >= sb->sb_ccc + sb->sb_ctl failed at /home/markj/sb/main/src/sys/kern/uipc_usrreq.c:LINE' bug.

login: panic: Assertion sb->sb_hiwat >= sb->sb_ccc + sb->sb_ctl failed at /home/markj/sb/main/src/sys/kern/uipc_usrreq.c:1055
cpuid = 1
time = 1742991771
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0xc6/frame 0xfffffe0057543330
kdb_backtrace() at kdb_backtrace+0xd0/frame 0xfffffe0057543490
vpanic() at vpanic+0x257/frame 0xfffffe0057543650
panic() at panic+0xb5/frame 0xfffffe0057543710
uipc_sosend_stream_or_seqpacket() at uipc_sosend_stream_or_seqpacket+0x1120/frame 0xfffffe00575439a0
sousrsend() at sousrsend+0x112/frame 0xfffffe0057543a30
kern_sendit() at kern_sendit+0x4fe/frame 0xfffffe0057543b90
sendit() at sendit+0x15f/frame 0xfffffe0057543bf0
sys_sendto() at sys_sendto+0x181/frame 0xfffffe0057543d10
amd64_syscall() at amd64_syscall+0x4af/frame 0xfffffe0057543f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe0057543f30
--- syscall (0, FreeBSD ELF64, syscall), rip = 0x2496da, rsp = 0x8243acf58, rbp = 0x8243acf80 ---
KDB: enter: panic
[ thread pid 1260 tid 100716 ]
Stopped at      kdb_enter+0x6e: movq    $0,0x23dc7d7(%rip)
db> 
db> set $lines = 0
db> set $maxwidth = 0
db> x/s version
version:        FreeBSD 15.0-CURRENT #32 glebius-unix-stream-n275986-2f157fe85977: Sat Mar 22 23:59:54 UTC 2025\012    markj@xinde:/home/markj/sb/main/bricoler/freebsd-src-build/obj.amd64.amd64/home/markj/sb/main/src/amd64.amd64/sys/SYZKALLER\012
db> show registers
cs                        0x20
ds                        0x3b
es                        0x3b
fs                        0x13
gs                        0x1b
ss                        0x28
rax                       0x12
rcx         0xfffffe00033ef038
rdx         0xdffff7c000000000
rbx         0xffffffff82728180  .str.27
rsp         0xfffffe0057543470
rbp         0xfffffe0057543490
rsi                          0
rdi         0xffffffff82e004c0  panicstr
r8                           0
r9                  0xffffffff
r10            0x100000000018e
r11         0xfffffe005491a520
r12         0xfffffe005491a000
r13         0xfffffffffffffffd
r14         0xffffffff82728180  .str.27
r15                          0
rip         0xffffffff815bd83e  kdb_enter+0x6e
rflags                    0x46
kdb_enter+0x6e: movq    $0,0x23dc7d7(%rip)
db> show proc
Process 1260 (syz-executor1361750) at 0xfffffe0054905ac0:
 state: NORMAL
 uid: 0  gids: 0, 0, 5
 parent: pid 962 at 0xfffffe0054906020
 ABI: FreeBSD ELF64
 flag: 0x10000080  flag2: 0
 arguments: /root/syz-executor1361750249
 reaper: 0xfffffe0008007040 reapsubtree: 1
 sigparent: 20
 vmspace: 0xfffffe00548bc920
   (map 0xfffffe00548bc920)
   (map.pmap 0xfffffe00548bc9c0)
   (pmap 0xfffffe00548bca30)
 threads: 3
100126                   Run     CPU 0                       syz-executor1361750
100715                   S       uwait   0xfffffe006dbff600  syz-executor1361750
100716                   Run     CPU 1                       syz-executor1361750
db> ps
  pid  ppid  pgrp   uid  state   wmesg   wchan               cmd
 1260   962   962     0  R       (threaded)                  syz-executor1361750
100126                   Run     CPU 0                       syz-executor1361750
100715                   S       uwait   0xfffffe006dbff600  syz-executor1361750
100716                   Run     CPU 1                       syz-executor1361750
  962   959   962     0  Ss      nanslp  0xffffffff8397b3c0  syz-executor1361750
  959   957   957     0  S       select  0xfffffe0007fcf6c0  sshd-session
  957   921   957     0  Ss      select  0xfffffe0007fcf840  sshd-session
  940     1   940     0  Ss+     ttyin   0xfffffe0058364cb0  getty
  925     1   925     0  Ss      nanslp  0xffffffff8397b3c0  cron
  921     1   921     0  Ss      select  0xfffffe005814c1c0  sshd
  803     1   803     0  Ss      select  0xfffffe0007fcfbc0  syslogd
  802     1   799     0  S       select  0xfffffe0007fcfa40  syslogd
  799     1   799     0  Ss      select  0xfffffe0007fcf9c0  syslogd
  590     1   590     0  Ss      select  0xfffffe0007fcfac0  devd
  376     1   376    65  Ss      select  0xfffffe005814c240  dhclient
  352     1   352     0  Ss      select  0xfffffe0007fcfb40  dhclient
  349     1   349     0  Ss      select  0xfffffe005814c340  dhclient
  156     0     0     0  DL      pftm    0xffffffff848dc3e0  [pf purge]
  146     0     0     0  DL      (threaded)                  [ng_queue]
100089                   D       sleep   0xffffffff8489ff00  [ng_queue0]
100093                   D       sleep   0xffffffff8489ff00  [ng_queue1]
   15     0     0     0  DL      syncer  0xffffffff83a98be0  [syncer]
    9     0     0     0  DL      vlruwt  0xfffffe0008026b00  [vnlru]
    8     0     0     0  DL      (threaded)                  [bufdaemon]
100065                   D       psleep  0xffffffff83a971c0  [bufdaemon]
100068                   D       -       0xffffffff82e02140  [bufspacedaemon-0]
100085                   D       sdflush 0xfffffe006c025ce8  [/ worker]
    7     0     0     0  DL      psleep  0xffffffff83ad7c20  [vmdaemon]
    6     0     0     0  DL      (threaded)                  [pagedaemon]
100063                   D       psleep  0xffffffff83abdbb8  [dom0]
100069                   D       launds  0xffffffff83abdbc4  [laundry: dom0]
100070                   D       umarcl  0xffffffff81d65c30  [uma]
    5     0     0     0  DL      -       0xffffffff836f8bd0  [rand_harvestq]
    4     0     0     0  DL      (threaded)                  [cam]
100044                   D       -       0xffffffff836c3340  [doneq0]
100045                   D       -       0xffffffff836c32c0  [async]
100062                   D       -       0xffffffff836c3140  [scanner]
    3     0     0     0  DL      (threaded)                  [crypto]
100041                   D       crypto_ 0xffffffff83ab9420  [crypto]
100042                   D       crypto_ 0xfffffe0054766e30  [crypto returns 0]
100043                   D       crypto_ 0xfffffe0054766e80  [crypto returns 1]
   14     0     0     0  DL      seqstat 0xfffffe0007f59c88  [sequencer 00]
   13     0     0     0  DL      (threaded)                  [geom]
100035                   D       -       0xffffffff83923da0  [g_event]
100036                   D       -       0xffffffff83923dc0  [g_up]
100037                   D       -       0xffffffff83923de0  [g_down]
    2     0     0     0  WL      (threaded)                  [clock]
100031                   I                                   [clock (0)]
100032                   I                                   [clock (1)]
   12     0     0     0  WL      (threaded)                  [intr]
100013                   I                                   [swi6: task queue]
100014                   I                                   [swi6: Giant taskq]
100016                   I                                   [swi5: fast taskq]
100033                   I                                   [swi1: netisr 0]
100046                   I                                   [irq40: virtio_pci0]
100047                   I                                   [irq41: virtio_pci0]
100048                   I                                   [irq42: virtio_pci0]
100051                   I                                   [irq43: virtio_pci1]
100052                   I                                   [irq44: virtio_pci1]
100053                   I                                   [irq1: atkbd0]
100054                   I                                   [irq12: psm0]
100055                   I                                   [swi0: uart uart++]
100094                   I                                   [swi1: pf send]
   11     0     0     0  RL      (threaded)                  [idle]
100003                   CanRun                              [idle: cpu0]
100004                   CanRun                              [idle: cpu1]
    1     0     1     0  SLs     wait    0xfffffe0008007040  [init]
   10     0     0     0  DL      audit_w 0xffffffff83ab9ea0  [audit]
    0     0     0     0  DLs     (threaded)                  [kernel]
100000                   D       parked  0xffffffff843e0ff0  [swapper]
100005                   D       -       0xfffffe005461c000  [softirq_0]
100006                   D       -       0xfffffe005461be00  [softirq_1]
100007                   D       -       0xfffffe005461bd00  [if_io_tqg_0]
100008                   D       -       0xfffffe005461bc00  [if_io_tqg_1]
100009                   D       -       0xfffffe005461bb00  [if_config_tqg_0]
100010                   D       -       0xfffffe0007fc9500  [kqueue_ctx taskq]
100011                   D       -       0xfffffe0007fc9300  [jail_remove taskq]
100012                   D       -       0xfffffe0007fc9100  [bus taskq]
100015                   D       -       0xfffffe0007fc8a00  [thread taskq]
100017                   D       -       0xfffffe0007fc8600  [aiod_kick taskq]
100018                   D       -       0xfffffe0007fc8400  [deferred_unmount ta]
100019                   D       -       0xfffffe0007fc8200  [inm_free taskq]
100020                   D       -       0xfffffe0007fc8000  [in6m_free taskq]
100021                   D       -       0xfffffe0007fc7d00  [linuxkpi_irq_wq]
100022                   D       -       0xfffffe0007fc7b00  [linuxkpi_short_wq_0]
100023                   D       -       0xfffffe0007fc7b00  [linuxkpi_short_wq_1]
100024                   D       -       0xfffffe0007fc7b00  [linuxkpi_short_wq_2]
100025                   D       -       0xfffffe0007fc7b00  [linuxkpi_short_wq_3]
100026                   D       -       0xfffffe0007fc7600  [linuxkpi_long_wq_0]
100027                   D       -       0xfffffe0007fc7600  [linuxkpi_long_wq_1]
100028                   D       -       0xfffffe0007fc7600  [linuxkpi_long_wq_2]
100029                   D       -       0xfffffe0007fc7600  [linuxkpi_long_wq_3]
100034                   D       -       0xfffffe0007fc6c00  [firmware taskq]
100039                   D       -       0xfffffe0007fc6600  [crypto_0]
100040                   D       -       0xfffffe0007fc6600  [crypto_1]
100049                   D       -       0xfffffe00581ec500  [vtnet0 rxq 0]
100050                   D       -       0xfffffe00581ec400  [vtnet0 txq 0]
100056                   D       -       0xffffffff8272d340  [deadlkres]
100057                   D       -       0xfffffe00581ea800  [acpi_task_0]
100058                   D       -       0xfffffe00581ea800  [acpi_task_1]
100059                   D       -       0xfffffe00581ea800  [acpi_task_2]
100061                   D       -       0xfffffe0007fc6000  [CAM taskq]
100092                   D       -       0xfffffe0058113800  [ipsec_offload]
db> show all locks
Process 1260 (syz-executor1361750) thread 0xfffffe00548e3000 (100126)
exclusive sleep mutex umtxql (umtxql) r = 0 (0xffffffff8398e700) locked @ /home/markj/sb/main/src/sys/kern/kern_umtx.c:1311
Process 1260 (syz-executor1361750) thread 0xfffffe005491a000 (100716)
exclusive sleep mutex so_rcv (so_rcv) r = 0 (0xfffffe006d5d91e0) locked @ /home/markj/sb/main/src/sys/kern/uipc_usrreq.c:1166
exclusive sx so_snd_sx (so_snd_sx) r = 0 (0xfffffe006d5d8d80) locked @ /home/markj/sb/main/src/sys/kern/uipc_socket.c:4836
db> show malloc
              Type        InUse        MemUse     Requests
           pf_hash            6        12804K            6
            linker          427         6537K          538
         sysctloid        32120         1890K        32164
              kobj          328         1312K          548
            devbuf         1333         1144K         1365
          vfscache            3         1025K            3
            newblk            1         1024K         1947
               pcb           17          525K           44
         ufs_quota            1          512K            1
          inodedep            1          512K           62
          vfs_hash            1          512K            1
           callout            2          512K            2
              intr            4          472K            4
         vnet_data            2          224K            2
          acpitask            1          224K            1
            KTRACE          100          200K          100
           subproc           88          149K         1317
            bus-sc           31          148K         1014
           tidhash            3          141K            3
              SWAP            1          132K            1
           pagedep            1          128K           22
        tfo_ccache            1          128K            1
          IP reass            1          128K            1
               sem            4          106K            4
        gtaskqueue           18           98K           18
            DEVFS1           97           97K          106
              vmem            5           79K            5
               bus          969           78K         3389
          mtx_pool            3           74K            3
          syncache            1           68K            1
     NFSD srvcache            3           68K            3
       ddb_capture            1           64K            1
            module          511           64K          511
            acpica          420           39K        59430
              temp           19           37K         1768
               LRO            2           33K            2
         hostcache            1           32K            1
               shm            1           32K            1
               msg            4           30K            4
              umtx          240           30K          240
            DEVFS3          120           30K          127
           kdtrace          137           29K         1978
            kbdmux            5           28K            5
        DEVFS_RULE           61           22K           61
               BPF           10           18K           10
           ithread           95           18K           95
              GEOM          106           17K          690
         ufs_mount            4           17K            5
              proc            3           17K            3
      eventhandler          152           13K          152
           devstat            6           13K            6
              rman           99           12K          529
              kenv           92           12K           92
            ifaddr           29           11K           29
          routetbl           42           10K          125
               rpc            8            9K            8
              UART           12            9K           12
netgraph_btsocks_hci_raw            1            8K            1
         bmsafemap            1            8K           60
             shmfd            1            8K            1
       pfs_vncache            1            8K            1
     audit_evclass          239            8K          301
         taskqueue           62            7K          143
         pfs_nodes           22            6K           22
       ufs_dirhash           27            6K           27
            sglist            3            6K            3
            kqueue           35            5K         1264
               UMA          257            5K          257
             ifnet            3            5K            3
           io_apic            1            4K            1
               tty            4            4K            4
             evdev            4            4K            4
              cred           15            4K          370
            plimit            9            4K          303
          pf_ifnet            5            3K            6
           lltable           10            3K           10
           acpidev           22            3K           22
           acpisem           21            3K           21
         toponodes           10            3K           10
             hhook            8            3K           10
             clone            9            3K            9
           uidinfo            3            3K            9
        local_apic            1            2K            1
         ipsec-saq            2            2K            2
           pwddesc           32            2K         1261
           CAM DEV            1            2K            2
             selfd           27            2K        16511
               msi           13            2K           13
         in6_multi           15            2K           15
            Unitno           25            2K           39
             lockf           15            2K           18
         proc-args           45            2K         2293
          pci_link           16            2K           16
           session           12            2K           31
             mount           31            2K          105
       ipsecpolicy            2            2K            2
       ether_multi           17            2K           17
     netgraph_node            6            2K            6
            select           10            2K           72
           netlink            2            2K          112
         CAM queue            2            2K            5
           softdep            1            1K            1
            sahead            1            1K            1
          secasvar            1            1K            1
       vnodemarker            2            1K           16
      NFSD session            1            1K            1
             ipsec            3            1K            3
             nhops            6            1K            6
              pfil            6            1K            6
            crypto            4            1K            4
 encap_export_host           12            1K           12
            dumper            2            1K            2
           CAM XPT           11            1K           12
          in_multi            2            1K            2
              cdev            2            1K            2
       lkpikmalloc            8            1K            9
               osd            8            1K           43
            ip6ndp            3            1K            3
            CC Mem            3            1K            7
    chacha20random            1            1K            1
            biobuf            1            1K            1
          procdesc            3            1K           25
        CAM periph            2            1K           14
            prison           10            1K           10
             DEVFS           10            1K           11
               MCA            2            1K            2
               mld            2            1K            2
              igmp            2            1K            2
            vnodes            1            1K            1
            isadev            2            1K            3
      NFSD lckfile            1            1K            1
     NFSD V4client            1            1K            1
            feeder            7            1K            7
       inpcbpolicy            6            1K           94
        loginclass            3            1K            7
            apmdev            1            1K            1
          atkbddev            2            1K            2
         vm_pgdata            1            1K            1
          pmchooks            1            1K            1
            DEVFSP            2            1K            2
           CAM SIM            1            1K            1
            soname            4            1K         1001
          nexusdev            6            1K            6
           tcpfunc            1            1K            1
              vnet            1            1K            1
               pmc            1            1K            1
          acpiintr            1            1K            1
     CAM dev queue            1            1K            1
              cpus            2            1K            2
    vnet_data_free            1            1K            1
           Per-cpu            1            1K            1
             cache            1            1K            1
           entropy            1            1K           86
          CAM path            1            1K           12
       fdesc_mount            1            1K            1
          freework            1            1K            6
          p1003.1b            1            1K            1
          filecaps            1            1K          154
          pf_table            0            0K            0
           pf_rule            0            0K            0
           pf_altq            0            0K            0
           pf_osfp            0            0K            0
     pf_krule_item            0            0K            0
           pf_temp            0            0K            0
    netgraph_l2cap            0            0K            0
      netgraph_hci            0            0K            0
netgraph_btsocks_sco            0            0K            0
netgraph_btsocks_rfcomm            0            0K            0
netgraph_btsocks_l2cap            0            0K            0
netgraph_btsocks_l2cap_raw            0            0K            0
    netgraph_parse            0            0K            0
     netgraph_item            0            0K            0
     netgraph_hook            0            0K            0
      netgraph_msg            0            0K            0
          netgraph            0            0K            0
            ipcomp            0            0K            0
               esp            0            0K            0
                ah            0            0K            0
           filemon            0            0K            0
         cryptodev            0            0K            0
    p9fs_mount_tag            0            0K            0
               uio            0            0K            0
        p9fs_mount            0            0K            0
         p9_client            0            0K            0
        madt_table            0            0K            2
          smartpqi            0            0K            0
               ixl            0            0K            0
        ice-resmgr            0            0K            0
         ice-osdep            0            0K            0
               ice            0            0K            0
              iavf            0            0K            0
             axgbe            0            0K            0
           memdesc            0            0K            0
       fpukern_ctx            0            0K            0
          xen_intr            0            0K            0
           xen_hvm            0            0K            0
         legacydrv            0            0K            0
      NMI handlers            0            0K            0
            bounce            0            0K            0
            busdma            0            0K            0
            qpidrv            0            0K            0
      dmar_idpgtbl            0            0K            0
          dmar_dom            0            0K            0
          dmar_ctx            0            0K            0
      amdiommu_dom            0            0K            0
      amdiommu_ctx            0            0K            0
              isci            0            0K            0
      iommu_dmamap            0            0K            0
     hyperv_socket            0            0K            0
           bxe_ilt            0            0K            0
        aesni_data            0            0K            0
            xenbus            0            0K            0
     vm_fictitious            0            0K            0
           UMAHash            0            0K            0
           jblocks            0            0K            0
          savedino            0            0K            6
          sentinel            0            0K            0
            jfsync            0            0K            0
            jtrunc            0            0K            0
             sbdep            0            0K            5
           jsegdep            0            0K            0
              jseg            0            0K            0
         jfreefrag            0            0K            0
          jfreeblk            0            0K            0
           jnewblk            0            0K            0
            jmvref            0            0K            0
           jremref            0            0K            0
           jaddref            0            0K            0
           freedep            0            0K            0
         newdirblk            0            0K            6
            dirrem            0            0K           20
             mkdir            0            0K           12
            diradd            0            0K           69
          freefile            0            0K            5
          freeblks            0            0K            5
          freefrag            0            0K            0
        allocindir            0            0K            0
          indirdep            0            0K            3
       allocdirect            0            0K            0
          ufs_trim            0            0K            0
           mactemp            0            0K            0
     audit_trigger            0            0K            0
 audit_pipe_presel            0            0K            0
     audit_pipeent            0            0K            0
        audit_pipe            0            0K            0
      audit_evname            0            0K            0
         audit_bsm            0            0K            0
      audit_gidset            0            0K            0
        audit_text            0            0K            0
        audit_path            0            0K            0
        audit_data            0            0K            0
        audit_cred            0            0K            0
          ktls_ocf            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
      MLX5E_TLS_RX            0            0K            0
        MLX5EEPROM            0            0K            0
         MLX5E_TLS            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
            MLX5EN            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
          MLX5DUMP            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
        MLX5EEPROM            0            0K            0
       simple_attr            0            0K            0
          seq_file            0            0K            0
           lkpiskb            0            0K            0
             radix            0            0K            0
               idr            0            0K            0
          lkpindev            0            0K            0
           lkpimhi            0            0K            0
            lkpifw            0            0K            0
         lkpi80211            0            0K            0
               NLM            0            0K            0
    ipsec-spdcache            0            0K            0
         ipsec-reg            0            0K            0
        ipsec-misc            0            0K            0
      ipsecrequest            0            0K            0
            ip6opt            0            0K            0
       ip6_msource            0            0K            0
      ip6_moptions            0            0K            0
       in6_mfilter            0            0K            0
             frag6            0            0K            0
            tcplog            0            0K            0
        ip_msource            0            0K            0
       ip_moptions            0            0K            0
        in_mfilter            0            0K            0
              ipid            0            0K            0
         80211scan            0            0K            0
      80211ratectl            0            0K            0
        80211power            0            0K            0
       80211nodeie            0            0K            0
         80211node            0            0K            0
      80211mesh_gt            0            0K            0
      80211mesh_rt            0            0K            0
         80211perr            0            0K            0
         80211prep            0            0K            0
         80211preq            0            0K            0
          80211dfs            0            0K            0
       80211crypto            0            0K            0
          80211vap            0            0K            0
             iflib            0            0K            0
              vlan            0            0K            0
               tun            0            0K            0
               gif            0            0K            0
           ifdescr            0            0K            0
              zlib            0            0K           13
           fadvise            0            0K            0
           VN POLL            0            0K            0
            statfs            0            0K           18
     namei_tracker            0            0K            0
       export_host            0            0K            0
        cl_savebuf            0            0K            3
               aio            0            0K            0
               lio            0            0K            0
               acl            0            0K            0
          mbuf_tag            0            0K            0
              ktls            0            0K            0
              accf            0            0K            0
               pts            0            0K            0
           timerfd            0            0K            0
               iov            0            0K         6398
          ioctlops            0            0K           70
           eventfd            0            0K            0
           Witness            0            0K            0
          terminal            0            0K            0
             stack            0            0K            0
              sbuf            0            0K          473
          firmware            0            0K            0
        compressor            0            0K            0
         sysctltmp            0            0K          542
            sysctl            0            0K           37
              ekcd            0            0K            0
          sendfile            0            0K            0
              rctl            0            0K            0
          kcovinfo            0            0K            0
      prison_racct            0            0K            0
       Fail Points            0            0K            0
             sigio            0            0K            1
filedesc_to_leader            0            0K            0
               pwd            0            0K            0
          filedesc            0            0K            0
       tty console            0            0K            0
         boottrace            0            0K            0
        isofs_node            0            0K            0
       isofs_mount            0            0K            0
     tr_raid5_data            0            0K            0
    tr_raid1e_data            0            0K            0
     tr_raid1_data            0            0K            0
     tr_raid0_data            0            0K            0
    tr_concat_data            0            0K            0
       md_sii_data            0            0K            0
   md_promise_data            0            0K            0
    md_nvidia_data            0            0K            0
   md_jmicron_data            0            0K            0
     md_intel_data            0            0K            0
       md_ddf_data            0            0K            0
         raid_data            0            0K          108
     geom_flashmap            0            0K            0
         tmpfs dir            0            0K            0
        tmpfs name            0            0K            0
       tmpfs mount            0            0K            0
     tmpfs extattr            0            0K            0
           NFS FHA            0            0K            0
         newnfsmnt            0            0K            0
  newnfsclient_req            0            0K            0
   NFSCL layrecall            0            0K            0
     NFSCL session            0            0K            0
     NFSCL sockreq            0            0K            0
     NFSCL devinfo            0            0K            0
     NFSCL flayout            0            0K            0
      NFSCL layout            0            0K            0
     NFSD rollback            0            0K            0
      NFSCL diroff            0            0K            0
        NEWNFSnode            0            0K            0
         NFSCL lck            0            0K            0
      NFSCL lckown            0            0K            0
      NFSCL client            0            0K            0
       NFSCL deleg            0            0K            0
        NFSCL open            0            0K            0
       NFSCL owner            0            0K            0
            NFS fh            0            0K            0
           NFS req            0            0K            0
     NFSD usrgroup            0            0K            0
       NFSD string            0            0K            0
       NFSD V4lock            0            0K            0
      NFSD V4state            0            0K            0
       msdosfs_fat            0            0K            0
     msdosfs_mount            0            0K            0
      msdosfs_node            0            0K            0
            DEVFS4            0            0K            0
            DEVFS2            0            0K            0
            gntdev            0            0K            0
       privcmd_dev            0            0K            0
        evtchn_dev            0            0K            0
          xenstore            0            0K            0
               xnb            0            0K            0
          xen_acpi            0            0K            0
              xbbd            0            0K            0
               xbd            0            0K            0
           Balloon            0            0K            0
          sysmouse            0            0K            0
            vtfont            0            0K            0
                vt            0            0K            0
             vtbuf            0            0K            0
            pvscsi            0            0K            0
            USBdev            0            0K            0
               USB            0            0K            0
            twsbuf            0            0K            0
       tcp_log_dev            0            0K            0
      midi buffers            0            0K            0
             mixer            0            0K            0
              ac97            0            0K            0
             hdacc            0            0K            0
              hdac            0            0K            0
              hdaa            0            0K            0
       SIIS driver            0            0K            0
               PUC            0            0K            0
          ppbusdev            0            0K            0
            sr_iov            0            0K            0
               OCS            0            0K            0
               OCS            0            0K            0
              nvme            0            0K            0
               nvd            0            0K            0
            netmap            0            0K            0
            mwldev            0            0K            0
        MVS driver            0            0K            0
          mrsasbuf            0            0K            0
          mpt_user            0            0K            0
          mps_user            0            0K            0
            MPSSAS            0            0K            0
               mps            0            0K            0
          mpr_user            0            0K            0
            MPRSAS            0            0K            0
               mpr            0            0K            0
            mfibuf            0            0K            0
        md_sectors            0            0K            0
           md_disk            0            0K            0
           malodev            0            0K            0
               LED            0            0K            0
          ix_sriov            0            0K            0
                ix            0            0K            0
            ipsbuf            0            0K            0
         ciss_data            0            0K            0
         BACKLIGHT            0            0K            0
           ath_hal            0            0K            0
            athdev            0            0K            0
           ata_pci            0            0K            0
           ata_dma            0            0K            0
       ata_generic            0            0K            0
       AHCI driver            0            0K            0
               agp            0            0K            0
           acpipwr            0            0K            0
         acpi_perf            0            0K            0
         acpicmbat            0            0K            0
        aacraidcam            0            0K            0
       aacraid_buf            0            0K            0
            aaccam            0            0K            0
            aacbuf            0            0K            0
              zstd            0            0K            0
            XZ_DEC            0            0K            0
            nvlist            0            0K            0
          SCSI ENC            0            0K            0
           SCSI sa            0            0K            0
         scsi_pass            0            0K            0
           scsi_da            0            0K            0
            ata_da            0            0K            0
           scsi_ch            0            0K            0
           scsi_cd            0            0K            0
           nvme_da            0            0K            0
           CAM CCB            0            0K            0
     CAM ccb queue            0            0K            0
 CAM I/O Scheduler            0            0K            0
db> show uma
              Zone   Size    Used    Free    Requests  Sleeps  Bucket  Total Mem    XFree
   mbuf_jumbo_page   4096    1088     944       44487       0     254    8323072        0
          BUF TRIE    152     277   11579        1081       0      62    1802112        0
       malloc-4096   4096     360       8        1809       0       2    1507328        0
        malloc-128    128   11330     140       11400       0     126    1468160        0
      malloc-65536  65536      15       1          27       0       1    1048576        0
      mbuf_cluster   2048     508       0         508       0     254    1040384        0
              mbuf    256    1351    1201       69230       0     254     653312        0
              pbuf   2624       0     228           0       0       2     598272        0
        RADIX NODE    152    3351     440       68967       0      62     576232        0
        malloc-512    512    1038      42        1057       0      30     552960        0
            socket   1024      22     486        1744       0     254     520192        0
          lkpicurr    168       2    3094           2       0      62     520128        0
        malloc-256    256      12    1983        2510       0      62     510720        0
      malloc-32768  32768      11       2          20       0       1     425984        0
       UMA Slabs 0    112    3533      25        3533       0     126     398496        0
         vmem btag     56    6941      82        6941       0     254     393288        0
       malloc-2048   2048     147       5         165       0       8     311296        0
     FPU_save_area   2432     106      14         727       0       4     291840        0
         VM OBJECT    264     853     137       18045       0      30     261360        0
             VNODE    440     525      51         532       0      30     253440        0
         malloc-64     64    3545     298       20116       0     254     245952        0
        256 Bucket   2048     100      20         798       0       8     245760        0
      malloc-16384  16384      13       1          18       0       1     229376        0
       malloc-2048   2048     103       9         336       0       8     229376        0
         malloc-16     16   13527     223       13617       0     254     220000        0
            THREAD   1824     104      16         716       0       8     218880        0
            DEVCTL   1024       0     196          94       0       0     200704        0
         UMA Zones    768     229       0         229       0      16     175872        0
            lkpimm     56       1    3095           1       0     254     173376        0
             unpcb    320      15     501        1622       0     254     165120        0
         malloc-32     32    4599     315        4732       0     254     157248        0
       FFS2 dinode    256     500      70         505       0      62     145920        0
         MAP ENTRY     96     819     567       57392       0     126     133056        0
      malloc-65536  65536       0       2           2       0       1     131072        0
      malloc-65536  65536       2       0           2       0       1     131072        0
      malloc-32768  32768       4       0          52       0       1     131072        0
       malloc-1024   1024     109      19         239       0      16     131072        0
       mbuf_packet    256       1     507          62       0     254     130048        0
       malloc-8192   8192      15       0          18       0       1     122880        0
       S VFS Cache    104     950     220         990       0     126     121680        0
          ksiginfo    112      35    1009          67       0     126     116928        0
         FFS inode    200     500      60         505       0      62     112000        0
       malloc-4096   4096      20       2         174       0       2      90112        0
          UMA Kegs    384     214       9         214       0      30      85632        0
        128 Bucket   1024      41      42         251       0      16      84992        0
         malloc-64     64     979     344        4083       0     254      84672        0
              PROC   1376      31      24        1260       0       8      75680        0
         64 Bucket    512      96      40        1988       0      30      69632        0
        malloc-128    128     413     114        2222       0     126      67456        0
           DIRHASH   1024      40      24          40       0      16      65536        0
      malloc-65536  65536       0       1          44       0       1      65536        0
      malloc-65536  65536       1       0           1       0       1      65536        0
      malloc-32768  32768       2       0           2       0       1      65536        0
           ttyoutq    256      93     162         279       0      62      65280        0
        malloc-256    256     138     117         397       0      62      65280        0
        malloc-256    256     127     128         813       0      62      65280        0
         filedesc0   1072      32      24        1261       0       8      60032        0
            ttyinq    160     180     145         540       0      62      52000        0
        malloc-128    128     269     134       27180       0     126      51584        0
        malloc-256    256     151      44         610       0      62      49920        0
         32 Bucket    256      55     140        2548       0      62      49920        0
             NAMEI   1024       0      48       12106       0      16      49152        0
      malloc-16384  16384       0       3           6       0       1      49152        0
             g_bio    384       0     120        5735       0      30      46080        0
          syncache    168       0     264           5       0     254      44352        0
         udp_inpcb    408       2      88          86       0      30      36720        0
         malloc-64     64      17     550        6334       0     254      36288        0
         malloc-64     64      49     518          54       0     254      36288        0
         malloc-64     64     176     391        1569       0     254      36288        0
         malloc-64     64      45     522        1274       0     254      36288        0
         malloc-64     64       5     562           9       0     254      36288        0
        malloc-128    128      13     266          21       0     126      35712        0
        malloc-128    128     118     161         573       0     126      35712        0
        malloc-128    128       5     274          16       0     126      35712        0
     routing nhops    256       7     128          12       0      62      34560        0
        malloc-384    384       0      90          65       0      30      34560        0
        malloc-384    384      40      50          45       0      30      34560        0
        malloc-384    384      63      27         250       0      30      34560        0
        malloc-384    384      58      32          58       0      30      34560        0
        malloc-256    256      48      87         232       0      62      34560        0
        malloc-256    256      32     103          97       0      62      34560        0
        malloc-256    256       6     129           6       0      62      34560        0
      malloc-32768  32768       0       1           1       0       1      32768        0
      malloc-32768  32768       1       0           1       0       1      32768        0
      malloc-32768  32768       1       0           1       0       1      32768        0
       malloc-4096   4096       7       1           7       0       2      32768        0
       malloc-2048   2048       1      15          19       0       8      32768        0
       malloc-2048   2048       5      11           6       0       8      32768        0
       malloc-2048   2048       2      14          39       0       8      32768        0
       malloc-1024   1024       3      29          69       0      16      32768        0
       malloc-1024   1024       4      28           4       0      16      32768        0
       malloc-1024   1024      19      13        1007       0      16      32768        0
       malloc-1024   1024       5      27          17       0      16      32768        0
       malloc-1024   1024       5      27           6       0      16      32768        0
        malloc-512    512       1      63         157       0      30      32768        0
        malloc-512    512       5      59          47       0      30      32768        0
        malloc-512    512       9      55           9       0      30      32768        0
           pcpu-64     64     486      26         486       0     254      32768        0
            pcpu-8      8    3726     370        3744       0     254      32768        0
              PGRP    120      12     252          31       0     126      31680        0
            clpbuf   2624       0      12          81       0       4      31488        0
           VMSPACE    584      15      34        1246       0      16      28616        0
         malloc-32     32     282     600         459       0     254      28224        0
          4 Bucket     48       9     579          82       0     254      28224        0
         TURNSTILE    136     121      68         121       0      62      25704        0
            cpuset    200       7     121           7       0      62      25600        0
       malloc-8192   8192       2       1          36       0       1      24576        0
       malloc-8192   8192       3       0          36       0       1      24576        0
       malloc-4096   4096       5       1           5       0       2      24576        0
       malloc-4096   4096       0       6          29       0       2      24576        0
              pipe    736       5      28         429       0      16      24288        0
    ertt_txseginfo     40       0     606         906       0     254      24240        0
               PWD     40       9     597          66       0     254      24240        0
           rtentry    168      10     134          12       0      62      24192        0
             Files     80      70     230        8185       0     126      24000        0
          8 Bucket     80      34     266         231       0     126      24000        0
         tcp_inpcb   1304       3      15           7       0       8      23472        0
        malloc-384    384       6      54           6       0      30      23040        0
        malloc-384    384      10      50         304       0      30      23040        0
        SLEEPQUEUE     88     121     135         121       0     126      22528        0
         hostcache     64       1     314           1       0     254      20160        0
              ertt     72       3     277           7       0     126      20160        0
         malloc-32     32      66     564          80       0     254      20160        0
         malloc-32     32     159     471        1212       0     254      20160        0
         malloc-32     32      37     593        4855       0     254      20160        0
         malloc-32     32       9     621          11       0     254      20160        0
         16 Bucket    144      38     102         263       0      62      20160        0
          2 Bucket     32      53     577         338       0     254      20160        0
         malloc-16     16     462     788        3791       0     254      20000        0
        malloc-128    128      38     117         155       0     126      19840        0
        malloc-128    128       0     155          12       0     126      19840        0
        malloc-256    256       8      67           8       0      62      19200        0
              vmem   1856       2       7           2       0       8      16704        0
 epoch_record pcpu    256       4      60           4       0      62      16384        0
      malloc-16384  16384       1       0          73       0       1      16384        0
      malloc-16384  16384       1       0           1       0       1      16384        0
       malloc-8192   8192       2       0           2       0       1      16384        0
       malloc-8192   8192       2       0           2       0       1      16384        0
       malloc-4096   4096       0       4          11       0       2      16384        0
       malloc-4096   4096       0       4          18       0       2      16384        0
       malloc-4096   4096       2       2          48       0       2      16384        0
       malloc-2048   2048       1       7           1       0       8      16384        0
       malloc-2048   2048       1       7           1       0       8      16384        0
       malloc-1024   1024       9       7           9       0      16      16384        0
        malloc-512    512       2      30           2       0      30      16384        0
           SMR CPU     32       8     503           8       0     254      16352        0
              kenv    258       2      58         698       0      30      15480        0
        SMR SHARED     24       8     503           8       0     254      12264        0
         malloc-32     32      22     356          97       0     254      12096        0
             KNOTE    160      10      65          10       0      62      12000        0
         malloc-16     16      19     731         229       0     254      12000        0
         malloc-16     16      53     697       26004       0     254      12000        0
         malloc-16     16      25     725          54       0     254      12000        0
         malloc-16     16       7     743           8       0     254      12000        0
       L VFS Cache    320       0      36           1       0      30      11520        0
        malloc-384    384       1      29           1       0      30      11520        0
             ripcb    376       1      29           1       0      30      11280        0
       Mountpoints   2816       3       1           3       0       4      11264        0
       malloc-8192   8192       0       1          13       0       1       8192        0
       malloc-8192   8192       1       0           1       0       1       8192        0
      vtnet_tx_hdr     24       1     333       22235       0     254       8016        0
         malloc-16     16       8     492           8       0     254       8000        0
         malloc-16     16       4     496           4       0     254       8000        0
           pcpu-16     16       4     252           4       0     254       4096        0
       UMA Slabs 1    176       7      15           7       0      62       3872        0
        KMAP ENTRY     96      35       4          51       0       0       3744        0
   pf state scrubs     40       0       0           0       0     254          0        0
   pf frag entries     40       0       0           0       0     254          0        0
          pf frags    256       0       0           0       0      62          0        0
  pf table entries    160       0       0           0       0     254          0        0
pf table entry counters     64       0       0           0       0     254          0        0
   pf UDP mappings    104       0       0           0       0     126          0        0
   pf source nodes    152       0       0           0       0     254          0        0
     pf state keys     88       0       0           0       0     126          0        0
         pf states    376       0       0           0       0     254          0        0
           pf tags    104       0       0           0       0     126          0        0
          pf mtags    184       0       0           0       0      62          0        0
NetGraph data items     72       0       0           0       0     254          0        0
    NetGraph items     72       0       0           0       0     254          0        0
             swblk    136       0       0           0       0      62          0        0
          swpctrie    152       0       0           0       0      62          0        0
       FFS1 dinode    128       0       0           0       0     126          0        0
            da_ccb    544       0       0           0       0      16          0        0
           ada_ccb    272       0       0           0       0      30          0        0
tfo_ccache_entries     80       0       0           0       0     126          0        0
               tfo      4       0       0           0       0     254          0        0
          sackhole     32       0       0           0       0     254          0        0
               ipq     56       0       0           0       0     254          0        0
   tcp_log_id_node    120       0       0           0       0     126          0        0
 tcp_log_id_bucket    176       0       0           0       0      62          0        0
           tcp_log    416       0       0           0       0     254          0        0
          tcpreass     48       0       0           0       0     254          0        0
     udplite_inpcb    408       0       0           0       0      30          0        0
    IPsec SA lft_c     16       0       0           0       0     254          0        0
            itimer    352       0       0           0       0      30          0        0
            AIOLIO    272       0       0           0       0      30          0        0
             AIOCB    552       0       0           0       0      16          0        0
               AIO    208       0       0           0       0      62          0        0
p9fs io_buffer zone   8192       0       0           0       0       1          0        0
 p9fs setattr zone     56       0       0           0       0     254          0        0
 p9fs getattr zone    160       0       0           0       0      62          0        0
    p9fs node zone    312       0       0           0       0      30          0        0
        TMPFS node    240       0       0           0       0      62          0        0
           NCLNODE    608       0       0           0       0      16          0        0
     LTS VFS Cache    360       0       0           0       0      30          0        0
     STS VFS Cache    144       0       0           0       0      62          0        0
     p9fs buf zone   8224       0       0           0       0       1          0        0
     p9fs req zone     16       0       0           0       0     254          0        0
     p9fs fid zone     56       0       0           0       0     254          0        0
           cryptop    280       0       0           0       0      30          0        0
  linux_dma_object     32       0       0           0       0     254          0        0
  linux_dma_pctrie    152       0       0           0       0      62          0        0
   IOMMU_MAP_ENTRY    112       0       0           0       0     126          0        0
    mbuf_jumbo_16k  16384       0       0           0       0     254          0        0
     mbuf_jumbo_9k   9216       0       0           0       0     254          0        0
      audit_record   1280       0       0           0       0       8          0        0
         domainset     40       0       0           0       0     254          0        0
        MAC labels     40       0       0           0       0     254          0        0
            vnpbuf   2624       0       0           0       0      16          0        0
           nfspbuf   2624       0       0           0       0       4          0        0
    p9fs pbuf zone   2624       0       0           0       0       4          0        0
            swwbuf   2624       0       0           0       0       2          0        0
            swrbuf   2624       0       0           0       0       4          0        0
          umtx_shm     88       0       0           0       0     126          0        0
           umtx pi     96       0       0           0       0     126          0        0
rangeset pctrie nodes    152       0       0           0       0      62          0        0
          rl_entry     48       0       0           0       0     254          0        0
      malloc-65536  65536       0       0           0       0       1          0        0
      malloc-65536  65536       0       0           0       0       1          0        0
      malloc-65536  65536       0       0           0       0       1          0        0
      malloc-32768  32768       0       0           0       0       1          0        0
      malloc-32768  32768       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
      malloc-16384  16384       0       0           0       0       1          0        0
       malloc-8192   8192       0       0           0       0       1          0        0
       malloc-2048   2048       0       0           0       0       8          0        0
       malloc-1024   1024       0       0           0       0      16          0        0
        malloc-512    512       0       0           0       0      30          0        0
        malloc-512    512       0       0           0       0      30          0        0
        malloc-512    512       0       0           0       0      30          0        0
        malloc-384    384       0       0           0       0      30          0        0
         malloc-64     64       0       0           0       0     254          0        0
         malloc-32     32       0       0           0       0     254          0        0
           pcpu-32     32       0       0           0       0     254          0        0
            pcpu-4      4       0       0           0       0     254          0        0
            fakepg    104       0       0           0       0     126          0        0
          UMA Hash    256       0       0           0       0      62          0        0


Syzkaller reproducer:
# {Threaded:true Repeat:true RepeatTimes:0 Procs:1 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:true Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}}
mlock(&(0x7f0000bff000/0x400000)=nil, 0x400000) (async)
socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000440)={<r0=>0xffffffffffffffff, <r1=>0xffffffffffffffff})
setsockopt$sock_int(r1, 0xffff, 0x1002, &(0x7f0000000480)=0x4, 0x4) (async)
sendto$unix(r0, &(0x7f00000006c0)="0b47c7e8f2", 0x5, 0x0, 0x0, 0x0) (rerun: 32)


C reproducer:
// autogenerated by syzkaller (https://github.com/google/syzkaller)

#define _GNU_SOURCE

#include <sys/types.h>

#include <errno.h>
#include <pthread.h>
#include <pwd.h>
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/endian.h>
#include <sys/syscall.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>

static __thread int clone_ongoing;
static __thread int skip_segv;
static __thread jmp_buf segv_env;

static void segv_handler(int sig, siginfo_t* info, void* ctx)
{
  if (__atomic_load_n(&clone_ongoing, __ATOMIC_RELAXED) != 0) {
    exit(sig);
  }
  uintptr_t addr = (uintptr_t)info->si_addr;
  const uintptr_t prog_start = 1 << 20;
  const uintptr_t prog_end = 100 << 20;
  int skip = __atomic_load_n(&skip_segv, __ATOMIC_RELAXED) != 0;
  int valid = addr < prog_start || addr > prog_end;
  if (sig == SIGBUS)
    valid = 1;
  if (skip && valid) {
    _longjmp(segv_env, 1);
  }
  exit(sig);
}

static void install_segv_handler(void)
{
  struct sigaction sa;
  memset(&sa, 0, sizeof(sa));
  sa.sa_sigaction = segv_handler;
  sa.sa_flags = SA_NODEFER | SA_SIGINFO;
  sigaction(SIGSEGV, &sa, NULL);
  sigaction(SIGBUS, &sa, NULL);
}

#define NONFAILING(...)                                                        \
  ({                                                                           \
    int ok = 1;                                                                \
    __atomic_fetch_add(&skip_segv, 1, __ATOMIC_SEQ_CST);                       \
    if (_setjmp(segv_env) == 0) {                                              \
      __VA_ARGS__;                                                             \
    } else                                                                     \
      ok = 0;                                                                  \
    __atomic_fetch_sub(&skip_segv, 1, __ATOMIC_SEQ_CST);                       \
    ok;                                                                        \
  })

static void kill_and_wait(int pid, int* status)
{
  kill(pid, SIGKILL);
  while (waitpid(-1, status, 0) != pid) {
  }
}

static void sleep_ms(uint64_t ms)
{
  usleep(ms * 1000);
}

static uint64_t current_time_ms(void)
{
  struct timespec ts;
  if (clock_gettime(CLOCK_MONOTONIC, &ts))
    exit(1);
  return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
}

static void thread_start(void* (*fn)(void*), void* arg)
{
  pthread_t th;
  pthread_attr_t attr;
  pthread_attr_init(&attr);
  pthread_attr_setstacksize(&attr, 128 << 10);
  int i = 0;
  for (; i < 100; i++) {
    if (pthread_create(&th, &attr, fn, arg) == 0) {
      pthread_attr_destroy(&attr);
      return;
    }
    if (errno == EAGAIN) {
      usleep(50);
      continue;
    }
    break;
  }
  exit(1);
}

typedef struct {
  pthread_mutex_t mu;
  pthread_cond_t cv;
  int state;
} event_t;

static void event_init(event_t* ev)
{
  if (pthread_mutex_init(&ev->mu, 0))
    exit(1);
  if (pthread_cond_init(&ev->cv, 0))
    exit(1);
  ev->state = 0;
}

static void event_reset(event_t* ev)
{
  ev->state = 0;
}

static void event_set(event_t* ev)
{
  pthread_mutex_lock(&ev->mu);
  if (ev->state)
    exit(1);
  ev->state = 1;
  pthread_mutex_unlock(&ev->mu);
  pthread_cond_broadcast(&ev->cv);
}

static void event_wait(event_t* ev)
{
  pthread_mutex_lock(&ev->mu);
  while (!ev->state)
    pthread_cond_wait(&ev->cv, &ev->mu);
  pthread_mutex_unlock(&ev->mu);
}

static int event_isset(event_t* ev)
{
  pthread_mutex_lock(&ev->mu);
  int res = ev->state;
  pthread_mutex_unlock(&ev->mu);
  return res;
}

static int event_timedwait(event_t* ev, uint64_t timeout)
{
  uint64_t start = current_time_ms();
  uint64_t now = start;
  pthread_mutex_lock(&ev->mu);
  for (;;) {
    if (ev->state)
      break;
    uint64_t remain = timeout - (now - start);
    struct timespec ts;
    ts.tv_sec = remain / 1000;
    ts.tv_nsec = (remain % 1000) * 1000 * 1000;
    pthread_cond_timedwait(&ev->cv, &ev->mu, &ts);
    now = current_time_ms();
    if (now - start > timeout)
      break;
  }
  int res = ev->state;
  pthread_mutex_unlock(&ev->mu);
  return res;
}

struct thread_t {
  int created, call;
  event_t ready, done;
};

static struct thread_t threads[16];
static void execute_call(int call);
static int running;

static void* thr(void* arg)
{
  struct thread_t* th = (struct thread_t*)arg;
  for (;;) {
    event_wait(&th->ready);
    event_reset(&th->ready);
    execute_call(th->call);
    __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED);
    event_set(&th->done);
  }
  return 0;
}

static void execute_one(void)
{
  if (write(1, "executing program\n", sizeof("executing program\n") - 1)) {
  }
  int i, call, thread;
  for (call = 0; call < 4; call++) {
    for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0]));
         thread++) {
      struct thread_t* th = &threads[thread];
      if (!th->created) {
        th->created = 1;
        event_init(&th->ready);
        event_init(&th->done);
        event_set(&th->done);
        thread_start(thr, th);
      }
      if (!event_isset(&th->done))
        continue;
      event_reset(&th->done);
      th->call = call;
      __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED);
      event_set(&th->ready);
      if (call == 0 || call == 2)
        break;
      event_timedwait(&th->done, 50);
      break;
    }
  }
  for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++)
    sleep_ms(1);
}

static void execute_one(void);

#define WAIT_FLAGS 0

static void loop(void)
{
  int iter = 0;
  for (;; iter++) {
    int pid = fork();
    if (pid < 0)
      exit(1);
    if (pid == 0) {
      execute_one();
      exit(0);
    }
    int status = 0;
    uint64_t start = current_time_ms();
    for (;;) {
      sleep_ms(10);
      if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid)
        break;
      if (current_time_ms() - start < 5000)
        continue;
      kill_and_wait(pid, &status);
      break;
    }
  }
}

uint64_t r[2] = {0xffffffffffffffff, 0xffffffffffffffff};

void execute_call(int call)
{
  intptr_t res = 0;
  switch (call) {
  case 0:
    syscall(SYS_mlock, /*addr=*/0x400000bff000ul, /*size=*/0x400000ul);
    break;
  case 1:
    res = syscall(SYS_socketpair, /*domain=*/1ul, /*type=SOCK_STREAM*/ 1ul,
                  /*proto=*/0, /*fds=*/0x400000000440ul);
    if (res != -1) {
      NONFAILING(r[0] = *(uint32_t*)0x400000000440);
      NONFAILING(r[1] = *(uint32_t*)0x400000000444);
    }
    break;
  case 2:
    NONFAILING(*(uint32_t*)0x400000000480 = 4);
    syscall(SYS_setsockopt, /*fd=*/r[1], /*level=*/0xffff,
            /*optname=SO_RCVBUF*/ 0x1002, /*optval=*/0x400000000480ul,
            /*optlen=*/4ul);
    break;
  case 3:
    NONFAILING(memcpy((void*)0x4000000006c0, "\x0b\x47\xc7\xe8\xf2", 5));
    syscall(SYS_sendto, /*fd=*/r[0], /*buf=*/0x4000000006c0ul, /*len=*/5ul,
            /*f=*/0ul, /*addr=*/0ul, /*addrlen=*/0ul);
    for (int i = 0; i < 32; i++) {
      syscall(SYS_sendto, /*fd=*/r[0], /*buf=*/0x4000000006c0ul, /*len=*/5ul,
              /*f=*/0ul, /*addr=*/0ul, /*addrlen=*/0ul);
    }
    break;
  }
}
int main(void)
{
  syscall(SYS_mmap, /*addr=*/0x400000000000ul, /*len=*/0x1000000ul,
          /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x1012ul, /*fd=*/-1,
          /*offset=*/0ul);
  const char* reason;
  (void)reason;
  install_segv_handler();
  loop();
  return 0;
}


