>>> (2) Use uninterruptible memory operations in per CPU memory, >>> aggregate passively on demand. > Problem is that (2) is natively only present on CISC platforms in > general. Most RISC platforms can't do RMW in one instruction.
(2) says "uninterruptible", not "one instruction", though I'm not sure how large the difference is in practice. (Also, some CISC platforms provide atomic memory RMW operations only under annoying restrictions; for example, I think the VAX has only three sorts of RMW memory accesses that are atomic with respect to other processors: ADAWI (16-bit-aligned 16-bit add), BB{SS,CC}I (test-and-{set/clear} single bits), and {INS,REM}Q{H,T}I (queue insert/remove at head/tail).) /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B