[dm-devel] [PATCH v2 11/13] dm-mpath: Micro-optimize the hot path

Mike Snitzer snitzer at redhat.com
Thu Apr 27 20:39:48 UTC 2017


On Thu, Apr 27 2017 at  1:11P -0400,
Bart Van Assche <bart.vanassche at sandisk.com> wrote:

> Instead of checking MPATHF_QUEUE_IF_NO_PATH,
> MPATHF_SAVED_QUEUE_IF_NO_PATH and the no_flush flag to decide whether
> or not to push back a request if there are no paths available, only
> clear MPATHF_QUEUE_IF_NO_PATH in queue_if_no_path() if no_flush has
> not been set. The result is that only a single bit has to be tested
> in the hot path to decide whether or not a request must be pushed
> back and also that m->lock does not have to be taken in the hot path.
> 
> Signed-off-by: Bart Van Assche <bart.vanassche at sandisk.com>
> Reviewed-by: Hannes Reinecke <hare at suse.com>

This patch was very demanding to review.. all that old must_push_back()
code was very tedious.  Happy to see it go.  BUT I'm left nervous that
something might regress.  Not because of something overlooked (though
that could happen).. just that its a particularly delicate portion of
the mpath target's suspend/resume handling.

Kudos to you for tackling this.  Staged in dm-4.12 for 4.12 inclusion
(will push it out once I go back over what I've staged)




More information about the dm-devel mailing list