User Details
- User Since
- Jun 4 2014, 10:38 AM (592 w, 4 d)
Mon, Oct 6
Sun, Oct 5
Sat, Oct 4
Fri, Oct 3
- remove goto labels
- sort includes
- fix a bug found by pho@ in the lock smr patch: after the lock is acquired, doomed handling has to be the same as with the interlock-protected routine
Wed, Oct 1
- patch up commentary
- remove a debug tunable
- upload the entire thing
- also drop ref drip around unlock
- doomed asserts
- cosmetic fixups to null_hashget_locked
- null_lock using smr
Tue, Sep 30
I think this is turning into a bikeshed, so just do what you feel.
The above may be true and the pointer may be populated depending on when you got the the inode. I would just add something like "->i_din2 is NULL, some information omitted" or compatible.
maybe print that the pointer is NULL?
Mon, Sep 29
Sun, Sep 28
I don't have an opinion on the functionality, but the implementation looks avoidably slow.
Sat, Sep 27
Thu, Sep 25
Wed, Sep 24
Tue, Sep 23
- patch up some comments
- add the missing acq fence
Mon, Sep 22
vput et al are the primary consumers of vdrop.
Huh, so happens vtryrecycle unlocks and then vdrops, so it happens to not run into the problem after all. General remark stands though.
- make new fields static
- expand commentary
This is finished, it just has extra parts to trigger defered drop + a printf that it happened. I'll upload a cleaned up variant shortly.
Fri, Sep 19
If your idea boils down to adding some form of lock drain to iput_final, it's not going to work.
See the patch I posted in D52628 .
So I think the patch proposed here is just a minor loss in perf and only fixes some of the problem.
Suppose the vnode is doomed, v_usecount is 2, v_holdcnt is 1 and both usecount holders are issuing vput.
Suppose both are read-locking it.
So here is the situation as I understand it:
note vnodes were not freeable at all and that holding the lock to maintain liveness is probably highly entrenched in the layer
Thu, Sep 18
Maybe I missed something in the previous comments.
Note I proposed a fix to the panic which is orthogonal to the vput change.
Wed, Sep 17
The code can go back to doing unlock followed by unref. The crux of the race was a half-constructed vnode hanging out in the hash and being unexpectedly used by someone else.
Sat, Sep 13
fwiw I can confirm offcpu time is gone, instead almost all of it spent contending on pmap pv locks.
Jul 23 2025
I also note I have been hogging the few ok zoo machines for way too long. All of it is pretty old now, but flix1 is still very much usable even for this particular work. I'm happy to free up the box provided it will be put into good use. It has some crap set up there for my own tests, but all of that can be rm -rf'ed no problem.
I looked into this in the meantime(tm).
Jul 16 2025
Mar 28 2025
Per my above comment the first crash does not look like it is cred-related -- something is going haywire with socket handling instead.
I agree this is unlikely to be related to the panic reported in PR, given the first stacktrace I think something is going wrong in the network stack and after that all bets are off. I would probably start with checking what's the crash site code-wise. The 'Mar 7 09:38:18 pf-cam2 kernel: freeing uidinfo: uid = 884, sbsize = 115664' suggests something is not properly torn down.
Mar 23 2025
can you instead sort the files and require the ordering that smaller is addr is locked first? a dedicated routine could do it
Mar 19 2025
Looking at if_unlink_ifnet:
Mar 18 2025
Mar 6 2025
Feb 10 2025
Sep 14 2024
keeping some % of reserve for root would be good,, equivalent to _falloc_noinstall
this can __assert_unreachable which will in production kernels will tell the compiler the 2 options are the only valid ones