Hi Chris,
On 8 June 2016 at 10:39, Chris Redpath Chris.Redpath@arm.com wrote:
Hi Ryan,
The cgroup controller for sched-tune is logically distinct from the scheduler feature sched-tune :) so at least logically, it ought to be separately configurable. However, sched-tune on it's own is a rather crude tuning control as it operates globally without the cgroup controller. In terms of having an EAS configuration which makes sense, we should have both turned on, and that probably means we should auto-select cgroups if CGROUP_SCHEDTUNE is on.
So it sounds like I should have it, but not having it might not be a big deal for BusyBox, saying as it already has limited functionality. So long as it compiles.
I've been toying with the idea of having an EAS-Android.conf as well, which is where we could put these things which are probably necessary for Android builds but not necessarily for barebones - what do you think about having an additional config fragment?
In theory, android.conf should have everything Android needs; it has CGROUPS already. Then EAS.conf all the EAS specific stuff. Unless there are EAS things you want to turn on/off for Android and not for other distros?
Tixy would have a better view than me about how to split these, so it's best to work with him.
Whatever we do, we also should make sure that the code builds with sched-tune enabled but without the cgroup controller as this is supposed to be a valid configuration :)
For sure! :-)
Cheers, Ryan.
--Chris
From: Ryan Harkin ryan.harkin@linaro.org Sent: 08 June 2016 10:12 To: Chris Redpath Cc: Jon Medhurst (Tixy); eas-dev Subject: Re: [PATCH] sched/tune: Fix building when CGROUPS not enable
Hi Chris,
I noticed the compilation error because I build my BusyBox configuration without CGROUPS enabled, but with EAS.conf included.
Do we need CGROUPS and CGROUP_SCHEDTUNE to say that we've enabled EAS? Or do we only need CGROUP_SCHEDTUNE if CGROUPS is enabled?
I'm wondering if EAS.conf should enable CGROUPS, if Kconfig should select CGROUPS if CGROUP_SCHEDTUNE is selected or if it's OK as it is?
Cheers, Ryan.
On 7 June 2016 at 10:54, Chris Redpath Chris.Redpath@arm.com wrote:
Hi Tixy,
Let me check this out with Patrick - I think the cgroup controller is supposed to be separate from the actual schedtune feature, although that's the only way it is really used.
Best Regards,
Chris
From: Jon Medhurst (Tixy) tixy@linaro.org Sent: 07 June 2016 10:07 To: Chris Redpath Cc: eas-dev; ryan.harkin@linaro.org Subject: [PATCH] sched/tune: Fix building when CGROUPS not enable
If we enable CONFIG_SCHED_TUNE without CONFIG_CGROUPS we get the following errors:
kernel/sched/fair.c: In function 'energy_diff_evaluate': kernel/sched/fair.c:4795:2: error: implicit declaration of function 'schedtune_normalize_energy' [-Werror=implicit-function-declaration] nrg_delta = schedtune_normalize_energy(eenv->nrg.diff); ^ kernel/sched/fair.c:4798:2: error: implicit declaration of function 'schedtune_accept_deltas' [-Werror=implicit-function-declaration] eenv->payoff = schedtune_accept_deltas( ^
Fix this by making sure the dummy version of these functions are defined if the real ones aren't.
Signed-off-by: Jon Medhurst tixy@linaro.org
This is another build fix for the 3.18 backport of EAS [1] but I'm not sure if the missing functions are actually meant to do something in the case when we have SCHED_TUNE without CGROUPS?
[1] http://git.linaro.org/arm/eas/kernel.git/shortlog/refs/heads/linux-3.18-eas-...
kernel/sched/tune.h | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/kernel/sched/tune.h b/kernel/sched/tune.h index da1f7b2..3410a1d 100644 --- a/kernel/sched/tune.h +++ b/kernel/sched/tune.h @@ -1,6 +1,3 @@
-#ifdef CONFIG_SCHED_TUNE
#ifdef CONFIG_CGROUP_SCHEDTUNE
int schedtune_cpu_boost(int cpu); @@ -13,14 +10,7 @@ int schedtune_normalize_energy(int energy); int schedtune_accept_deltas(int nrg_delta, int cap_delta, struct task_struct *task);
-#else /* CONFIG_CGROUP_SCHEDTUNE */
-#define schedtune_enqueue_task(task, cpu) do { } while (0) -#define schedtune_dequeue_task(task, cpu) do { } while (0)
-#endif /* CONFIG_CGROUP_SCHEDTUNE */
-#else /* CONFIG_SCHED_TUNE */ +#else
#define schedtune_enqueue_task(task, cpu) do { } while (0) #define schedtune_dequeue_task(task, cpu) do { } while (0) @@ -28,4 +18,4 @@ int schedtune_accept_deltas(int nrg_delta, int cap_delta, #define schedtune_normalize_energy(energy) energy #define schedtune_accept_deltas(nrg_delta, cap_delta, task) nrg_delta
-#endif /* CONFIG_SCHED_TUNE */
+#endif
2.1.4
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.