From: Alex Zhuravlev Date: Mon, 11 Mar 2024 07:42:24 +0000 (+0300) Subject: LU-17630 osc: add cond_resched() to osc_lru_shrink() X-Git-Tag: 2.15.63~45 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=69eb7b89c7f36ec6a8970e87fc8859207f4b9c0c;p=fs%2Flustre-release.git LU-17630 osc: add cond_resched() to osc_lru_shrink() osc_lru_shrink() may need to handle lots of pages and this way can block scheduling for long. add couple cond_resched() to prevent kernel warnings and other thread's starvation. Signed-off-by: Alex Zhuravlev Change-Id: I862c568ac777c0b929a1ffb61e246b079aee6718 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54346 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Patrick Farrell Reviewed-by: Oleg Drokin Reviewed-by: Andreas Dilger --- diff --git a/lustre/osc/osc_page.c b/lustre/osc/osc_page.c index 7c54153..b97d4f9 100644 --- a/lustre/osc/osc_page.c +++ b/lustre/osc/osc_page.c @@ -613,6 +613,7 @@ long osc_lru_shrink(const struct lu_env *env, struct client_obd *cli, cl_io_fini(env, io); cl_object_put(env, clobj); clobj = NULL; + cond_resched(); } clobj = tmp; @@ -668,6 +669,7 @@ long osc_lru_shrink(const struct lu_env *env, struct client_obd *cli, cl_io_fini(env, io); cl_object_put(env, clobj); + cond_resched(); } atomic_dec(&cli->cl_lru_shrinkers);