Whamcloud - gitweb
LU-10894 dom: per-resource ELC for WRITE lock enqueue 36/34736/2
authorMikhail Pershin <mpershin@whamcloud.com>
Mon, 22 Apr 2019 13:05:00 +0000 (16:05 +0300)
committerOleg Drokin <green@whamcloud.com>
Sat, 1 Jun 2019 03:55:17 +0000 (03:55 +0000)
commit16c156c3218b9dea5a7cd91c12278a608d278c54
tree0d3796e62e958bfeb890310235dc4a901defad30
parent004b80da5c4b2a7cf4f4885b43c9edec76cd2493
LU-10894 dom: per-resource ELC for WRITE lock enqueue

Improve client write lock enqueue by doing ELC for any
read lock on the same resource. This helps with read/write
access, e.g. compilebench shows ~10% better results with
about 45% less ldlm cancel RPCs.

In mdc_enqueue_send() collect resource unused read locks
and pack them into enqueue request.

The ldlm_cancel_resource_local() is changed also to don't
skip DOM lock if it is set in policy explicitly

Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I06ece95d837495e2e970ce670db61ba0aa4e1ab4
Reviewed-on: https://review.whamcloud.com/34736
Tested-by: Jenkins
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/ldlm/ldlm_request.c
lustre/mdc/mdc_dev.c
lustre/mdc/mdc_internal.h
lustre/mdc/mdc_reint.c