Same with this diff.
On Wed, May 04, 2022 at 05:58:14PM +0200, Martin Pieuchot wrote:
> Index: nfs/nfs_serv.c
> ===================================================================
> RCS file: /cvs/src/sys/nfs/nfs_serv.c,v
> retrieving revision 1.120
> diff -u -p -r1.120 nfs_serv.c
> --- nfs/nfs_serv.c 11 Mar 2021 13:31:35 -0000 1.120
> +++ nfs/nfs_serv.c 4 May 2022 15:29:06 -0000
> @@ -1488,6 +1488,9 @@ nfsrv_rename(struct nfsrv_descript *nfsd
> error = -1;
> out:
> if (!error) {
> + if (tvp) {
> + (void)uvm_vnp_uncache(tvp);
> + }
> error = VOP_RENAME(fromnd.ni_dvp, fromnd.ni_vp, &fromnd.ni_cnd,
> tond.ni_dvp, tond.ni_vp, &tond.ni_cnd);
> } else {
> Index: ufs/ffs/ffs_inode.c
> ===================================================================
> RCS file: /cvs/src/sys/ufs/ffs/ffs_inode.c,v
> retrieving revision 1.81
> diff -u -p -r1.81 ffs_inode.c
> --- ufs/ffs/ffs_inode.c 12 Dec 2021 09:14:59 -0000 1.81
> +++ ufs/ffs/ffs_inode.c 4 May 2022 15:32:15 -0000
> @@ -172,11 +172,12 @@ ffs_truncate(struct inode *oip, off_t le
> if (length > fs->fs_maxfilesize)
> return (EFBIG);
>
> - uvm_vnp_setsize(ovp, length);
> oip->i_ci.ci_lasta = oip->i_ci.ci_clen
> = oip->i_ci.ci_cstart = oip->i_ci.ci_lastw = 0;
>
> if (DOINGSOFTDEP(ovp)) {
> + uvm_vnp_setsize(ovp, length);
> + (void) uvm_vnp_uncache(ovp);
> if (length > 0 || softdep_slowdown(ovp)) {
> /*
> * If a file is only partially truncated, then
http://bluhm.genua.de/release/results/2022-05-05T13%3A16%3A25Z/bsdcons-ot26.txt
[-- MARK -- Fri May 6 17:45:00 2022]
uvn_io: start: 0x1687cc08, type VREG, use 0, write 0, hold 0, flags
(VBIOONFREELIST)
tag VT_UFS, ino 131483, on dev 0, 10 flags 0x100, effnlink 1, nlink 1
mode 0100660, owner 21, group 21, size 6385624
==> vnode_history_print 0x1687cc08, next=7
[0] c++[58214] vput, usecount 2>1
<empty stack trace>
[1] c++[67078] vget, usecount 1>2
#0 mtx_enter_try+0x5c
[2] c++[67078] vget, usecount 2>3
#0 mtx_enter_try+0x5c
[3] c++[67078] vrele, usecount 3>2
<empty stack trace>
[4] c++[67078] vput, usecount 2>1
<empty stack trace>
[5] reaper[33068] uvn_detach (UVM_VNODE_CANPERSIST), usecount 1>1
#0 0xfffffffc
#1 rv6xx_asic+0x4
#2 uvn_detach+0x13c
#3 uvm_unmap_detach+0x1a4
#4 uvm_map_teardown+0x184
#5 uvmspace_free+0x60
#6 uvm_exit+0x30
#7 reaper+0x138
#8 fork_trampoline+0x14
[6] reaper[33068] vrele, usecount 1>0
<empty stack trace>
[7>] c++[58214] vget, usecount 1>2
#0 mtx_enter_try+0x5c
[8] c++[58214] vrele, usecount 2>1
<empty stack trace>
[9] c++[58214] vref, usecount 1>2
<empty stack trace>
vn_lock: v_usecount == 0: 0x1687cc08, type VREG, use 0, write 0, hold 0, flags
(VBIOONFREELIST)
tag VT_UFS, ino 131483, on dev 0, 10 flags 0x100, effnlink 1, nlink 1
mode 0100660, owner 21, group 21, size 6385624
==> vnode_history_print 0x1687cc08, next=7
[0] c++[58214] vput, usecount 2>1
<empty stack trace>
[1] c++[67078] vget, usecount 1>2
#0 mtx_enter_try+0x5c
[2] c++[67078] vget, usecount 2>3
#0 mtx_enter_try+0x5c
[3] c++[67078] vrele, usecount 3>2
<empty stack trace>
[4] c++[67078] vput, usecount 2>1
<empty stack trace>
[5] reaper[33068] uvn_detach (UVM_VNODE_CANPERSIST), usecount 1>1
#0 0xfffffffc
#1 rv6xx_asic+0x4
#2 uvn_detach+0x13c
#3 uvm_unmap_detach+0x1a4
#4 uvm_map_teardown+0x184
#5 uvmspace_free+0x60
#6 uvm_exit+0x30
#7 reaper+0x138
#8 fork_trampoline+0x14
[6] reaper[33068] vrele, usecount 1>0
<empty stack trace>
[7>] c++[58214] vget, usecount 1>2
#0 mtx_enter_try+0x5c
[8] c++[58214] vrele, usecount 2>1
<empty stack trace>
[9] c++[58214] vref, usecount 1>2
<empty stack trace>
panic: vn_lock: v_usecount == 0
Stopped at db_enter+0x24: lwz r11,12(r1)
TID PID UID PRFLAGS PFLAGS CPU COMMAND
308217 72745 21 0x2 0 0 c++
*260882 89598 0 0x14000 0x200 1K pagedaemon
db_enter() at db_enter+0x20
panic(946dcf) at panic+0x158
vn_lock(7c564249,1b5000) at vn_lock+0x1c4
uvn_io(634fe38c,aa6c04,adc4c0,ffffffff,e4010000) at uvn_io+0x254
uvn_put(830225fc,e7ec7dd4,16881d58,4ec0400) at uvn_put+0x64
uvm_pager_put(0,0,e7ec7d70,184f78,2000000,80000000,0) at uvm_pager_put+0x15c
uvmpd_scan_inactive(0) at uvmpd_scan_inactive+0x224
uvmpd_scan() at uvmpd_scan+0x134
uvm_pageout(6393b378) at uvm_pageout+0x398
fork_trampoline() at fork_trampoline+0x14
end trace frame: 0x0, count: 5
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports. Insufficient info makes it difficult to find and fix bugs.
ddb{1}> x/s version
version: OpenBSD 7.1-current (GENERIC.MP) #0: Thu May 5 15:42:47 CEST
2022\012
[email protected]:/usr/src/sys/arch/macppc/compile/GENERIC.MP\012
ddb{1}> show panic
*cpu1: vn_lock: v_usecount == 0
ddb{1}> trace
db_enter() at db_enter+0x20
panic(946dcf) at panic+0x158
vn_lock(7c564249,1b5000) at vn_lock+0x1c4
uvn_io(634fe38c,aa6c04,adc4c0,ffffffff,e4010000) at uvn_io+0x254
uvn_put(830225fc,e7ec7dd4,16881d58,4ec0400) at uvn_put+0x64
uvm_pager_put(0,0,e7ec7d70,184f78,2000000,80000000,0) at uvm_pager_put+0x15c
uvmpd_scan_inactive(0) at uvmpd_scan_inactive+0x224
uvmpd_scan() at uvmpd_scan+0x134
uvm_pageout(6393b378) at uvm_pageout+0x398
fork_trampoline() at fork_trampoline+0x14
end trace frame: 0x0, count: -10
ddb{1}> show register
r0 0x8d0e64 panic+0x15c
r1 0xe7ec7b60
r2 0
r3 0xadad40 cpu_info+0x4c0
r4 0xae0000 kmemstats+0xf30
r5 0x1
r6 0
r7 0xe7bb9000
r8 0
r9 0
r10 0
r11 0x74438525
r12 0xeb02fdf2
r13 0
r14 0xabf4a0 bcstats
r15 0xadc49c uvmexp
r16 0
r17 0
r18 0
r19 0x1b5000 pf_state_key_setup+0x128
r20 0x1000 tlbdsmsize+0xf18
r21 0x1000 tlbdsmsize+0xf18
r22 0xa8c898 netlock
r23 0xe4010000
r24 0x16881d70
r25 0x16881d74
r26 0x928812 pppdumpm.digits+0xad39
r27 0
r28 0
r29 0xadb000 cpu_info+0x780
r30 0x946dcf cy_pio_rec+0x10be7
r31 0xadc5c8 uvmexp+0x12c
lr 0x22b480 db_enter+0x24
cr 0x48228204
xer 0x20000000
ctr 0x58c120 openpic_splx
iar 0x22b480 db_enter+0x24
msr 0x9032 tlbdsmsize+0x8f4a
dar 0
dsisr 0
db_enter+0x24: lwz r11,12(r1)
ddb{1}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
72745 308217 57159 21 7 0x2 c++
57159 446158 13370 21 3 0x10008a sigsusp sh
23096 466878 97463 21 2 0x2 c++
97463 139100 13370 21 3 0x10008a sigsusp sh
13370 249943 29922 21 3 0x10008a sigsusp make
29922 335336 59934 21 3 0x10008a sigsusp sh
59934 39928 2528 21 3 0x10008a sigsusp make
2528 506458 9831 21 3 0x10008a sigsusp sh
9831 56072 24040 21 3 0x10008a sigsusp make
24040 342964 26238 21 3 0x10008a sigsusp sh
26238 357144 65227 21 3 0x10008a sigsusp make
65227 118161 2826 21 3 0x10008a sigsusp sh
2826 240246 93069 21 3 0x10008a sigsusp make
93069 338270 62099 0 3 0x10008a sigsusp sh
10422 17929 47837 0 3 0x100083 ttyin ksh
47837 119595 1 0 3 0x100080 kqread tmux
55771 268358 1 0 3 0x100083 ttyin getty
62099 469673 9975 0 3 0x10008a sigsusp make
9975 137920 84768 0 3 0x10008a sigsusp make
84768 354889 24042 0 3 0x10008a sigsusp sh
24042 205467 50087 0 3 0x82 piperd perl
50087 291234 93130 0 3 0x10008a sigsusp ksh
93130 51652 49178 0 3 0x9a kqread sshd
64233 112970 1 0 3 0x100098 kqread cron
48762 493360 1 99 3 0x1100090 kqread sndiod
36954 256077 1 110 3 0x100090 kqread sndiod
21197 235373 12997 95 3 0x1100092 kqread smtpd
76171 366226 12997 103 3 0x1100092 kqread smtpd
58380 224234 12997 95 3 0x1100092 kqread smtpd
63933 304525 12997 95 3 0x100092 kqread smtpd
16166 498190 12997 95 3 0x1100092 kqread smtpd
76837 211943 12997 95 3 0x1100092 kqread smtpd
12997 487242 1 0 3 0x100080 kqread smtpd
65810 238008 1 0 3 0x100080 kqread snmpd
42356 298314 1 91 3 0x1000092 kqread snmpd
49178 503796 1 0 3 0x88 kqread sshd
29080 500777 0 0 3 0x14280 nfsidl nfsio
53280 449975 0 0 3 0x14280 nfsidl nfsio
32838 45085 0 0 3 0x14280 nfsidl nfsio
81329 356374 0 0 3 0x14280 nfsidl nfsio
45144 447675 1 0 3 0x100080 kqread ntpd
60646 455666 70819 83 3 0x100092 kqread ntpd
70819 373522 1 83 3 0x1100092 kqread ntpd
19509 515636 13973 74 3 0x1100092 bpf pflogd
13973 510848 1 0 3 0x80 netio pflogd
40896 434773 41458 73 3 0x1100090 kqread syslogd
41458 436564 1 0 3 0x100082 netio syslogd
37683 149129 1 0 3 0x100080 kqread resolvd
20071 371380 11299 77 3 0x100092 kqread dhcpleased
75315 149474 11299 77 3 0x100092 kqread dhcpleased
11299 215364 1 0 3 0x80 kqread dhcpleased
17217 315564 77347 115 3 0x100092 kqread slaacd
59874 184071 77347 115 3 0x100092 kqread slaacd
77347 148845 1 0 3 0x100080 kqread slaacd
26903 255857 0 0 3 0x14200 bored smr
78440 242464 0 0 3 0x40014200 idle1
16417 478008 0 0 2 0x14200 zerothread
83115 161919 0 0 3 0x14200 aiodoned aiodoned
61571 466387 0 0 3 0x14200 syncer update
73191 368886 0 0 3 0x14200 cleaner cleaner
33068 18520 0 0 3 0x14200 reaper reaper
*89598 260882 0 0 7 0x14200 pagedaemon
21064 264578 0 0 3 0x14200 usbtsk usbtask
25745 50139 0 0 3 0x14200 usbatsk usbatsk
91456 304724 0 0 3 0x14200 bored sensors
10351 234855 0 0 3 0x14200 bored softnet
35714 218667 0 0 3 0x14200 bored softnet
66962 282105 0 0 3 0x14200 bored softnet
80858 283125 0 0 3 0x14200 bored softnet
61652 140419 0 0 3 0x14200 bored systqmp
97773 395380 0 0 3 0x14200 bored systq
47231 351239 0 0 3 0x40014200 bored softclock
30935 364905 0 0 3 0x40014200 idle0
1 508653 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{1}> wh show uvm
Current UVM status:
pagesize=4096 (0x1000), pagemask=0xfff, pageshift=12
500884 VM pages: 180292 active, 170443 inactive, 1 wired, 40699 free (0 zero)
min 10% (25) anon, 10% (25) vnode, 5% (12) vtext
freemin=16696, free-target=22261, inactive-target=124913, wired-max=166961
faults=976376027, traps=0, intrs=1189497, ctxswitch=14658192 fpuswitch=3394821
softint=8247320, syscalls=1395354643, kmapent=10
fault counts:
noram=0, noanon=0, noamap=0, pgwait=0, pgrele=0
ok relocks(total)=634857(637021), anget(retries)=786676302(0),
amapcopy=61156694
neighbor anon/obj pg=69244488/144253562, gets(lock/unlock)=50083018/638017
cases: anon=784838885, anoncow=1837417, obj=43295388, prcopy=6784470,
przero=139619866
daemon and swap counts:
woke=4, revs=1, scans=24198, obscans=24008, anscans=0
busy=0, freed=24007, reactivate=190, deactivate=0
pageouts=1, pending=0, nswget=0
nswapdev=1
swpages=589823, swpginuse=0, swpgonly=0 paging=0
kernel pointers:
objs(kern)=0xae0ca0