> > cpu_exec_init(cs, &err); > > if (err != NULL) { > > error_propagate(errp, err); > > return; > > } > > + scc->next_cpu_id = cs->cpu_index + 1; > > It appears that scc->next_cpu_id (and hence cpu->id) is some sort of arch_id > for you. If it is just going to be monotonically increasing like > cs->cpu_index, > couldn't you just use cs->cpu_index instead of introducing additional IDs ? > > Note that cpu_exec_init(cs, &err) returns with the next available cpu_index > which can be compared against max_cpus directly. > > Regards, > Bharata.
I don't think that we should mix the id setting and cpu_index for now. We can't simply set cpu_index before the device is realized. That logic belongs to cpu_exec_init(). But I agree that cpu_index and id should always match after a successful realize. That id / cpu_index stuff can be cleaned up later. We should not treat cpu_index as a property for now (by exposing it as "id"). David