On Thu, Nov 29, 2018 at 12:51:55PM +0100, Vitaly Kuznetsov wrote:
> Paolo Bonzini <pbonz...@redhat.com> writes:
> 
> > On 26/11/18 14:59, Vitaly Kuznetsov wrote:
> >> It was found that QMP users of QEMU (e.g. libvirt) may need
> >> HV_CPUID_ENLIGHTMENT_INFO.EAX/HV_CPUID_NESTED_FEATURES.EAX information. In
> >> particular, 'hv_tlbflush' and 'hv_evmcs' enlightenments are only exposed in
> >> HV_CPUID_ENLIGHTMENT_INFO.EAX.
> >> 
> >> HV_CPUID_NESTED_FEATURES.EAX is exposed for two reasons: convenience
> >> (we don't need to export it from hyperv_handle_properties() and as
> >> future-proof for Enlightened MSR-Bitmap, PV EPT invalidation and
> >> direct virtual flush features.
> >> 
> >> Signed-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
> >
> > Can you add a comment to feature_word_info, explaining why the
> > feat_names are not set?
> 
> I had to do some code archeology to make sure I understand, I think it
> goes back to
> 
> http://lists.gnu.org/archive/html/qemu-devel/2016-06/msg06579.html
> 
> So the comment (probably added before FEAT_HYPERV_EAX definition) would
> be
> 
> ".feat_names are commented out for Hyper-V enlightenments because we
> don't want to have two different ways for enabling them on QEMU command
> line. Some features (e.g. "hyperv_time", "hyperv_vapic", ...) require
> enabling several feature bits simultaneously, exposing these bits
> individually may just confuse guests."
> 
> Would do?

That's an accurate description.

But note that we might still be able to move the existing
"hyperv_*" features to feature_word_info[].feat_names.  We just
need to keep the same semantics (e.g. enable
HV_HYPERCALL_AVAILABLE automatically when some features are set).

Maybe we can make some of the feature properties read-only.  This
way we can give them meaningful names for debugging and error
messages, even if we don't want to make them configurable
directly.

-- 
Eduardo

Reply via email to