summaryrefslogtreecommitdiff
path: root/kernel/iomem.c
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2020-04-15 00:39:50 +0300
committerJens Axboe <axboe@kernel.dk>2020-04-14 19:16:59 -0600
commit31af27c7cc9f675d93a135dca99e6413f9096f1d (patch)
treefb117c1957897b8eff97aec74593fb86c810e69f /kernel/iomem.c
parentb55ce732004989c85bf9d858c03e6d477cf9023b (diff)
io_uring: don't count rqs failed after current oneio_uring-5.7-2020-04-17
When checking for draining with __req_need_defer(), it tries to match how many requests were sent before a current one with number of already completed. Dropped SQEs are included in req->sequence, and they won't ever appear in CQ. To compensate for that, __req_need_defer() substracts ctx->cached_sq_dropped. However, what it should really use is number of SQEs dropped __before__ the current one. In other words, any submitted request shouldn't shouldn't affect dequeueing from the drain queue of previously submitted ones. Instead of saving proper ctx->cached_sq_dropped in each request, substract from req->sequence it at initialisation, so it includes number of properly submitted requests. note: it also changes behaviour of timeouts, but 1. it's already diverge from the description because of using SQ 2. the description is ambiguous regarding dropped SQEs Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'kernel/iomem.c')
0 files changed, 0 insertions, 0 deletions