Posts
102
Following
50
Followers
212
@jwseigh As always, much depends on your exact implementation. But what if the RSEQ reader picked up the pointer, took an unrelated long-running interrupt, took (and responded to) the membarrier IPI, then took another unrelated long-running interrupt? I do not believe that this would cause RSEQ to retry (though I might be missing something).

In that scenario, how is the updater to know that it should avoid reclaiming the object whose pointer the RSEQ reader will eventually store into its hazard pointer?

(I get the blog post: If you can uninterruptibly load and store the pointer, then membarrier() will either force the reader to see the new pointer or force the updater to see the updated hazard pointer.
I do not understand how your RSEQ trick works. Not yet, anyway.)
1
0
0
@jwseigh If the vCPU preemption also blocks the guest-OS-level membarrier() call, perhaps you are OK?
1
0
0
@jwseigh Hmmm, interesting... Does RSEQ now fail in response to vCPU preemption?
1
0
0
@jwseigh I thought that membarrier only guaranteed ordering, but perhaps you have a trick that I missed.
1
0
0
@jwseigh Nice! But if I may ask, how does this deal with the possibility that a updater on some other thread concurrently changed the pointer that you are trying to protect?
1
0
0
Today I learned that gawk has a "--debug" command-line argument, and has had for more than ten years. In my defense, I using awk for about 30 years prior to that...
1
3
11
@Louson Never forget: It is easier to circle the square than to square the circle.
0
0
0
@jwseigh Rightly or wrongly, this site says tau is 2π. https://en.wikipedia.org/wiki/Tau_(mathematics)

Me, I glanced too quickly at the first occurrence of 𝜏 (tau) in this thread and mistook it for the Roman-alphabet letter "r". ;-)
0
0
0
@tommythorn Indeed, 2π day and 𝜏 day are one and the same! But I suspect that more people would prefer to eat two pies than would prefer to eat a tau. ;-)
0
0
1
@morgan I would attempt a witty response, but I would probably end up sounding like a square. ;-)
0
0
1
Happy 2π day to those who celebrate it!
4
3
10
@brauner Fair enough! But I might nor might not remember that you forgot. ;-)
0
0
1
@brauner RCU uses many mutexes so that RCU users don't have to? ;-)
1
0
3
@sima @brauner @jann @vbabka RCU is benign? May I please get that in writing? ;-)
1
0
2
@ljs @jann That does sound like it might require unusually disciplined users! But what is it currently used for?
0
0
2
@ljs It is amazing how destructive unanticipated use cases can be. Destructive, but necessary...
0
0
2
@brauner @jann It has been a very long time since I have seen a local filesystem operation take very long, so no argument here!
0
0
1
@brauner @jann Use AI to find the xfstest of interest? (OK, OK, I will get my coat...)
0
0
2
@jann @brauner As always, the big question is "what would have detected the bug earlier and more deterministically?" Finding the extreme corner cases is inherently hard, because that is exactly why we call them "extreme".
1
0
2
@jann @brauner Or to recover from the next timeout being unduly delayed, for that matter. That said, in my experience, most timeout handlers unconditionally do their work. On the other hand, I could easily believe that unconditional timeout handlers are much less likely to come to your attention. ;-)
0
0
2
Show older