On Fri, Sep 18, 2015 at 02:27:12PM +0000, Porosanu Alexandru wrote:
Well, the HW has less than the whole RAM for backlogging requests, it has the # of available backlogging requests slots.
Then it will start dropping, just like in the out-of-mem case.
OK I think that's where our misunderstanding is. For a backlogged
request you do not give it to the hardware immediately. In fact
a request should only be backlogged when the hardware queue is
completely full. It should stay in a software queue until the
hardware has space for it. When that happens you move it onto
the hardware queue and invoke the completion function with err
set to -EINPROGRESS. This tells the caller to enqueue that it
may enqueue more requests.
Cheers,
--
Email: Herbert Xu [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt