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 Fri, Jul 15, 2022 at 03:18:04PM +0000, Joel Fernandes wrote:
> 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.

Given that I am not testing on hexagon, I will let you fix this one on
the next rev.  If someone out there is testing this branch on hexagon,
they should feel free to apply your patch locally.  ;-)

							Thanx, Paul

> ---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