[PATCH BUGFIX 0/3] null_blk: fix throughout losses and hangs

From: Paolo Valente
Date: Mon Nov 02 2015 - 09:49:09 EST

while doing some tests with the null_blk device driver, we bumped into
two problems: first, unjustified and in some cases high throughput
losses; second, actual hangs. These problems seem to be the
consequence of the combination of three causes, and this patchset
introduces a fix for each of these causes. In particular, changes
. an apparent flaw in the logic with which delayed completions are
implemented: this flaw causes, with unlucky but non-pathological
workloads, actual request-completion delays to become arbitrarily
larger than the configured delay;
. the missing restart of the device queue on the completion of a request in
single-queue non-delayed mode;
. the overflow of the request-delay parameter, when extremely high values
are used (e.g., to spot bugs).

To avoid possible confusion, we stress that these fixes *do not* have
anything to do with the problems highlighted in [1] (tests of the
multiqueue xen-blkfront and xen-blkback modules with null_blk).

You can find more details in the patch descriptions.

Paolo and Arianna

[1] https://lkml.org/lkml/2015/8/19/181

Arianna Avanzini (2):
null_blk: guarantee device restart in all irq modes
null_blk: change type of completion_nsec to unsigned long

Paolo Valente (1):
null_blk: set a separate timer for each command

drivers/block/null_blk.c | 94 +++++++++++++++++-------------------------------
1 file changed, 33 insertions(+), 61 deletions(-)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/