Whamcloud - gitweb
LU-17630 osc: add cond_resched() to osc_lru_shrink() 46/54346/6
authorAlex Zhuravlev <bzzz@whamcloud.com>
Mon, 11 Mar 2024 07:42:24 +0000 (10:42 +0300)
committerOleg Drokin <green@whamcloud.com>
Tue, 23 Apr 2024 19:55:59 +0000 (19:55 +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.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I862c568ac777c0b929a1ffb61e246b079aee6718
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54346
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <patrick.farrell@oracle.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/osc/osc_page.c

index 7c54153..b97d4f9 100644 (file)
@@ -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);