Whamcloud - gitweb
LU-13073 osp: don't block waiting for new objects 02/43202/2
authorAlex Zhuravlev <bzzz@whamcloud.com>
Fri, 16 Oct 2020 16:09:04 +0000 (19:09 +0300)
committerOleg Drokin <green@whamcloud.com>
Wed, 5 May 2021 21:23:19 +0000 (21:23 +0000)
commit6a023a8d772b052a70927dc5c8b481072bfe164e
tree64be77471c53b12c587939dcd9e0f14fe53d318a
parent4512bbc4567d9082a01db5d6a2e651054e086260
LU-13073 osp: don't block waiting for new objects

if OST is down, then it's possible that few threads trying
to get already precreated object will get stuck. even worse
that all QoS-based allocations then are serialized by the
single semaphore, even those that wouldn't try to allocate
on failed OST.

the patch introduces noblock flag in the allocation hint
which is passed to OSP. then QoS code tries to allocate
objects in a non-blocking manner.

Lustre-change: https://review.whamcloud.com/40274
Lustre-commit: 2112ccb3c48ccf86aaf2a61c9f040571a6323f9c

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I38e66d7569aefecf800dbc32f1049ac87853439e
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Yingjin Qian <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
Reviewed-on: https://review.whamcloud.com/43202
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/include/dt_object.h
lustre/lod/lod_internal.h
lustre/lod/lod_qos.c
lustre/osp/osp_internal.h
lustre/osp/osp_object.c
lustre/osp/osp_precreate.c
lustre/tests/sanity.sh