2009/9/22 ron minnich <rminn...@gmail.com>:
> So, basically, the way I see it is, grep proc gets an interrupt,
> kernel will try to flush RPCs which we initiated, we drop the (we
> think) flushed rpc struct onto the rpcfree list, but the reply from
> the server is still in flight. We reuse the rpc from rpcfree list, we
> send out a new T, with the same tag as the previous one which we think
> we flushed, we get the reply from the earlier RPC, tags match, R does
> not match T, bad day.

surely the correct way to go about this (caveat: i haven't looked at the code)
is to drop the rpc struct onto the rpcfree list only when the Rflush is
received?

from experience with writing heavily used 9p services, getting flush properly
right is a bitch.

Reply via email to