On 30/08/18 10:26, Jan Beulich wrote: >>>> On 30.08.18 at 09:52, <jgr...@suse.com> wrote: >> @@ -202,7 +202,7 @@ static int alloc_trace_bufs(unsigned int pages) >> * Allocate buffers for all of the cpus. >> * If any fails, deallocate what you have so far and exit. >> */ >> - for_each_online_cpu(cpu) >> + for_each_present_cpu(cpu) >> { >> offset = t_info_first_offset + (cpu * pages); >> t_info->mfn_offset[cpu] = offset; > > Doesn't this go a little too far? Why would you allocate buffers for CPUs > which can never be brought online? There ought to be a middle ground, > where online-able CPUs have buffers allocated, but non-online-able ones > won't. On larger systems I guess the difference may be quite noticable.
According to the comments in include/xen/cpumask.h cpu_present_map represents the populated cpus. I know that currently there is no support for onlining a parked cpu again, but I think having to think about Xentrace buffer allocation in case onlining of parked cpus is added would be a nearly 100% chance to introduce a bug. Xentrace is used for testing purposes only. So IMHO allocating some more memory is acceptable. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel