All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Christian Borntraeger" <borntraeger@de.ibm.com>,
	libvir-list@redhat.com, qemu-devel@nongnu.org,
	"David Hildenbrand" <dahi@linux.vnet.ibm.com>,
	"Cornelia Huck" <cornelia.huck@de.ibm.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Jiri Denemark" <jdenemar@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [libvirt] [PATCH 7/9] qmp: Add runnability information to query-cpu-definitions
Date: Tue, 31 May 2016 15:24:50 +0200	[thread overview]
Message-ID: <87shwycqcd.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20160531120139.GO23701@thinpad.lan.raisama.net> (Eduardo Habkost's message of "Tue, 31 May 2016 09:01:39 -0300")

Eduardo Habkost <ehabkost@redhat.com> writes:

> On Mon, May 30, 2016 at 11:33:38AM +0200, Markus Armbruster wrote:
[...]
>> The new members encode an answer to the question whether a certain CPU
>> usable with the current machine an accelerator, and if no, why.
>> The possible answers are:
>> 
>> (1) Don't know.
>> (2) Yes.
>> (3) No, but we can't say why.
>> (4) No, and here's a list of reasons.
>> 
>> The two "dunno" answers (1) and (3) exist so we don't have to boil the
>> CPU ocean now.
>> 
>> Without them, the natural solution is a single member, where (4) is
>> encoded as nonempty list, and (2) could be encoded as empty list or
>> absent.
>> 
>> Now let me try to fit in (1) and (3).
>> 
>> The obvious way to do (1) is absent.  So let's use empty list for (2).
>> 
>> That leaves (3).  I think the simplest solution that could possibly work
>> is to treat it as a special "dunno" reason: encode it just like (4), but
>> with a special "dunno" list element.  I'd use the empty string.
>> 
>> Could even be used if we need to distinguish
>> 
>> (4a) No, and here's the *complete* list of reasons.
>> (4b) No, and here's a possibly incomplete list of reasons.
>> 
>> For (4b), include the "dunno" element with the others.
>> 
>> Unlike the proposed solution, this one doesn't leave interface crud
>> behind if we succeed in getting rid of (1) and (3):
>> 
>> * When (1) goes away, the single member becomes mandatory.
>> 
>> * When (3) goes away, the special "dunno" list element no longer occurs.
>
> I like your suggestion.
>
> I suggest "type" as the "dunno" element. It would keep the
> existing "QOM property name" semantics, and it would just mean
> "sorry, the only advice we can currently give you is to choose a
> different CPU type". It even matches the previous documentation I
> sent describing the meaning of read-only property names.
>
> Rewriting the docs again:
>
>  # Virtual CPU definition.
>  #
>  # @name: the name of the CPU definition
> -# @runnable: #optional Whether the CPU model us usable with the
> -#            current machine and accelerator. Omitted if we don't
> -#            know the answer. (since 2.7)
> -# @unavailable-features: #optional List of attributes that prevent
> +# @unavailable-features: #optional List of properties that prevent
>  #                        the CPU model from running in the current
> -#                        host. Present only if @runnable is false.
> -#                        (since 2.7)
> +#                        host. (since 2.7)
>  #
>  # @unavailable-features is a list of QOM property names that
>  # represent CPU model attributes that prevent the CPU from running.
> -# If the QOM property is read-only, that means the CPU model can
> -# never run in the current host. If the property is read-write, it
> +# If the QOM property is read-only, that means there's no known
> +# way to make the CPU model run in the current host.
> +# If the property is read-write, it
>  # means that it MAY be possible to run the CPU model in the current
>  # host if that property is changed. Management software can use it
>  # as hints to suggest or choose an alternative for the user, or
>  # just to generate meaningful error messages explaining why the CPU
>  # model can't be used.

Should we spell out the special case "type"?

> +# If @unavailable-features is an empty list, the CPU model is
> +# runnable using the current host and machine-type.
> +# If @unavailable-features is not present, runnability
> +# information for the CPU model is not available.
>  #
>  # Since: 1.2.0
>  ##

I'm happy with this interface.  Thanks!

  reply	other threads:[~2016-05-31 13:25 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-06 18:11 [Qemu-devel] [PATCH 0/9] Add runnability info to query-cpu-definitions Eduardo Habkost
2016-05-06 18:11 ` [Qemu-devel] [PATCH 1/9] target-i386: Move TCG initialization check to tcg_x86_init() Eduardo Habkost
2016-05-10 14:58   ` Igor Mammedov
2016-05-06 18:11 ` [Qemu-devel] [PATCH 2/9] target-i386: Move TCG initialization to realize time Eduardo Habkost
2016-05-10 15:10   ` Igor Mammedov
2016-05-06 18:11 ` [Qemu-devel] [PATCH 3/9] target-i386: Call cpu_exec_init() on realize Eduardo Habkost
2016-05-10 15:15   ` Igor Mammedov
2016-05-06 18:11 ` [Qemu-devel] [PATCH 4/9] target-i386: List CPU models using subclass list Eduardo Habkost
2016-05-06 18:11 ` [Qemu-devel] [PATCH 5/9] target-i386: Move warning code outside x86_cpu_filter_features() Eduardo Habkost
2016-05-06 18:11 ` [Qemu-devel] [PATCH 6/9] target-i386: Define CPUID filtering functions before x86_cpu_list() Eduardo Habkost
2016-05-06 18:11 ` [Qemu-devel] [PATCH 7/9] qmp: Add runnability information to query-cpu-definitions Eduardo Habkost
2016-05-09  6:04   ` Markus Armbruster
2016-05-09  8:54   ` David Hildenbrand
2016-05-09 12:00     ` Eduardo Habkost
2016-05-09 12:05       ` David Hildenbrand
2016-05-09 12:36         ` Eduardo Habkost
2016-05-09 13:06           ` David Hildenbrand
2016-05-09 19:45             ` Eduardo Habkost
2016-05-10  6:32               ` David Hildenbrand
2016-05-10 12:03                 ` Eduardo Habkost
2016-05-09 15:20   ` [Qemu-devel] [libvirt] " Eric Blake
2016-05-09 19:25     ` Eduardo Habkost
2016-05-10  8:23       ` Markus Armbruster
2016-05-10  8:31         ` Jiri Denemark
2016-05-10 11:57         ` Eduardo Habkost
2016-05-11  7:11           ` Markus Armbruster
2016-05-11 19:35             ` Eduardo Habkost
2016-05-12  6:46               ` David Hildenbrand
2016-05-12  7:19               ` Jiri Denemark
2016-05-12 11:07                 ` Eduardo Habkost
2016-05-12  7:46               ` Markus Armbruster
2016-05-27 20:19                 ` Eduardo Habkost
2016-05-30  9:33                   ` Markus Armbruster
2016-05-31 12:01                     ` Eduardo Habkost
2016-05-31 13:24                       ` Markus Armbruster [this message]
2016-05-31 14:51                         ` Eduardo Habkost
2016-06-03 11:38                           ` David Hildenbrand
2016-05-06 18:11 ` [Qemu-devel] [PATCH 8/9] target-i386: Use "-" instead of "_" on all feature names Eduardo Habkost
2016-05-10 15:19   ` Igor Mammedov
2016-05-10 17:36     ` Jiri Denemark
2016-05-24 12:17   ` Igor Mammedov
2016-05-24 12:34     ` Eduardo Habkost
2016-05-24 13:22       ` Igor Mammedov
2016-05-27 20:32         ` Eduardo Habkost
2016-05-30  8:43           ` Igor Mammedov
2016-05-06 18:11 ` [Qemu-devel] [PATCH 9/9] target-i386: Return runnability information on query-cpu-definitions Eduardo Habkost
2016-05-09  7:24 ` [Qemu-devel] [PATCH 0/9] Add runnability info to query-cpu-definitions David Hildenbrand

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=87shwycqcd.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=afaerber@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dahi@linux.vnet.ibm.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=jdenemar@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.