> issuing multiple outstanding > messages is how protocols like aoe, pcie, etc. get speed. writes are posted. > > the question for me is how does one make this easy and natural. one way > is to allow the mnt driver to issue multiple concurrent reads or writes for > the same i/o. another would be to use a system call ring to allow programs > to have an arbitrary number of outstanding system calls.
The latter is the "windowing" feature that I seem to recall was first introduced in HDLC or thereabouts (I'm no academic, I discovered this feature many years after its invention). But in those days multithreading wasn't an option, maybe now it is possible to consolidate both approaches into a single concept? Both resemble Inferno (Acme?) channels to me. ++L