I switched from Windows to Linux not directly because of the most recent shit show with Recall (though it's part of the general trend). But it sure does make me feel even better about making that choice when I'm struggling with some minor annoyance on Linux.
After ~4 years, I actually handled poisoned locks for the first time! I have a sequence number + 2 copies thing for lock-free snapshots, but writers must serialise. The write mutex doesn't really protect any invariant, except that we mustn't interleave write sequences. Interruption is fine, as long as the interrupted writer never resumes.
@tobinbaker@pkhuong I've been trying to remember a paper and for a second (until I flipped through it) I thought it might have been this one. Maybe y'all can help me. It was some sort of paper on a general approach to implementing wait-free helping which involved deterministic replays of a load/store-level log (either to help a non-dead thread or to take over for a dead thread).
@amonakov@svat Yeah, I remember someone (it might even have been you) pointed that out to me, maybe when that original Knuth thread on twitter happened. That was definitely news to me at the time.
If I had to guess, it's a pass ordering issue related to the jump threading pass. If anyone who knows LLVM better wants to take a look, be my guest: https://rust.godbolt.org/z/Yh5f3195T
Turns out intermittently restarting a server with stochastic service times operating on a queue can improve service times and fairness. I love a good, simple and counter intuitive solution.
“To implement resetting, imagine this server being stopped intermittently and then restarted – thus, jobs whose service has been reset are now assigned fresh service times.”
Playing with "overflow byte" approach to metadata+simd augmented hashtable design.
I've read that this is part of the F14 design, but I found the explanations for Boost's new unordered_flag_map to be what got the point across.
I implemented the core of this in my own way on top of my hashtable -- rather than stealing a byte from the metadata the way Boost does, I just tack on an array of 1-byte-per-group "probe markers" (a term that makes more sense to me than "overflow byte".
@chandlerc It sounds like a Bloom filter from your description. Specifically, those bits are a Bloom filter for the keys that aren't in the group itself (since the group was already filled) but whose probe sequence goes through that group?
I wonder how long it will be before we hear concrete rumors about APX and AVX10 based chips from Intel. The closest thing I heard to a concrete rumor was that the first APX-based product was in the 2028 roadmap.
@dougall@rygorous@chipsandcheese Fabian explained that to me a while back and he pointed to a chapter in one of the Intel manuals which had a surprising amount of detail IIRC.