I think I need to stop sending mails before triple-checking things! So sorry for the multiple mails again.
Dominique Martinet wrote on Thu, Jul 25, 2013 : > [rdma_cancelled] > There is one problem though - if the server handles the original request > before getting the flush, the receive buffer will be consumed and we > won't send a new one, so we'll starve the reception queue. > I'm afraid I don't have any bright idea there... This still looks correct to me. > While we are on reception buffer issues, there is another problem with > the queue of receive buffers, even without flush, in the following > scenario: > - post a buffer for tag 0, on a hanging request > - post a buffer for tag 1 > - reply for tag 1 will come on buffer from tag 0 > - post another request with tag 1.. the buffer already is in the queue, > and we don't know we can post the buffer associated with tag 0 back. It actually looks like the reply buffers are swapped properly - taken out of the req struct into the context on send, then given back to the appropriate req on reception, so on normal operation there's no problem with what I described - sorry for crying wolf. > I haven't found how to reproduce this perfectly yet, but a dd with > blocksize 1MB and one with blocksize 10B in parallel brought the > mountpoint down (and the whole server was completely unavailable for the > duration of the dd - TCP sessions timed out, I even got IO errors on the > local disk :D) I need to run more tests to explain what happens with the two dds, but it's easily reproductible with debugs on, I guess that helps with a race somewhere. Regards, -- Dominique Martinet -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/