On Fri, 2023-11-24 at 00:53 -0500, Yang Weijiang wrote: > +static struct fpstate *__fpu_alloc_init_guest_fpstate(struct > fpu_guest *gfpu) > { > + bool compacted = cpu_feature_enabled(X86_FEATURE_XCOMPACTED); > + unsigned int gfpstate_size, size; > struct fpstate *fpstate; > - unsigned int size; > > - size = fpu_user_cfg.default_size + ALIGN(offsetof(struct > fpstate, regs), 64); > + /* > + * fpu_guest_cfg.default_features includes all enabled > xfeatures > + * except the user dynamic xfeatures. If the user dynamic > xfeatures > + * are enabled, the guest fpstate will be re-allocated to > hold all > + * guest enabled xfeatures, so omit user dynamic xfeatures > here. > + */ > + gfpstate_size = > xstate_calculate_size(fpu_guest_cfg.default_features, > + compacted); Why not fpu_guest_cfg.default_size here? > + > + size = gfpstate_size + ALIGN(offsetof(struct fpstate, regs), > 64);