Re: [PATCH v3 0/5] Implement call_rcu_lazy() and miscellaneous fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 14, 2022 at 03:21:31PM -0700, Paul E. McKenney wrote:
> On Thu, Jul 14, 2022 at 01:51:54PM -0700, Paul E. McKenney wrote:
> > On Wed, Jul 13, 2022 at 09:32:32PM +0000, Joel Fernandes (Google) wrote:
> > > Hello!
> > > 
> > > Please find the next improved version of call_rcu_lazy() attached.  The main
> > > difference between the previous versions is that:
> > > - In v2 rcu_barrier is fixed to not hang (I found this to be due to a missing
> > >   GP thread wakeup), now I am limiting this wake up only to rcu_barrier() as
> > >   requested by Paul.
> > > - Fixed checkpatch and build robot issues.
> > > - Some more changes to 'lazy' parameter passing and consolidation of segcblist
> > >   functions.
> > > - more testing via rcutorture and rcuscale.
> > 
> > Thank you!  What I am going to do is to pull these into an experimental
> > not-for-mainline branch and run the usual set of rcutorture tests.
> > I will then take a look at the patches.
> 
> And there were a few conflicts with the nocb patch series in -rcu.
> The allegedly conflict-resolved series is here: joel.2022.07.14a
> Please let me know if I messed something up.

Thanks, it looks Ok. There is one robot fix for hexagon's arch where I think
TREE_RCU is disabled, could you apply the diff below to patch 1/5 ?

Or, I can also just keep it in my version of 1/5 to go out with the next rev.

---8<-----------------------

diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h
index c358387fd223..aa3243e49506 100644
--- a/kernel/rcu/rcu.h
+++ b/kernel/rcu/rcu.h
@@ -464,6 +464,14 @@ enum rcutorture_type {
 	INVALID_RCU_FLAVOR
 };
 
+#if defined(CONFIG_RCU_LAZY)
+unsigned long rcu_lazy_get_jiffies_till_flush(void);
+void rcu_lazy_set_jiffies_till_flush(unsigned long j);
+#else
+static inline unsigned long rcu_lazy_get_jiffies_till_flush(void) { return 0; }
+static inline void rcu_lazy_set_jiffies_till_flush(unsigned long j) { }
+#endif
+
 #if defined(CONFIG_TREE_RCU)
 void rcutorture_get_gp_data(enum rcutorture_type test_type, int *flags,
 			    unsigned long *gp_seq);
@@ -475,14 +483,6 @@ void do_trace_rcu_torture_read(const char *rcutorturename,
 void rcu_gp_set_torture_wait(int duration);
 void rcu_force_call_rcu_to_lazy(bool force);
 
-#if defined(CONFIG_RCU_LAZY)
-unsigned long rcu_lazy_get_jiffies_till_flush(void);
-void rcu_lazy_set_jiffies_till_flush(unsigned long j);
-#else
-static inline unsigned long rcu_lazy_get_jiffies_till_flush(void) { return 0; }
-static inline void rcu_lazy_set_jiffies_till_flush(unsigned long j) { }
-#endif
-
 #else
 static inline void rcutorture_get_gp_data(enum rcutorture_type test_type,
 					  int *flags, unsigned long *gp_seq)



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux