Messages in this thread | | | Date | Mon, 28 Jul 2014 23:03:06 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH RFC tip/core/rcu] Fix attempt to avoid offloading callbacks unless requested |
| |
On Sat, Jul 26, 2014 at 09:51:52PM -0400, Pranith Kumar wrote: > On Fri, Jul 25, 2014 at 10:30 PM, Frederic Weisbecker > <fweisbec@gmail.com> wrote: > > >> I understand that if CONFIG_NO_HZ_FULL_ALL is set then CONFIG_NOCB_CPU_ALL > >> will also be set and there is no need for this cpumask_or(). > >> > >> Is there any reason for the coupling between CONFIG_NO_HZ_FULL_ALL > >> and CONFIG_NOCB_CPU_ALL? > > > > Yeah, for any nohz full CPU, we need the corresponding CPU to be rcu_nocb. > > So if all CPUs are full dynticks, all CPUs must be rcunocb. > > > > That said with this patch, the dependency is perhaps not needed anymore. > > > >> > >> I ask because a user can override CONFIG_NO_HZ_FULL_ALL=y at boot time > >> using the nohz_full= boot time parameter. > > > > No, the content of nohz_full= is ignored with CONFIG_NO_HZ_FULL_ALL=y. > > > > Please correct me if I am wrong but that does not seem to be the case. > If a boot parameter is passed, we are setting up tick_nohz_full_mask > from tick_nohz_full_setup() and marking tick_nohz_full_running as true. > Later on we check this flag and skip the CONFIG_NO_HZ_FULL_ALL > initialization.
You're right, I missed the tick_nohz_full_running check :)
So if nohz_full is passed, we ignore CONFIG_NO_HZ_FULL_ALL. That looks like the right behaviour though.
Paul what do you think? If we keep that behaviour, Maybe you could blindly do rcu_nocb_mask |= tick_nohz_full and remove the CONFIG_NO_HZ_FULL_ALL dependency on RCU_NOCB_ALL?
| |