All of lore.kernel.org
 help / color / mirror / Atom feed
From: Liran Alon <liran.alon@oracle.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: ehabkost@redhat.com, qemu-devel@nongnu.org,
	Nikita Leshenko <nikita.leshchenko@oracle.com>,
	pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [PATCH 05/14] hw/i386/vmport: Report VMX type in CMD_GETVERSION
Date: Tue, 10 Mar 2020 19:58:15 +0200	[thread overview]
Message-ID: <e44d7551-d888-9a96-fb26-2b71b7bfdf01@oracle.com> (raw)
In-Reply-To: <20200310125426-mutt-send-email-mst@kernel.org>


On 10/03/2020 19:36, Michael S. Tsirkin wrote:
> On Tue, Mar 10, 2020 at 06:39:33PM +0200, Liran Alon wrote:
>>>> Isn't enum invented exactly for enumerating all possible values of a field?
>>> No - it just assigns names to constants. If you then proceed not to use
>>> the names, then it's pointless.
>> It's not. It exactly lists all the various possible values.
> That's not factually correct in this case. In C, enum does not
> necessarily list all possible values generally. Neither is it always
> used like this in QEMU. Neither does it do it in this case, nothing
> prevents user from sticking any single-byte value in the property.
It lists all currently known values for this enum. Exactly as you do in 
your comment...
The only way to prevent user from entering a value that is not defined 
in enum is to restrict user to enum-values.
Which can be done if you think it's appropriate. I think it just limits 
production flexibility.
>
>> Giving new names to existing terminology that can be matched against
>> existing guest code which interface with your device emulation is what
>> requires guesswork.
>> Using names matching the guest code driver is what doesn't require guesswork
>> and is more intuitive to understand.
> Yes, it's sometimes helpful to match guest driver since that helps debug
> the whole stack. There's literally nothing to help debug here though.
The "guest driver" in this case is open-vm-tools. And it helps that the 
names match.
> But if you feel strongly, here's a conversation starter.
> But it raises some questions that need to be answered
> properly:
>
>
> /*
>   * Virtual Machine eXecutable type (VMX).
>   *
>   * Most guests are fine with the default.
>   *
>   * Some legacy guests hard-code a given type.
>
> ^ Is this the real reason we are including this option?
> Because if it is how is it helpful to add link to
> the open-source drivers? These likely are not legacy ...
The "driver" in this case is open-vm-tools.
The legacy guests have proprietary drivers that mimics VMware Tools or a 
subset of it's functionality.
>
>
>   * See https://urldefense.com/v3/__https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/lib/include/vm_vmx_type.h__;!!GqivPVa7Brio!IuRMdod4d33nvVKOiG-itVXtxnHA9nAouQdYDxv3E62rIzVzPBWZ5M54D7BEF3g$
>   * for an up-to-date list of values.
>   * To help locate relevant portions of guest driver code
>   * and debug guest failures, enum names from the above header
>   * are listed below:
>   *
>   * Reasonable options:
>   * 0 - unset? - see VMX_TYPE_UNSET
>
> 			^^^ Note as you know what this is, please write it up.
>
>   * 1 - VMware Express (deprecated) - see VMX_TYPE_UNSET
>   * 2 - VMware ESX server - see VMX_TYPE_EXPRESS
>   * 3 - VMware Server (deprecated) - see VMX_TYPE_WGS
>   * 4 - VMware Workstation - see VMX_TYPE_WORKSTATION
>   * 5 - ACE 1.x (deprecated) - see VMX_TYPE_WORKSTATION_ENTERPRISE
>   */
> DEFINE_PROP_UINT8("vm-executable-type", VMPortState, vm_executable_type, 2),
>
>
> Maybe above is OK, if above questions can be addressed.
I still don't understand why you view a comment to be better than an enum.
This also contradict the approach taken for other enums in device 
emulation code, as I have provided multiple examples in previous reply.
>
>
>
>> Let's agree that I will fix coding convention issue (VMX_Type -> VMXType)
>> and link to open-vm-tools but remain with the enum.
>> And see what other maintainers have to see about this on v2.
> Sorry, if you don't address my comments from v1 please do not expect me
> to review v2.  I also feel strongly about proper attribution.  Ignoring
> original license on vmport.c making it depend on "GPL v2 but not later"
> bits for cosmetic reasons just isn't right.

Which part of license to I ignore?

I fixed all the comments you have mentioned beside this thing that is 
debatable. I wish to hear an additional opinion.
If you really strongly insist on this, I can change this to what you 
want without further discussion...

Why not allow to review all the 15 patches besides a discussion of 
whether constants should be defined in enum or comment?
That seems a little harsh to me.

-Liran






  reply	other threads:[~2020-03-10 17:59 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09 23:53 [PATCH 00/14]: hw/i386/vmport: Bug fixes and improvements Liran Alon
2020-03-09 23:53 ` [PATCH 01/14] hw/i386/vmport: Propagate IOPort read to vCPU EAX register Liran Alon
2020-03-09 23:53 ` [PATCH 02/14] hw/i386/vmport: Set EAX to -1 on failed and unsupported commands Liran Alon
2020-03-09 23:54 ` [PATCH 03/14] hw/i386/vmport: Add device properties Liran Alon
2020-03-09 23:54 ` [PATCH 04/14] hw/i386/vmport: Introduce vmx-version property Liran Alon
2020-03-10  9:32   ` Michael S. Tsirkin
2020-03-10 11:05     ` Liran Alon
2020-03-10 11:18       ` Michael S. Tsirkin
2020-03-10 11:28         ` Liran Alon
2020-03-10 11:44           ` Michael S. Tsirkin
2020-03-10 11:53             ` Liran Alon
2020-03-09 23:54 ` [PATCH 05/14] hw/i386/vmport: Report VMX type in CMD_GETVERSION Liran Alon
2020-03-10  9:20   ` Michael S. Tsirkin
2020-03-10 11:18     ` Liran Alon
2020-03-10 11:23       ` Michael S. Tsirkin
2020-03-10 11:40         ` Liran Alon
2020-03-10 11:47           ` Michael S. Tsirkin
2020-03-10 12:14   ` Michael S. Tsirkin
2020-03-10 12:25     ` Liran Alon
2020-03-10 12:35       ` Michael S. Tsirkin
2020-03-10 12:43         ` Liran Alon
2020-03-10 12:53           ` Michael S. Tsirkin
2020-03-10 13:35             ` Liran Alon
2020-03-10 14:08               ` Michael S. Tsirkin
2020-03-10 14:46                 ` Liran Alon
2020-03-10 15:10                   ` Michael S. Tsirkin
2020-03-10 16:39                     ` Liran Alon
2020-03-10 17:36                       ` Michael S. Tsirkin
2020-03-10 17:58                         ` Liran Alon [this message]
2020-03-10 21:16                   ` Michael S. Tsirkin
2020-03-10 21:34                     ` Liran Alon
2020-03-10 21:49                       ` Michael S. Tsirkin
2020-03-10 21:59                         ` Liran Alon
2020-03-10 22:04                           ` Michael S. Tsirkin
2020-03-09 23:54 ` [PATCH 06/14] hw/i386/vmport: Define enum for all commands Liran Alon
2020-03-10  9:28   ` Michael S. Tsirkin
2020-03-10 11:16     ` Liran Alon
2020-03-10 11:23       ` Michael S. Tsirkin
2020-03-10 11:37         ` Liran Alon
2020-03-10 11:46           ` Michael S. Tsirkin
2020-03-10 11:54             ` Liran Alon
2020-03-09 23:54 ` [PATCH 07/14] hw/i386/vmport: Add support for CMD_GETBIOSUUID Liran Alon
2020-03-10  9:22   ` Michael S. Tsirkin
2020-03-10 11:44     ` Liran Alon
2020-03-10 12:01       ` Michael S. Tsirkin
2020-03-10 12:37         ` Liran Alon
2020-03-10 13:01           ` Michael S. Tsirkin
2020-03-10  9:34   ` Michael S. Tsirkin
2020-03-10 11:13     ` Liran Alon
2020-03-10 11:22       ` Michael S. Tsirkin
2020-03-10 11:35         ` Liran Alon
2020-03-10 14:24         ` Liran Alon
2020-03-10 14:39           ` Michael S. Tsirkin
2020-03-10 14:56             ` Liran Alon
2020-03-09 23:54 ` [PATCH 08/14] hw/i386/vmport: Add support for CMD_GETTIME Liran Alon
2020-03-09 23:54 ` [PATCH 09/14] hw/i386/vmport: Add support for CMD_GETTIMEFULL Liran Alon
2020-03-09 23:54 ` [PATCH 10/14] hw/i386/vmport: Add support for CMD_GET_VCPU_INFO Liran Alon
2020-03-09 23:54 ` [PATCH 11/14] hw/i386/vmport: Allow x2apic without IR Liran Alon
2020-03-09 23:54 ` [PATCH 12/14] i386/cpu: Store LAPIC bus frequency in CPU structure Liran Alon
2020-03-10  9:29   ` Michael S. Tsirkin
2020-03-10 10:53     ` Liran Alon
2020-03-10 12:27       ` Michael S. Tsirkin
2020-03-10 12:29         ` Liran Alon
2020-03-09 23:54 ` [PATCH 13/14] hw/i386/vmport: Add support for CMD_GETHZ Liran Alon
2020-03-09 23:54 ` [PATCH 14/14] hw/i386/vmport: Assert vmport initialized before registering commands Liran Alon
2020-03-10  9:30   ` Michael S. Tsirkin
2020-03-10 10:57     ` Liran Alon
2020-03-10  0:13 ` [PATCH 00/14]: hw/i386/vmport: Bug fixes and improvements no-reply
2020-03-10  0:16   ` Liran Alon
2020-03-10  0:53 ` no-reply
2020-03-10  0:54 ` no-reply
2020-03-10  0:57   ` Liran Alon
2020-03-10  1:10 ` no-reply
2020-03-10  1:49 ` no-reply
2020-03-10  1:50 ` no-reply
2020-03-10  2:04 ` no-reply
2020-03-10  2:22 ` no-reply
2020-03-10  2:56 ` no-reply
2020-03-10  2:56 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e44d7551-d888-9a96-fb26-2b71b7bfdf01@oracle.com \
    --to=liran.alon@oracle.com \
    --cc=ehabkost@redhat.com \
    --cc=mst@redhat.com \
    --cc=nikita.leshchenko@oracle.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.