CHROMIUM: rcu: Disable lazy if call_rcu() called when GPs expedited
During suspend, we see failures to suspend 1 in 300-500 suspends. Looking closer, it appears that we are queuing lazy callbacks even though rcu_gp_is_expedited(). These delays appear to not be very welcome by the suspend/resume code as evidenced by these occasional suspend failures. This commit therefore checks if rcu_gp_is_expedited() and ignores the lazy hint if so. Ignoring the lazy hint if rcu_gp_is_expedited() makes the 3000 suspend/resume cycles pass reliably on a 12th gen 12-core Intel CPU. [ This is a temporary patch as it is a critical issue that we need to fix in product and the upstream fix will take some time. Once upstreamed, we can revert this and land the upstream one. ] BUG=b:263554761 TEST=suspend_stress_test (am from https://patchwork.kernel.org/patch/13094428/) (also found at https://lore.kernel.org/r/20230109221756.1361168-1-joel@joelfernandes.org ) Fixes: 3cb278e7 ("rcu: Make call_rcu() lazy to save power") Change-Id: I55430a6c6cc20f6e09dee45477c485d650e405c3 Signed-off-by:Joel Fernandes (Google) <joel@joelfernandes.org> Signed-off-by:
Parshuram Sangle <parshuram.sangle@intel.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4150549 Auto-Submit: Joel Fernandes <joelaf@google.com> Tested-by:
Joel Fernandes <joelaf@google.com> Reviewed-by:
Ross Zwisler <zwisler@google.com> Commit-Queue: Joel Fernandes <joelaf@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4262372 Reviewed-by:
Joel Fernandes <joelaf@google.com>
Loading
Please sign in to comment