This series mainly addresses the handling of failing requests. Previously the driver will always retry all requests failed at processing and will always complete the requests if they are past bio submission point.
Using vhost-net and vhost-scsi as a model, we adopt the following approach: - requests failed at processing phase with ENOMEM/EAGAIN are re-tried - requests failed at processing phase with other errors are not reported completed and are not processed further. It is higly likely they are just incorrect - requests failed at status write after the completion are not reported completed This may sometime lead to guests stalling, but the alternatives are always worse. v2: - drop one missed vhost_discard_vq_desc() - break and re-queue the handler instead of continuing when we get EGAIN or ENOMEM Also the patchset improves logging and adds a few sanity checks. https://virtuozzo.atlassian.net/browse/VSTOR-134034 Andrey Zhadchenko (7): drivers/vhost/blk: fix uninitialized variable drivers/vhost/blk: better log errors in vhost-blk drivers/vhost/blk: improve request re-processing drivers/vhost/blk: improve vhostblk_vq_err() usage drivers/vhost/blk: do not complete requests with failed status write drivers/vhost/blk: fail request instead of BUG_ON() drivers/vhost/blk: ensure total request size drivers/vhost/blk.c | 52 +++++++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 16 deletions(-) -- 2.43.5 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
