All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: mszeredi@redhat.com, lukasstraub2@web.de, quintela@redhat.com,
	qemu-devel@nongnu.org, pannengyuan@huawei.com, f4bug@amsat.org,
	Markus Armbruster <armbru@redhat.com>,
	stefanha@redhat.com
Subject: Re: [PULL 04/12] hmp: Simplify qom-set
Date: Wed, 3 Jun 2020 14:33:54 +0100	[thread overview]
Message-ID: <20200603133354.GF2974@work-vm> (raw)
In-Reply-To: <8c6b3fae-a74c-effa-2d38-5e8cd4c72066@redhat.com>

* David Hildenbrand (david@redhat.com) wrote:
> On 03.06.20 14:26, David Hildenbrand wrote:
> > On 03.06.20 14:24, Dr. David Alan Gilbert wrote:
> >> * David Hildenbrand (david@redhat.com) wrote:
> >>> On 03.06.20 13:43, Dr. David Alan Gilbert wrote:
> >>>> * David Hildenbrand (david@redhat.com) wrote:
> >>>>> On 03.06.20 12:43, Dr. David Alan Gilbert wrote:
> >>>>>> * David Hildenbrand (david@redhat.com) wrote:
> >>>>>>> On 02.06.20 11:26, Dr. David Alan Gilbert wrote:
> >>>>>>>> * Markus Armbruster (armbru@redhat.com) wrote:
> >>>>>>>>> "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> writes:
> >>>>>>>>>
> >>>>>>>>>> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >>>>>>>>>>
> >>>>>>>>>> Simplify qom_set by making it use qmp_qom_set and the JSON parser.
> >>>>>>>>>>
> >>>>>>>>>> (qemu) qom-get /machine smm
> >>>>>>>>>> "auto"
> >>>>>>>>>> (qemu) qom-set /machine smm "auto"
> >>>>>>>>>>
> >>>>>>>>>> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> >>>>>>>>>> Message-Id: <20200520151108.160598-3-dgilbert@redhat.com>
> >>>>>>>>>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> >>>>>>>>>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
> >>>>>>>>>> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> >>>>>>>>>>   With 's'->'S' type change suggested by Paolo and Markus
> >>>>>>>>>
> >>>>>>>>> This is actually more than just simplification, it's disarming a bear
> >>>>>>>>> trap: the string visitor is restricted to a subset of the QAPI types,
> >>>>>>>>> and when you qom-set a property with a type it can't handle, QEMU
> >>>>>>>>> aborts.  I mentioned this in the discussion of possible ways out of the
> >>>>>>>>> qom-get impasse, but missed reraising it in patch review.
> >>>>>>>>>
> >>>>>>>>> A suitably amended commit would be nice, but respinning the PR just for
> >>>>>>>>> that may not be worthwhile.
> >>>>>>>>
> >>>>>>>> A bit late; still as long as we're removing bear traps not adding them.
> >>>>>>>
> >>>>>>> This breaks qom-set for my (virtio-mem) use case:
> >>>>>>>
> >>>>>>> echo "qom-set vm0 requested-size 300M" | sudo nc -U /var/tmp/mon_src
> >>>>>>> QEMU 5.0.50 monitor - type 'help' for more information
> >>>>>>> (qemu) qom-set vm0 requested-size 300M
> >>>>>>> Error: Expecting at most one JSON value
> >>>>>>
> >>>>>> Does qom-set vm0 requested-size 300e6 do the same thing?
> >>>>>
> >>>>> The property is defined to be of type "size".
> >>>>>
> >>>>> (qemu) qom-set vm0 requested-size 300e6
> >>>>> Error: Parameter 'requested-size' expects uint64
> >>>>>
> >>>>> (not sure how "size" and "uint64" are mapped here)
> >>>>
> >>>> I think the problem here is that the JSON parser is converting anything
> >>>> with an 'e' as a float; JSON itself doesn't have the distinction
> >>>> between int and float.
> >>>>
> >>>
> >>> (and just to clarify - I assume you are aware - 300e6 != 300M. So the
> >>> interface becomes way harder to use in case one wants to specify
> >>> properly aligned sizes - 300M vs 314572800)
> >>
> >> Oops, yes, good point.
> >>
> >> I think on balance it's probably best that this keeps supporting JSON;
> >> although tbh I'm not convinced there are any complex types that can be
> >> set.
> >> I'm not seeing a prettier answer.
> > 
> > So, I have to use a calculator from now on to set a property that I can
> > set on the QEMU cmdline just fine without it? :(
> > 
> > This feels like a step backwards, @Markus any way to keep supporting sizes?
> 
> Or what about adding qom-set-json instead for complex types instead of
> changing the behavior if an existing interface?

Yes, this isn't nice - we could add a flag to qom-set to take nice
numerics.

Dave

> -- 
> Thanks,
> 
> David / dhildenb
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2020-06-03 13:34 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-01 18:39 [PULL 00/12] migration/virtiofs/hmp queue Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 01/12] migration/rdma: fix potential nullptr access in rdma_start_incoming_migration Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 02/12] migration/rdma: cleanup rdma context before g_free to avoid memleaks Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 03/12] hmp: Implement qom-get HMP command Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 04/12] hmp: Simplify qom-set Dr. David Alan Gilbert (git)
2020-06-02  6:47   ` Markus Armbruster
2020-06-02  9:26     ` Dr. David Alan Gilbert
2020-06-03 10:25       ` David Hildenbrand
2020-06-03 10:43         ` Dr. David Alan Gilbert
2020-06-03 11:31           ` David Hildenbrand
2020-06-03 11:33             ` David Hildenbrand
2020-06-03 11:43             ` Dr. David Alan Gilbert
2020-06-03 12:18               ` David Hildenbrand
2020-06-03 12:24                 ` Dr. David Alan Gilbert
2020-06-03 12:26                   ` David Hildenbrand
2020-06-03 12:43                     ` David Hildenbrand
2020-06-03 13:33                       ` Dr. David Alan Gilbert [this message]
2020-06-01 18:39 ` [PULL 05/12] virtiofsd: remove symlink fallbacks Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 06/12] migration/vmstate: Remove unnecessary MemoryRegion forward declaration Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 07/12] migration/colo.c: Use event instead of semaphore Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 08/12] migration/colo.c: Use cpu_synchronize_all_states() Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 09/12] migration/colo.c: Flush ram cache only after receiving device state Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 10/12] migration/colo.c: Relaunch failover even if there was an error Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 11/12] migration/colo.c: Move colo_notify_compares_event to the right place Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 12/12] migration/migration.c: Fix hang in ram_save_host_page Dr. David Alan Gilbert (git)
2020-06-02  9:22 ` [PULL 00/12] migration/virtiofs/hmp queue Peter Maydell

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=20200603133354.GF2974@work-vm \
    --to=dgilbert@redhat.com \
    --cc=armbru@redhat.com \
    --cc=david@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=lukasstraub2@web.de \
    --cc=mszeredi@redhat.com \
    --cc=pannengyuan@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    /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.