Whamcloud - gitweb
LU-17630 osc: add cond_resched() to osc_lru_shrink()
authorAlex Zhuravlev <bzzz@whamcloud.com>
Tue, 9 Apr 2024 10:35:00 +0000 (13:35 +0300)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 27 Apr 2024 22:27:32 +0000 (22:27 +0000)
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.

Lustre-change: https://review.whamcloud.com/54346
Lustre-commit: 69eb7b89c7f36ec6a8970e87fc8859207f4b9c0c

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I862c568ac777c0b929a1ffb61e246b079aee6718
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/54708
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/osc/osc_page.c

index 633072d..435a30a 100644 (file)
@@ -621,6 +621,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;
@@ -676,6 +677,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);