]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd/cache/pwl: fix bug of flush request blocked by deferd IO 40339/head
authorYin Congmin <congmin.yin@intel.com>
Thu, 18 Mar 2021 13:33:07 +0000 (21:33 +0800)
committerJason Dillaman <dillaman@redhat.com>
Tue, 23 Mar 2021 13:54:47 +0000 (09:54 -0400)
commite62d891df8b2a37f1f032aced5054e038fb6b7ab
tree3bdc1b1bc3ff19c1a54ef56b5ce2466d80089e25
parent24acb23a0e1d3519bb80d1675653c414ae7b47fc
librbd/cache/pwl: fix bug of flush request blocked by deferd IO

Flush requests do not need to be queued behind the defer_io queue,
should be issued immediately. Otherwise, there will be a deadlock
scenario in which dirty data is waiting for flush req, flush req is
waiting for defer_io empty, and defer_io is waiting for dirty data
persistence to release space. So this sometimes occur when the cache
is small but the IO is large or the queue depth is large.

Signed-off-by: Yin Congmin <congmin.yin@intel.com>
(cherry picked from commit 6583182f624386bfbb7375fb227dfb77b0a3209d)
src/librbd/cache/pwl/AbstractWriteLog.cc