Whamcloud - gitweb
LU-13131 osc: Always send all HP RPCs requests 57/38057/2
authorOleg Drokin <green@whamcloud.com>
Fri, 7 Feb 2020 01:21:43 +0000 (20:21 -0500)
committerOleg Drokin <green@whamcloud.com>
Tue, 7 Apr 2020 17:18:33 +0000 (17:18 +0000)
that are resulting from lock cancel activity.

Change-Id: I4007167f0f39b0699e977c14bd160f475d8288ad
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/38057
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Wang Shilong <wshilong@ddn.com>
lustre/osc/osc_cache.c

index bf183d4..5a829cd 100644 (file)
@@ -2155,7 +2155,12 @@ __must_hold(&cli->cl_loi_list_lock)
 
                OSC_IO_DEBUG(osc, "%lu in flight\n", rpcs_in_flight(cli));
 
 
                OSC_IO_DEBUG(osc, "%lu in flight\n", rpcs_in_flight(cli));
 
-               if (osc_max_rpc_in_flight(cli, osc)) {
+               /* even if we have reached our max in flight RPCs, we still
+                * allow all high-priority RPCs through to prevent their
+                * starvation and leading to server evicting us for not
+                * writing out pages in a timely manner LU-13131 */
+               if (osc_max_rpc_in_flight(cli, osc) &&
+                   list_empty(&osc->oo_hp_exts)) {
                        __osc_list_maint(cli, osc);
                        break;
                }
                        __osc_list_maint(cli, osc);
                        break;
                }