• P
    qom/cpu: Add cluster_index to CPUState · 7ea7b9ad
    Peter Maydell 提交于
    For TCG we want to distinguish which cluster a CPU is in, and
    we need to do it quickly. Cache the cluster index in the CPUState
    struct, by having the cluster object set cpu->cluster_index for
    each CPU child when it is realized.
    
    This means that board/SoC code must add all CPUs to the cluster
    before realizing the cluster object. Regrettably QOM provides no
    way to prevent adding children to a realized object and no way for
    the parent to be notified when a new child is added to it, so
    we don't have any way to enforce/assert this constraint; all
    we can do is document it in a comment. We can at least put in a
    check that the cluster contains at least one CPU, which should
    catch the typical cases of "realized cluster too early" or
    "forgot to parent the CPUs into it".
    
    The restriction on how many clusters can exist in the system
    is imposed by TCG code which will be added in a subsequent commit,
    but the check to enforce it in cluster.c fits better in this one.
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NEdgar E. Iglesias <edgar.iglesias@xilinx.com>
    Reviewed-by: NAlistair Francis <alistair.francis@wdc.com>
    Message-id: 20190121152218.9592-3-peter.maydell@linaro.org
    7ea7b9ad
cluster.h 3.0 KB