On 04/10/2018 23:53, Eduardo Habkost wrote: > On Thu, Oct 04, 2018 at 09:01:09PM +0100, Peter Maydell wrote: >> On 4 October 2018 at 20:52, Eduardo Habkost <ehabk...@redhat.com> wrote: >>> Changing the object hierarchy based on GDB groups doesn't seem >>> right, but I don't think it would be a big deal if we have the >>> board code explicitly telling the GDB code how to group the CPUs. >>> >>> If you really want to do it implicitly, would it work if you >>> simply group the CPUs based on object_get_canonical_path()? >>> >>> If a more explicit GDB grouping API is acceptable, what about >>> just adding a INTERFACE_GDB_GROUP interface name to (existing) >>> container objects that we expect to become GDB groups? >>> >>> I'm not sure which way is better. I'm a bit worried that making >>> things too implicit could easily break (e.g. if somebody changes >>> the CPU QOM hierarchy in the future for unrelated reasons). >> >> I don't want things implicit. I just don't want the explicitness >> to be "this is all about GDB", because it isn't. I want us >> to explicitly say "these 4 CPUs are in one cluster" (or >> whatever term we use), because that affects more than merely GDB. > > We already have a way to say "these 4 CPUs are in one cluster", > don't we? That's the QOM hierarchy. > > My question is if "the CPUs are in one cluster" should implicitly > mean "the CPUs are in one GDB group". >
What about having the container implement INTERFACE_CPU_CLUSTER? Or even cleaner, add a TYPE_CPU_CLUSTER which is just a container for TYPE_CPU[*]?