&gt; While you were context-switching into this OS server you missed the chance to do 10 IOPs give or take an order of magnitude.<p>I&#x27;ll believe that when I see real numbers.<p>A system call takes something like 54 ns on my laptop.  With pwritev or similar, you can do quite a few IOs in a system call.  (Of course, pwritev is slower than 54 ns, but that&#x27;s not a fundamental constraint.)<p>An IO requires making the IO durable if you want it to be reliably persistent.  So you have to do CLWB; SFENCE; PCOMMIT; SFENCE or whatever magic sequence you&#x27;re using (depends on IO type and use of nontemporal instructions, (and you have to have hardware that supports that).  If you&#x27;re using NVMe instead of NVDIMMs, then you have to do an IO to sync with the controller, and that IO will be uncached.<p>Uncached IO is <i>slow</i>.  PCOMMIT has unknown performance since no one has the hardware yet.  System calls are fast.