@shachaf@y.la avatar

shachaf

@shachaf@y.la

This profile is from a federated server and may be incomplete. Browse more on the original instance.

shachaf, to random
@shachaf@y.la avatar

Is there a way to convince clang/LLVM to do 16-byte atomic loads with SSE instead of lock cmpxchg16b?

shachaf, to random
@shachaf@y.la avatar

I didn't realize Fib_(n+m) = Fib_(n-1) Fib_(m-1) + Fib_n Fib_m. That's a nice property of linear recurrences!

shachaf, to random
@shachaf@y.la avatar

How to think of the trace of a linear map as connecting its output back to its own input https://math.stackexchange.com/q/2762669

shachaf, to random EN
@shachaf@y.la avatar

In practice, is it reasonable to sometimes do an atomic exchange/store on 16 bits of a 32-bit value, and sometimes do CAS on the whole value? I assume it's not incorrect, but will the store buffer get mad at me and use some awful slow path? What about if the former case is rare?

shachaf, to random EN
@shachaf@y.la avatar

Part of an email I wrote last year. I still think there are a lot of interesting unexplored points in this space!

shachaf, to random EN
@shachaf@y.la avatar

Is there a good overview reference for concurrent memory reclamation -- potential issues (ABA, use-after-free), and approaches people use (GC, epochs, hazard pointers, RCU-style read locks, etc.) and tradeoffs between them?

shachaf, to random EN
@shachaf@y.la avatar

Apparently even asm(""); is treated as some sort of compiler barrier for clang, causing it to spill registers to memory.
https://godbolt.org/z/G3c778WqE

shachaf, to random EN
@shachaf@y.la avatar

When people advertise software as "written in X", I usually take that as a slightly negative signal (you don't have something more interesting than the language you used?). The main exception is Go, where it means there's a good chance they ship a simple static binary.

shachaf, to random
@shachaf@y.la avatar

If you find yourself acquiring a lock just because the condition variable API requires you to have a lock, and not using it anywhere else, you should probably reconsider what you're doing.

shachaf, to random EN
@shachaf@y.la avatar

An interesting concurrency operation that @tavianator mentioned is "acquire a lock and immediately release it". I've seen this in another context before.
I sort of wonder whether this is trying to be some other serialization operation, or what the simplest version of this is.

shachaf, to random EN
@shachaf@y.la avatar

I liked @ptrschmdtnlsn's explanation for what's going on with Fibonacci vs. Galois LFSRs: Say you want to compute Fibonacci numbers (or some other linear recurrence). You have an infinite array of mutable cells, F[i], zero-initialized except F[0] = F[1] = 1

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • magazineikmin
  • InstantRegret
  • Durango
  • thenastyranch
  • Youngstown
  • rosin
  • slotface
  • mdbf
  • khanakhh
  • ethstaker
  • JUstTest
  • everett
  • GTA5RPClips
  • Leos
  • cubers
  • ngwrru68w68
  • osvaldo12
  • tester
  • tacticalgear
  • modclub
  • anitta
  • normalnudes
  • provamag3
  • lostlight
  • All magazines