I have an application with two threads sharing a memory variable,
one continuously writing, one continuously reading.

Because of the way my system works, the reader can tolerate reading
stale data, but it should not stall on memory reads (the line
is on the local cache for the reader, just might be invalidated).

I was wondering if there is some way (either generic or
x86-specific, either simple or convoluted, possibly using
multiple versions of the shared variable in different cache
lines) to make sure that reads never stalls (or, equivalently,
let me read stale values from the cache) ?

I have done some experiments and on a single-socket machines
the stallled reads take some 50ns; on a dual socket machine
the stall penalty grows to about 200ns.

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to