On 12/11/13 18:08, Peter Zijlstra wrote:
On Tue, Nov 12, 2013 at 05:43:36PM +0000, Dietmar Eggemann wrote:
This patch removes the sched_domain initializer macros SD_[SIBLING|MC|BOOK|CPU]_INIT in core.c and in archs and replaces them with calls to the new function sd_init(). The function sd_init incorporates the already existing function sd_numa_init().
Your patch retains far too much of the weird behavioural variations we have, nor does it create a proper separation between topology and behaviour.
Could you please explain a little bit further on the weird behavioural variations. Are you referring to the specific SD_ flags or sd_domain levels? I agree that this patch doesn't separate behaviour and topology and I will consider this going forward.
We might indeed have to have a single arch_() function that adds SD_flags, but please restrict the flags it can set -- never allow it to set behavioural flags.
Understood. Simply exporting an sd_domain pointer is a no-go.
Furthermore, I think we want to allow the arch to override the base topology; we've had desire to add per arch level in the past.. eg. add an L2 level for some x86 variants.
I quite don't understand this one. Are you saying that one idea for the topology side of things is to have an extra arch specific sd level which would be the only sd_domain level which could be then overridden by the arch?
Thanks,
-- Dietmar