Skip to contentSkip to conversation

rcutorture: fix missing function at build time

PATCH In review Luis Claudio R. Goncalves 3 participants 5 messages Mar 2, 2015 – Mar 6, 2015 RCU

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 rcutorture: fix missing function at build time

Hello,

This is a minor issue, but as I seem to have woken up Paul at 4AM with the many beeps from IRC I would feel bad if I did not send this patch to the list. Actually, as that patch has been sitting on my computer for a few days now, i already feel bad :)

rcutorture: fix missing function at build time

Trying to build the rcutorture module on 3.18.7-rt2 ends up on:

ERROR: "rcu_force_quiescent_state" [kernel/rcu/rcutorture.ko] undefined!

Commit "71d22b5 Subject: rcu: Merge RCU-bh into RCU-preempt" encloses three functions (rcu_batches_completed_bh, rcu_force_quiescent_state and rcu_bh_force_quiescent_state) on an #ifndef CONFIG_PREEMPT_RT_FULL / #endif pair, rendering them non-existent on RT. As the commit points out, that was a wise and necessary move.

But in order to get rcutorture build working again we need to define an empty rcu_force_quiescent_state function.

kernel/rcu/tree.c +5 -0
index a4e9e25..28a54f6 100644
@@ -378,6 +378,11 @@ void rcu_bh_force_quiescent_state(void)
 	force_quiescent_state(&rcu_bh_state);
 }
 EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state);
+#else
+void rcu_force_quiescent_state(void)
+{
+}
+EXPORT_SYMBOL_GPL(rcu_force_quiescent_state);
 #endif
 
 /*
Signature · 2 lines
[ Luis Claudio R. Goncalves                    Bass - Gospel - RT ]
[ Fingerprint: 4FDD B8C4 3C59 34BD 8BE9  2696 7203 D980 A448 C8F8 ]
#1 lore raw
Quoted 6 lines · Luis Claudio R. Goncalves

Hello,

This is a minor issue, but as I seem to have woken up Paul at 4AM with the many beeps from IRC I would feel bad if I did not send this patch to the list. Actually, as that patch has been sitting on my computer for a few days now, i already feel bad :)

Actually, you did not wake me up -- I had accidentally left my system logged into IRC overnight and saw your post when I woke up some time later. ;-)

Quoted 22 lines

rcutorture: fix missing function at build time

Trying to build the rcutorture module on 3.18.7-rt2 ends up on:

ERROR: "rcu_force_quiescent_state" [kernel/rcu/rcutorture.ko] undefined!

Commit "71d22b5 Subject: rcu: Merge RCU-bh into RCU-preempt" encloses three functions (rcu_batches_completed_bh, rcu_force_quiescent_state and rcu_bh_force_quiescent_state) on an #ifndef CONFIG_PREEMPT_RT_FULL / #endif pair, rendering them non-existent on RT. As the commit points out, that was a wise and necessary move.

But in order to get rcutorture build working again we need to define an empty rcu_force_quiescent_state function.

kernel/rcu/tree.c +0 -0
index a4e9e25..28a54f6 100644

kernel/rcu/tree.c void rcu_bh_force_quiescent_state(void) · line 385

Quoted 8 lines
kernel/rcu/tree.c +5 -0
@@ -378,6 +378,11 @@ void rcu_bh_force_quiescent_state(void)
 	force_quiescent_state(&rcu_bh_state);
 }
 EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state);
+#else
+void rcu_force_quiescent_state(void)
+{
+}
+EXPORT_SYMBOL_GPL(rcu_force_quiescent_state);

This is -rt only, correct?

Thanx, Paul

Quoted 8 lines
kernel/rcu/tree.c +0 -0
 #endif
 
 /*
Signature · 3 lines
-- 
[ Luis Claudio R. Goncalves                    Bass - Gospel - RT ]
[ Fingerprint: 4FDD B8C4 3C59 34BD 8BE9  2696 7203 D980 A448 C8F8 ]
#2 lore raw

On Mon, Mar 02, 2015 at 01:18:15PM -0800, Paul E. McKenney wrote:
...

| > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
| > index a4e9e25..28a54f6 100644
| > --- a/kernel/rcu/tree.c
| > +++ b/kernel/rcu/tree.c
| > @@ -378,6 +378,11 @@ void rcu_bh_force_quiescent_state(void)
| >  	force_quiescent_state(&rcu_bh_state);
| >  }
| >  EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state);
| > +#else
| > +void rcu_force_quiescent_state(void)
| > +{
| > +}
| > +EXPORT_SYMBOL_GPL(rcu_force_quiescent_state);
| 
| This is -rt only, correct?

Yes, -rt only. And the only complaint I saw was from rcutorture.

Luis

#3 lore raw
Quoted 18 lines · Luis Claudio R. Goncalves

On Mon, Mar 02, 2015 at 01:18:15PM -0800, Paul E. McKenney wrote:
...

| > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
| > index a4e9e25..28a54f6 100644
| > --- a/kernel/rcu/tree.c
| > +++ b/kernel/rcu/tree.c
| > @@ -378,6 +378,11 @@ void rcu_bh_force_quiescent_state(void)
| >  	force_quiescent_state(&rcu_bh_state);
| >  }
| >  EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state);
| > +#else
| > +void rcu_force_quiescent_state(void)
| > +{
| > +}
| > +EXPORT_SYMBOL_GPL(rcu_force_quiescent_state);
| 
| This is -rt only, correct?
Quoted 1 line

Yes, -rt only. And the only complaint I saw was from rcutorture.

Agreed, nothing other than rcutorture should use these. Just thinking out loud about what (if anything) should happen in mainline.

Thanx, Paul

#4 lore raw
In reply to Luis Claudio R. Goncalves
Quoted 6 lines · * Luis Claudio R. Goncalves | 2015-03-02 17:15:31 [-0300]:

Hello,

This is a minor issue, but as I seem to have woken up Paul at 4AM with the many beeps from IRC I would feel bad if I did not send this patch to the list. Actually, as that patch has been sitting on my computer for a few days now, i already feel bad :)

Thanks. I folded this into rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch since it is v3.18 only.

Sebastian