[Devel] [PATCH rh7 0/4] ploop: fix free_list starvation
Maxim Patlasov
mpatlasov at virtuozzo.com
Mon Jul 11 21:56:39 PDT 2016
The first patch of the patch-set fixes a minor unrelated
problem. It is trivial.
The remaining three patches try to solve the following
problem:
Under high load, and when push_backup is in progress, it is
possible that all preq-s from free_list will be consumed by
either incoming bio-s waiting for backup tool out-of-band
processing, or some incoming bio-s blocked on the former ones.
Then, ploop reaches maximum possible preq->active_reqs and
goes to sleep waiting for something. But this something is
actually the backup tool who is blocked on reading from
the ploop device. Deadlock.
See per-patch descriptions for details.
https://jira.sw.ru/browse/PSBM-49454
---
Maxim Patlasov (4):
ploop: fix fsync_reqs accounting
ploop: introduce plo->free_qlen counter
ploop: introduce plo->blockable_reqs counter
ploop: fix free_list starvation
drivers/block/ploop/dev.c | 107 ++++++++++++++++++++++++++++++++-----
drivers/block/ploop/io_direct.c | 3 +
drivers/block/ploop/push_backup.c | 74 +++++++++++++++++++++++++-
drivers/block/ploop/push_backup.h | 6 ++
drivers/block/ploop/sysfs.c | 24 ++++++++
include/linux/ploop/ploop.h | 5 ++
6 files changed, 202 insertions(+), 17 deletions(-)
--
Signature
More information about the Devel
mailing list