From: Wei Liu <wei.liu@xxxxxxxxxx> Sent: Monday, April 25, 2022 8:47 AM > On Thu, Apr 14, 2022 at 03:19:46PM +0200, Vitaly Kuznetsov wrote: > > It may not come clear from where the magical '64' value used in > > __cpumask_to_vpset() come from. Moreover, '64' means both the maximum > > sparse bank number as well as the number of vCPUs per bank. Add defines > > to make things clear. These defines are also going to be used by KVM. > > > > No functional change. > > > > Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > > --- > > include/asm-generic/hyperv-tlfs.h | 5 +++++ > > include/asm-generic/mshyperv.h | 11 ++++++----- > > 2 files changed, 11 insertions(+), 5 deletions(-) > > > > diff --git a/include/asm-generic/hyperv-tlfs.h b/include/asm-generic/hyperv-tlfs.h > > index fdce7a4cfc6f..020ca9bdbb79 100644 > > --- a/include/asm-generic/hyperv-tlfs.h > > +++ b/include/asm-generic/hyperv-tlfs.h > > @@ -399,6 +399,11 @@ struct hv_vpset { > > u64 bank_contents[]; > > } __packed; > > > > +/* The maximum number of sparse vCPU banks which can be encoded by 'struct > hv_vpset' */ > > +#define HV_MAX_SPARSE_VCPU_BANKS (64) > > +/* The number of vCPUs in one sparse bank */ > > +#define HV_VCPUS_PER_SPARSE_BANK (64) > > I think replacing the magic number with a macro is a good thing. > > Where do you get these names? Did you make them up yourself? > > I'm trying to dig into internal code to find the most appropriate names, > but I couldn't find any so far. Michael, do you have insight here? > > Thanks, > Wei. These names look good to me. The "sparse" and "bank" terminology comes from the Hyper-V TLFS, sections 7.8.7.3 thru 7.8.7.5. The TLFS uses the constant "64", but for two different purposes as Vitaly points out. But in both cases the "64" accrues from the use of a uint64 value as a bitmap. Michael