On Tue, Apr 08, 2025 at 06:05:19PM -0400, Joel Fernandes wrote: > > > On 4/8/2025 4:58 PM, Paul E. McKenney wrote: > > On Tue, Apr 08, 2025 at 08:18:05PM -0000, Joel Fernandes wrote: > >> Hello, Paul, > >> > >> On Tue, 8 Apr 2025 20:16:08 GMT, "Paul E. McKenney" wrote: > >>> This commit adds a new rcutorture.n_up_down kernel boot parameter > >>> that specifies the number of outstanding SRCU up/down readers, which > >>> begin in kthread context and end in an hrtimer handler. There is a new > >>> kthread ("rcu_torture_updown") that scans an per-reader array looking > >>> for elements whose readers have ended. This kthread sleeps between one > >>> and two milliseconds between consecutive scans. > >>> > >>> [ paulmck: Apply kernel test robot feedback. ] > >>> [ paulmck: Apply Z qiang feedback. ] > >>> > >> [...] > >>> + for (i = 0; i < n_up_down; i++) { > >>> + init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, > >>> rand); > >>> + hrtimer_init(&updownreaders[i].rtorsu_hrt, CLOCK_MONOTONIC, > >>> + HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); > >> > >> This will now fail to build and needs the following: I will squash it into > >> my > >> for-next branch into this patch, but let me know if you prefer to provide > >> an > >> update. > > > > Please feel free to squash it in with your "[]" tag like shown above. > > Yep done already. :-) > > > > > As you say, you will be sending them all out soon enough anyway. ;-) > > True. ;-) > > > > > My plan is to rebase on your stack once you finish your first long-form > > round of testing. > > Perfect, my first long-form test should be done by tomorrow AM.
Very good, I have fired off overnight tests on v6.15-rc1. Perhaps a bit more than overnight in one case. ;-) Thanx, Paul > >> Fix build error by converting hrtimer_init to hrtimer_setup, see: > >> > >> https://lore.kernel.org/all/174384280127.31282.2714486346304643188.tip-bot2@tip-bot2/ > >> > >> diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c > >> index 4f0a00a8bdee..14a22ef3b56f 100644 > >> --- a/kernel/rcu/rcutorture.c > >> +++ b/kernel/rcu/rcutorture.c > >> @@ -2480,9 +2480,8 @@ static int rcu_torture_updown_init(void) > >> } > >> for (i = 0; i < n_up_down; i++) { > >> > >> init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, rand); > >> - hrtimer_init(&updownreaders[i].rtorsu_hrt, CLOCK_MONOTONIC, > >> - HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); > >> - updownreaders[i].rtorsu_hrt.function = > >> rcu_torture_updown_hrt; > >> + hrtimer_setup(&updownreaders[i].rtorsu_hrt, > >> rcu_torture_updown_hrt, CLOCK_MONOTONIC, > >> + HRTIMER_MODE_REL | HRTIMER_MODE_SOFT); > >> torture_random_init(&updownreaders[i].rtorsu_trs); > >> > >> init_rcu_torture_one_read_state(&updownreaders[i].rtorsu_rtors, > >> > >> &updownreaders[i].rtorsu_trs); > >> > >> Thanks. >