From 69eb7b89c7f36ec6a8970e87fc8859207f4b9c0c Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Mon, 11 Mar 2024 10:42:24 +0300 Subject: [PATCH] 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 --- lustre/osc/osc_page.c | 2 ++ 1 file changed, 2 insertions(+) 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); -- 1.8.3.1