ally if the destination storage is faster we
> basically alsways have
> 512 I/Os in flight on the source storage.
>
> Does anyone mind if the reduce that value to 16MB or do we need a better
> mechanism?
We've got migration-parameters these days; you could connect it to one
of those
, "true");
> +
> +migrate_set_parameter(from, "max-bandwidth", "1");
> +migrate_set_parameter(from, "downtime-limit", "1");
> +
> +wait_for_serial("dest_serial", FALSE);
> +migrate(to, uri, TRUE);
> +
> +wait_for_serial("src_serial", FALSE);
> +migrate(from, uri, FALSE);
> +
> +wait_for_migration_pass(from);
> +
> +migrate_start_postcopy(from);
It's brave/good that you're doing this with postcopy; but with postcopy
we really really need to make sure any devices aren't reading memory
after they enter the paused state, although we've got so few devices
in this test we probably wont hit that.
Dave
> +if (!got_stop) {
> +qtest_qmp_eventwait(from, "STOP");
> +}
> +
> +qtest_qmp_eventwait(to, "RESUME");
> +
> +wait_for_serial("dest_serial", TRUE);
> +wait_for_migration_complete(from);
> +
> +g_free(uri);
> +
> +test_migrate_end(from, to, true);
> +}
> +
> int main(int argc, char **argv)
> {
> char template[] = "/tmp/migration-test-XX";
> @@ -604,6 +660,7 @@ int main(int argc, char **argv)
> module_call_init(MODULE_INIT_QOM);
>
> qtest_add_func("/migration/postcopy/unix", test_migrate);
> +qtest_add_func("/migration/postcopy/to_used", test_migrate_to_used);
> qtest_add_func("/migration/deprecated", test_deprecated);
> qtest_add_func("/migration/bad_dest", test_baddest);
>
> --
> 2.16.2
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
TE_WATCHDOG },
> { RUN_STATE_RUNNING, RUN_STATE_GUEST_PANICKED },
> { RUN_STATE_RUNNING, RUN_STATE_COLO},
> +{ RUN_STATE_RUNNING, RUN_STATE_INMIGRATE },
Experience suggests that you'll find out the hard way that there's other
states you'll need to allow or check for.
For example, do you want to be able to loadvm from a GUEST_PANICKED or
PRELAUNCH state?
Dave
> { RUN_STATE_SAVE_VM, RUN_STATE_RUNNING },
>
> --
> 2.16.2
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* ASC included in the VASP ASIC (IIvx/IIvi) */
> +ASC_TYPE_ARDBEG = 7 /* ASC included in the Ardbeg ASIC (LC520) */
> +};
> +
> +typedef struct ASCState {
> +SysBusDevice parent_obj;
> +
> +MemoryRegion mem_regs;
> +QEMUSoundCard card;
> +SWVoiceOut *channel;
> +
> +qemu_irq irq;
> +
> +uint8_t type;
> +int a_wptr, a_rptr, a_cnt;
> +int b_wptr, b_rptr, b_cnt;
> +
> +uint8_t *fifo;
> +
> +uint8_t regs[48];
> +} ASCState;
> +
> +#define TYPE_ASC "apple-sound-chip"
> +#define ASC(obj) OBJECT_CHECK(ASCState, (obj), TYPE_ASC)
> +
> +#endif
> --
> 2.14.4
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
nclude/hw/input/adb.h b/include/hw/input/adb.h
> index f99d478252..1888c5aab7 100644
> --- a/include/hw/input/adb.h
> +++ b/include/hw/input/adb.h
> @@ -76,6 +76,12 @@ struct ADBBusState {
> ADBDevice *devices[MAX_ADB_DEVICES];
> int nb_devices;
> int poll_index;
> +qemu_irq data_ready;
> +int data_in_size;
> +int data_in_index;
> +int data_out_index;
Given they're array indexes, unsigned?
> +uint8_t data_in[128];
> +uint8_t data_out[16];
> };
>
> int adb_request(ADBBusState *s, uint8_t *buf_out,
> @@ -85,4 +91,8 @@ int adb_poll(ADBBusState *s, uint8_t *buf_out, uint16_t
> poll_mask);
> #define TYPE_ADB_KEYBOARD "adb-keyboard"
> #define TYPE_ADB_MOUSE "adb-mouse"
>
> +int adb_via_poll(ADBBusState *s, int state, uint8_t *data);
> +int adb_send(ADBBusState *adb, int state, uint8_t data);
> +int adb_receive(ADBBusState *adb, int state, uint8_t *data);
> +
> #endif /* ADB_H */
> diff --git a/include/hw/misc/mac_via.h b/include/hw/misc/mac_via.h
> index a3a972ccc5..85d8715b12 100644
> --- a/include/hw/misc/mac_via.h
> +++ b/include/hw/misc/mac_via.h
> @@ -96,6 +96,7 @@ typedef struct MacVIAState {
>
> /* ADB */
> ADBBusState adb_bus;
> +QEMUTimer *adb_poll_timer;
>
> /* external timers */
> QEMUTimer *one_second_timer;
> --
> 2.14.4
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
Copyright (c) 2012-2018 Laurent Vivier
> + *
> + * some parts from QEMU G364 framebuffer Emulator.
> + * Copyright (c) 2007-2011 Herve Poussineau
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + *
> + */
> +
> +#ifndef MACFB_H
> +#define MACFB_H
> +
> +#include "qemu/osdep.h"
> +#include "exec/memory.h"
> +#include "ui/console.h"
> +
> +typedef struct MacfbState {
> +MemoryRegion mem_vram;
> +MemoryRegion mem_ctrl;
> +QemuConsole *con;
> +
> +uint8_t *vram;
> +uint32_t palette_current;
> +uint8_t color_palette[256 * 3];
> +uint32_t width, height; /* in pixels */
> +uint8_t depth;
> +} MacfbState;
> +
> +#define TYPE_MACFB "sysbus-macfb"
> +#define MACFB(obj) \
> +OBJECT_CHECK(MacfbSysBusState, (obj), TYPE_MACFB)
> +
> +typedef struct {
> +SysBusDevice busdev;
> +
> +MacfbState macfb;
> +} MacfbSysBusState;
> +
> +#endif
> diff --git a/qemu-options.hx b/qemu-options.hx
> index d5b0c26e8e..b48f925128 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -1539,7 +1539,7 @@ ETEXI
>
> DEF("g", 1, QEMU_OPTION_g ,
> "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n",
> -QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
> +QEMU_ARCH_PPC | QEMU_ARCH_SPARC | QEMU_ARCH_M68K)
> STEXI
> @item -g @var{width}x@var{height}[x@var{depth}]
> @findex -g
> diff --git a/vl.c b/vl.c
> index d26f19b06d..87ba3859eb 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3310,7 +3310,8 @@ int main(int argc, char **argv, char **envp)
> if (*p == 'x') {
> p++;
> depth = strtol(p, (char **), 10);
> -if (depth != 8 && depth != 15 && depth != 16 &&
> +if (depth != 1 && depth != 2 && depth != 4 &&
> +depth != 8 && depth != 15 && depth != 16 &&
> depth != 24 && depth != 32)
> goto graphic_error;
> } else if (*p == '\0') {
> --
> 2.14.4
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
duplicated in old backing files.
> +# (default: false). Since 3.1.
> +#
> # @on-error: the action to take on an error (default report).
> #'stop' and 'enospc' can only be used if the block device
> #supports io-status (see BlockInfo). Since 1.3.
> @@ -2361,7 +2364,7 @@
> { 'command': 'block-stream',
>'data': { '*job-id': 'str', 'device': 'str', '*base': 'str',
> '*base-node': 'str', '*backing-file': 'str', '*speed': 'int',
> -'*on-error': 'BlockdevOnError',
> +'*discard': 'bool', '*on-error': 'BlockdevOnError',
> '*auto-finalize': 'bool', '*auto-dismiss': 'bool' } }
>
> ##
> --
> 1.8.3.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
const char *device = qdict_get_str(qdict, "device");
> const char *base = qdict_get_try_str(qdict, "base");
> int64_t speed = qdict_get_try_int(qdict, "speed", 0);
> +bool discard = qdict_get_try_bool(qdict, "discard", false);
>
&g
ue in the migration code and not so much in vl.c, yes...
>
> Yeah, I'll let the migration people jump in.
Can we get a log of the qmp commands when it fails?
A 'running->postmigrate' transition is a bit weird; you could get a
something->postmigrate if you migrate a VM twice, and the
* Max Reitz (mre...@redhat.com) wrote:
> On 23.01.19 17:35, Dr. David Alan Gilbert wrote:
> > * Luiz Capitulino (lcapitul...@redhat.com) wrote:
> >> On Wed, 23 Jan 2019 17:12:35 +0100
> >> Max Reitz wrote:
> >>
> >>> On 23.01.19 17:04, Luiz Capit
peed = qdict_get_try_int(qdict, "speed", 0);
> +bool discard = qdict_get_try_bool(qdict, "discard", false);
>
> qmp_block_stream(true, device, device, base != NULL, base, false, NULL,
> - false, NULL, qdict_haskey(qdict, "speed"), speed, true,
> +
d)
> > void global_state_store_running(void)
> > {
> > const char *state = RunState_str(RUN_STATE_RUNNING);
> > +assert(strlen(state) < sizeof(global_state.runstate));
> > strncpy((char *)global_state.runstate,
> > state, sizeof(glo
* Marc-André Lureau (marcandre.lur...@redhat.com) wrote:
> Hi
>
> On Tue, Nov 20, 2018 at 9:22 PM Dr. David Alan Gilbert
> wrote:
> >
> > * Eric Blake (ebl...@redhat.com) wrote:
> > > On 11/20/18 9:27 AM, Marc-André Lureau wrote:
> > > &
- so it's really treating it as a string.
That code is unsafe anyway since it's assuming the received
runstate would be terminated.
Dave
> RunState state;
> bool received;
> } GlobalState;
> --
> 2.17.2
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Kevin Wolf (kw...@redhat.com) wrote:
> Am 24.01.2019 um 11:49 hat Dr. David Alan Gilbert geschrieben:
> > * Kevin Wolf (kw...@redhat.com) wrote:
> > > Am 24.01.2019 um 10:29 hat Vladimir Sementsov-Ogievskiy geschrieben:
> > > > 23.01.2019 18:48,
error.
> >
> > Fixes: c4f26c9f37ce511e5fe629c21c180dc6eb7c5a25
> > Cc: qemu-sta...@nongnu.org
> > Signed-off-by: Markus Armbruster
>
> We should probably have a test case for this.
Perhaps just adding:
drive_add 0 format=help
to the hmp_cmds list in tests/test-hmp.c ?
@@ static const char *hmp_cmds[] = {
> "cpu 0",
> "device_add ?",
> "device_add usb-mouse,id=mouse1",
> +"drive_add ignored format=help",
Reviewed-by: Dr. David Alan Gilbert
> "mouse_button 7",
> "mouse_move 10 10",
> "mouse_button 0",
> --
> 2.17.2
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
log = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', log)
> -log = re.sub(r'^(wrote .* bytes at offset
> .*\n.*KiB.*ops.*sec.*\n){3}',
> - '', log)
> -log = re.sub(r'\[I \+\d+\.\d+\] CLOSED\n?$', '', log)
> -self.assertEqual(log, '')
> +#log = self.vm_a.get_log()
> +#log = re.sub(r'^\[I \d+\.\d+\] OPENED\n', '', log)
> +#log = re.sub(r'^(wrote .* bytes at offset
> .*\n.*KiB.*ops.*sec.*\n){3}',
> + #'', log)
> +#log = re.sub(r'\[I \+\d+\.\d+\] CLOSED\n?$', '', log)
> +#self.assertEqual(log, '')
>
> # test that bitmap is still persistent
> self.vm_a.launch()
> @@ -211,14 +215,16 @@ for cmb in list(itertools.product((True, False),
> repeat=4)):
> name += '_online' if cmb[2] else '_offline'
> name += '_shared' if cmb[3] else '_nonshared'
>
> -inject_test_case(TestDirtyBitmapMigration, name, 'do_test_migration',
> +if False:
> +inject_test_case(TestDirtyBitmapMigration, name, 'do_test_migration',
>*list(cmb))
>
> for cmb in list(itertools.product((True, False), repeat=2)):
> name = ('_' if cmb[0] else '_not_') + 'persistent_'
> name += ('_' if cmb[1] else '_not_') + 'migbitmap'
>
> -inject_test_case(TestDirtyBitmapMigration, name,
> +if name == '_persistent__migbitmap':
> +inject_test_case(TestDirtyBitmapMigration, name,
>'do_test_migration_resume_source', *list(cmb))
>
> if __name__ == '__main__':
> diff --git a/tests/qemu-iotests/169.out b/tests/qemu-iotests/169.out
> index 3a89159833..ae1213e6f8 100644
> --- a/tests/qemu-iotests/169.out
> +++ b/tests/qemu-iotests/169.out
> @@ -1,5 +1,5 @@
> -
> +.
> --
> -Ran 20 tests
> +Ran 1 tests
>
> OK
>
>
>
> --
> Best regards,
> Vladimir
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
cause we try to inactivate already inactive
> block devices), I think this is a symptom of a larger problem. We're
> not taking the state machine serious enough. One-off checks here and
> there are unlikely to ever fully solve the problem of running a command
> in a runstate in which it was never supposed to run.
>
> I wonder whether the QAPI schema should have a field 'run-states' for
> commands, and by default we would only include states where the VM has
> ownership of its resources (e.g. images are activated) and which are not
> temporary states that are automatically left, like finish-migrate.
>
> Then the default for commands is to be rejected in "unusual" runstates
> where we're not expecting user intervention, and we must explicitly
> allow them if they are okay, in fact.
>
> Instead of listing every obscure runstate, maybe we should really use
> categories of runstates instead:
>
> 1. Running
> 2. Paused, owns all resources (like disk images)
> 3. Paused, doesn't own some resources (source VM after migration
>completes, destination before migration completes)
> 4. Paused temporarily for internal reasons (e.g. finish-migrate,
>restore-vm, save-vm)
>
> Most commands should be okay with 1 and 2, but possibly not 3, and
> almost never 4.
The problem is it's tricky to get those groupings right and to figure
out how they all interact. For example it's perfectly fine for most
query type commands to run in (3) and (4), and you need a bunch of
commands to let you recover from failures that might leave you in (3)
and cont is one of those that you might use after a particular form
of failed migration.
Dave
> Kevin
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Vladimir Sementsov-Ogievskiy (vsement...@virtuozzo.com) wrote:
> 24.01.2019 13:10, Dr. David Alan Gilbert wrote:
> > * Vladimir Sementsov-Ogievskiy (vsement...@virtuozzo.com) wrote:
> >> 24.01.2019 12:29, Vladimir Sementsov-Ogievskiy wrote:
> >>> 23.01.2019 18:
e, it's still racy since you could call this partway through the
completion before it's set to finish.
Reviewed-by: Dr. David Alan Gilbert
> for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
> --
> 2.18.0
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Stefano Garzarella (sgarz...@redhat.com) wrote:
> In order to avoid migration issues, we enable DISCARD and
> WRITE ZEROES features only for machine type >= 4.0
>
> Suggested-by: Dr. David Alan Gilbert
> Signed-off-by: Stefano Garzarella
> ---
> hw/block/virtio-blk
* Stefano Garzarella (sgarz...@redhat.com) wrote:
> On Thu, Jan 31, 2019 at 03:40:38PM +0000, Dr. David Alan Gilbert wrote:
> > * Stefano Garzarella (sgarz...@redhat.com) wrote:
> > > In order to avoid migration issues, we enable DISCARD and
> > > WRITE ZEROES features o
87,6 +864,8 @@ static uint64_t virtio_blk_get_features(VirtIODevice
> *vdev, uint64_t features,
> virtio_add_feature(, VIRTIO_BLK_F_GEOMETRY);
> virtio_add_feature(, VIRTIO_BLK_F_TOPOLOGY);
> virtio_add_feature(, VIRTIO_BLK_F_BLK_SIZE);
> +virtio_add_feature(, VIRTIO_BLK_F_DISCARD);
> +virtio_add_feature(, VIRTIO_BLK_F_WRITE_ZEROES);
> if (virtio_has_feature(features, VIRTIO_F_VERSION_1)) {
> if (s->conf.scsi) {
> error_setg(errp, "Please set scsi=off for virtio-blk devices in
> order to use virtio 1.0");
> --
> 2.20.1
>
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Thomas Huth (th...@redhat.com) wrote:
> qtest_start() + qtest_end() should be avoided, since they use the
> global_qtest variable that we want to get rid of in the long run
> Use qtest_init() and qtest_quit() instead.
>
> Signed-off-by: Thomas Huth
Reviewed-by: Dr. Dav
dea of password completion. 123
Reviewed-by: Dr. David Alan Gilbert
> ---
> monitor.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/monitor.c b/monitor.c
> index 6428eb3b7e..70ce9e8a77 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -220,8 +220,6 @@
s this in a separate follow-up series.
>
> Ok, if you have a plan for this, that's fine with me.
>
> > But if people prefer, I can move the existing files in the root
> > directory to monitor/{qmp,hmp}-cmds.c temporarily in this series and
> > then work from there with follow-ups until they are empty (or maybe I
> > don't even have to make them completely empty then).
>
> A plain rename like this won't hurt in the meantime.
Yeh agreed, my brain hurts too much with files of the same name.
Dave
> Regards,
> Daniel
> --
> |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org -o-https://fstop138.berrange.com :|
> |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Kevin Wolf (kw...@redhat.com) wrote:
> Before we can split monitor.c, we need to create a header file that
> contains the common definitions that will be used by multiple source
> files.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
> ---
> monito
* Kevin Wolf (kw...@redhat.com) wrote:
> Monitor.cmd_table contains the handlers for HMP commands, so there is no
> reason to keep it in the state shared with QMP. Move it to MonitorHMP.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
> ---
&g
* Kevin Wolf (kw...@redhat.com) wrote:
> Instead of mixing HMP and QMP monitors in the same function, separate
> the monitor creation function for both.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
> ---
&g
QMP monitor and therefore doesn't use the
> state.
>
> As a first step towards a clean separation between QMP and HMP, let
> MonitorQMP extend Monitor and create a MonitorQMP object only when the
> monitor is actually a QMP monitor.
>
> Signed-off-by: Kevin Wolf
Re
r than it needs to be, but this way
> no non-trivial code modifications are needed. The interfaces between HMP
> and the monitor core can be cleaned up later.
>
> Signed-off-by: Kevin Wolf
(The target_long change was well hidden!)
Reviewed-by: Dr. David Alan Gilbert
> ---
>
783b0616b
> --- /dev/null
> +++ b/monitor/Makefile.objs
> @@ -0,0 +1 @@
> +obj-y += misc.o
> --
> 2.20.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Kevin Wolf (kw...@redhat.com) wrote:
> The ReadLineState in Monitor is only used for HMP monitors. Create
> MonitorHMP and move it there.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
> ---
> include/monitor/monitor.h | 5 +-
> hmp.c
Oh, can you also fix up the paths in writing-qmp-commands.txt?
Thanks for this split!
Dave
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
r than it needs to be, but this way
> no non-trivial code modifications are needed. The interfaces between QMP
> and the monitor core can be cleaned up later.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
> ---
> include/monitor/monitor.h | 1 +
&
s between all
> monitor parts can be cleaned up later.
>
> Signed-off-by: Kevin Wolf
OK, but can you call it anything other than core.* - I regularly end up
deleting things like that!
Other than that,
Reviewed-by: Dr. David Alan Gilbert
> ---
> include/monitor/moni
* Kevin Wolf (kw...@redhat.com) wrote:
> Am 07.06.2019 um 19:29 hat Dr. David Alan Gilbert geschrieben:
> > * Kevin Wolf (kw...@redhat.com) wrote:
> > > Move the monitor core infrastructure from monitor/misc.c to
> > > monitor/core.c. This is code that can be
* Kevin Wolf (kw...@redhat.com) wrote:
> Create a new monitor/ subdirectory and move monitor.c there. As the plan
> is to move the monitor core into separate files, use the chance to
> rename it to misc.c.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
>
frastructure.
>
> Signed-off-by: Kevin Wolf
Reviewed-by: Dr. David Alan Gilbert
> ---
> docs/devel/writing-qmp-commands.txt | 9 +
> hmp.c => monitor/hmp-cmds.c | 2 +-
> qmp.c => monitor/qmp-cmds.c | 2 +-
> MAINTAINERS
adLineState in Monitor is only used for HMP monitors. Create
> >> > MonitorHMP and move it there.
> >> >
> >> > Signed-off-by: Kevin Wolf
> >> > Reviewed-by: Dr. David Alan Gilbert
> >
> >> > @@ -218,6 +
atches? As far as I can see, they've never
> got applied? Has another fix for 169 included instead?
Hmm not sure; they've slipped between the maintainers if not.
1/2 is a qmp.c so while it fixes a migration corner case it's probably
armbru that should take it.
Dave
> Thomas
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
fi01_realize(DeviceState *dev, Error
> **errp)
> }
>
> pfl->wcycle = 0;
> -pfl->cmd = 0;
> +pfl->cmd = 0xff;
> pfl->status = 0;
> /* Hardcoded CFI table */
> /* Standard "QRY" string */
> @@ -1001,5 +1031,14 @@ static int pflash_post_load(void *opaque, int
> version_id)
> pfl->vmstate = qemu_add_vm_change_state_handler(postload_update_cb,
> pfl);
> }
> +
> +/*
> + * Previous to QEMU v4.1 an incorrect value of 0x00 was used for the
> + * READ_ARRAY command.
> + */
> +if (pfl->cmd == 0x00) {
> +pfl->cmd = 0xff;
> +}
> +
> return 0;
> }
> --
> 2.20.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Hardcoded CFI table */
> /* Standard "QRY" string */
> @@ -1001,5 +998,11 @@ static int pflash_post_load(void *opaque, int
> version_id)
> pfl->vmstate = qemu_add_vm_change_state_handler(postload_update_cb,
> pfl);
> }
> +if (version_id < 2) {
> +/* v1 used incorrect value of 0x00 for the READ_ARRAY command. */
> +if (pfl->cmd == 0x00) {
> +pfl->cmd = 0xff;
> +}
> +}
> return 0;
> }
> --
> 2.20.1
>
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
mmand\n", __func__);
> > @@ -645,7 +675,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr
> > offset,
> error_flash:
>qemu_log_mask(LOG_UNIMP, "%s: Unimplemented flash cmd sequence "
> "(offset " TARGET_FMT_plx ", wcycle 0x%x cmd 0x%x value
> 0x%x)"
> "\n", __func__, offset, pfl->wcycle, pfl->cmd, value);
>
> reset_flash:
> > trace_pflash_reset();
> > memory_region_rom_device_set_romd(>mem, true);
> > pfl->wcycle = 0;
> > -pfl->cmd = 0;
> > +pfl->cmd = 0xff;
> > }
> >
> >
> > @@ -761,7 +791,7 @@ static void pflash_cfi01_realize(DeviceState *dev,
> > Error **errp)
> > }
> >
> > pfl->wcycle = 0;
> > -pfl->cmd = 0;
> > +pfl->cmd = 0xff;
> > pfl->status = 0;
> > /* Hardcoded CFI table */
> > /* Standard "QRY" string */
> > @@ -1001,5 +1031,14 @@ static int pflash_post_load(void *opaque, int
> > version_id)
> > pfl->vmstate = qemu_add_vm_change_state_handler(postload_update_cb,
> > pfl);
> > }
> > +
> > +/*
> > + * Previous to QEMU v4.1 an incorrect value of 0x00 was used for the
> > + * READ_ARRAY command.
> > + */
> > +if (pfl->cmd == 0x00) {
> > +pfl->cmd = 0xff;
> > +}
> > +
> > return 0;
> > }
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
ppy to see things marked unmigratable instead for obscure
devices; I don't see the need to worry about migration for stuff
that's not going to be migrated.
Dave
> thanks
> -- PMM
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
len);
> +} else {
> +set_pdma(s, ASYNC, 0, len);
> +s->pdma_cb = do_dma_pdma_cb;
> +esp_raise_drq(s);
> +return;
> +}
> }
> s->dma_left -= len;
> s->async_buf += len;
> @@ -373,8 +
(DeviceState *dev);
> >
> > +void device_class_build_extended_vmsd(DeviceClass *dc);
> > +
> > const char *qdev_fw_name(DeviceState *dev);
> >
> > Object *qdev_get_machine(void);
> > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
> > index 9c7393b08c..432b56f290 100644
> > --- a/stubs/Makefile.objs
> > +++ b/stubs/Makefile.objs
> > @@ -40,4 +40,5 @@ stub-obj-y += pci-host-piix.o
> > stub-obj-y += ram-block.o
> > stub-obj-y += ramfb.o
> > stub-obj-y += fw_cfg.o
> > +stub-obj-y += device.o
> > stub-obj-$(CONFIG_SOFTMMU) += semihost.o
> > diff --git a/stubs/device.c b/stubs/device.c
> > new file mode 100644
> > index 00..e9b4f57e5f
> > --- /dev/null
> > +++ b/stubs/device.c
> > @@ -0,0 +1,7 @@
> > +#include "qemu/osdep.h"
> > +#include "hw/qdev-core.h"
> > +
> > +void device_class_build_extended_vmsd(DeviceClass *dc)
> > +{
> > +return;
> > +}
> > --
> > 2.22.0
>
>
> thanks
> -- PMM
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Peter Maydell (peter.mayd...@linaro.org) wrote:
> On Thu, 8 Aug 2019 at 16:42, Dr. David Alan Gilbert
> wrote:
> >
> > * Peter Maydell (peter.mayd...@linaro.org) wrote:
> > > On Mon, 29 Jul 2019 at 15:59, Damien Hedde
> > > wrote:
> > > >
>
lp_cmd_dump(Monitor *mon, const HMPCommand *cmds,
> > - char **args, int nb_args, int arg_index)
> > -{
> > -const HMPCommand *cmd;
> > -size_t i;
> > -
> > -/* No valid arg need to compare with, dump all in *cmds */
> > -if (arg_index >= nb_args) {
> > -for (cmd = cmds; cmd->name != NULL; cmd++) {
> > -help_cmd_dump_one(mon, cmd, args, arg_index);
> > -}
> > -return;
> > -}
> > -
> > -/* Find one entry to dump */
> > -for (cmd = cmds; cmd->name != NULL; cmd++) {
> > -if (compare_cmd(args[arg_index], cmd->name) &&
> > -((!runstate_check(RUN_STATE_PRECONFIG) ||
> > -cmd_can_preconfig(cmd {
> > -if (cmd->sub_table) {
> > -/* continue with next arg */
> > -help_cmd_dump(mon, cmd->sub_table,
> > - args, nb_args, arg_index + 1);
> > -} else {
> > -help_cmd_dump_one(mon, cmd, args, arg_index);
> > -}
> > -return;
> > -}
> > -}
> > -
> > -/* Command not found */
> > -monitor_printf(mon, "unknown command: '");
> > -for (i = 0; i <= arg_index; i++) {
> > -monitor_printf(mon, "%s%s", args[i], i == arg_index ? "'\n" : " ");
> > -}
> > -}
> > -
> > -static void help_cmd(Monitor *mon, const char *name)
> > -{
> > -char *args[MAX_ARGS];
> > -int nb_args = 0;
> > -
> > -/* 1. parse user input */
> > -if (name) {
> > -/* special case for log, directly dump and return */
> > -if (!strcmp(name, "log")) {
> > -const QEMULogItem *item;
> > -monitor_printf(mon, "Log items (comma separated):\n");
> > -monitor_printf(mon, "%-10s %s\n", "none", "remove all logs");
> > -for (item = qemu_log_items; item->mask != 0; item++) {
> > -monitor_printf(mon, "%-10s %s\n", item->name, item->help);
> > -}
> > -return;
> > -}
> > -
> > -if (parse_cmdline(name, _args, args) < 0) {
> > -return;
> > -}
> > -}
> > -
> > -/* 2. dump the contents according to parsed args */
> > -help_cmd_dump(mon, hmp_cmds, args, nb_args, 0);
> > -
> > -free_cmdline_args(args, nb_args);
> > }
> [...]
>
> Reviewed-by: Markus Armbruster
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Hi David,
>
> On 7/9/19 12:30 PM, Dr. David Alan Gilbert wrote:
> > * Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> >> In the "Read Array Flowchart" the command has a value of 0xFF.
> >>
> &g
o much code, I just felt that if
> I touch this code, I can also make it easier to find these
> handlers, that were scattered over 3 different files.
>
> Changes from V1:
>* move the handlers to block/monitor/block-hmp-cmds.c
>* tiny cleanup for the commit messages
OK, so again,
* Markus Armbruster (arm...@redhat.com) wrote:
> Daniel P. Berrangé writes:
>
> > On Tue, Dec 03, 2019 at 11:06:44AM +, Peter Maydell wrote:
> >> On Tue, 3 Dec 2019 at 10:53, Dr. David Alan Gilbert
> >> wrote:
> >> >
> >>
We seem to be settling out to either fsdev/virtiofsd or tools/virtiofsd
with tools picking up some speed as people seem to want to put a bunch
of other stuff in there.
Unless anyone shouts really loud, I'll work on making it
tools/virtiofsd.
Dave
--
Dr. David Alan Gilbert / dgilb...@redhat.com
v-hmp-cmds.c into either monitor/ or
block/; with that
Reviewed-by: Dr. David Alan Gilbert
we also need a corresponding review by a block person.
Dave
> No functional changes expected other that
> light error message changes by the last patch.
>
> This was inspired b
gt; -size_t pagesize = getpagesize();
> +size_t pagesize = qemu_real_host_page_size;
>
> memory = (memory + pagesize - 1) & -pagesize;
> for (i = 0; i < memory / pagesize; i++) {
> diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
> index 26ffd0d6b5..813f7ec564 100644
> --- a/util/vfio-helpers.c
> +++ b/util/vfio-helpers.c
> @@ -514,9 +514,9 @@ static IOVAMapping *qemu_vfio_add_mapping(QEMUVFIOState
> *s,
> IOVAMapping m = {.host = host, .size = size, .iova = iova};
> IOVAMapping *insert;
>
> -assert(QEMU_IS_ALIGNED(size, getpagesize()));
> -assert(QEMU_IS_ALIGNED(s->low_water_mark, getpagesize()));
> -assert(QEMU_IS_ALIGNED(s->high_water_mark, getpagesize()));
> +assert(QEMU_IS_ALIGNED(size, qemu_real_host_page_size));
> +assert(QEMU_IS_ALIGNED(s->low_water_mark, qemu_real_host_page_size));
> +assert(QEMU_IS_ALIGNED(s->high_water_mark, qemu_real_host_page_size));
> trace_qemu_vfio_new_mapping(s, host, size, index, iova);
>
> assert(index >= 0);
> @@ -567,7 +567,7 @@ static void qemu_vfio_undo_mapping(QEMUVFIOState *s,
> IOVAMapping *mapping,
>
> index = mapping - s->mappings;
> assert(mapping->size > 0);
> -assert(QEMU_IS_ALIGNED(mapping->size, getpagesize()));
> +assert(QEMU_IS_ALIGNED(mapping->size, qemu_real_host_page_size));
> assert(index >= 0 && index < s->nr_mappings);
> if (ioctl(s->container, VFIO_IOMMU_UNMAP_DMA, )) {
> error_setg(errp, "VFIO_UNMAP_DMA failed: %d", -errno);
> @@ -613,8 +613,8 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host,
> size_t size,
> IOVAMapping *mapping;
> uint64_t iova0;
>
> -assert(QEMU_PTR_IS_ALIGNED(host, getpagesize()));
> -assert(QEMU_IS_ALIGNED(size, getpagesize()));
> +assert(QEMU_PTR_IS_ALIGNED(host, qemu_real_host_page_size));
> +assert(QEMU_IS_ALIGNED(size, qemu_real_host_page_size));
> trace_qemu_vfio_dma_map(s, host, size, temporary, iova);
> qemu_mutex_lock(>lock);
> mapping = qemu_vfio_find_mapping(s, host, );
> --
> 2.17.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* John Snow (js...@redhat.com) wrote:
>
>
> On 1/28/20 11:47 AM, Dr. David Alan Gilbert wrote:
> > * John Snow (js...@redhat.com) wrote:
> >>
> >>
> >> On 1/27/20 3:43 PM, Peter Krempa wrote:
> >>> On Mon, Jan 27, 2020 at 14:39:02 -0500, Jo
2 insertions(+), 1024 deletions(-)
> create mode 100644 block/monitor/Makefile.objs
> create mode 100644 block/monitor/block-hmp-cmds.c
> delete mode 100644 device-hotplug.c
> create mode 100644 include/block/block-hmp-cmds.h
>
> --
> 2.17.2
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> On Mon, 2020-02-03 at 19:57 +0000, Dr. David Alan Gilbert wrote:
> > * Maxim Levitsky (mlevi...@redhat.com) wrote:
> > > This patch series is bunch of cleanups to the hmp monitor code.
> > > It mostly moves the blockdev
please don't break savevm/loadvm/delvm until a QMP
> > replacement is added.
> >
>
> Yes, noted. I wonder where userfaultfd write support is these days...
How would that help you there?
Dave
> > The bug was reported at the time when libvirt didn't use blockdev yet,
> >
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
(It's easier to compare if you keep the function order the same)
> ---
> block/monitor/block-hmp-cmds.c | 97 +-
>
gned int nb_prom_envs;
>
> -/* generic hotplug */
> -void hmp_drive_add(Monitor *mon, const QDict *qdict);
> -
> /* pcie aer error injection */
> void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
>
> diff --git a/monitor/misc.c b/monitor/misc.c
> index de1ca4d114..0466c00830 100644
> --- a/monitor/misc.c
> +++ b/monitor/misc.c
> @@ -79,6 +79,7 @@
> #include "sysemu/cpus.h"
> #include "qemu/cutils.h"
> #include "tcg/tcg.h"
> +#include "block/block-hmp-commands.h"
>
> #if defined(TARGET_S390X)
> #include "hw/s390x/storage-keys.h"
> --
> 2.17.2
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Yes, I think that's OK; I can imagine nbd might want to move on it's own
somewhere since it's not really core block code; copying in Eric.
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 138 +
> include/block/block-hmp-commands.h | 9 ++
> include/monitor/hmp.h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 47 ++
> include/block/block-hmp-commands.h | 4 +++
> include/monitor/hmp.h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 388 +
> include/block/block-hmp-commands.h | 4 +
> include/monitor/hmp.h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 64 ++
> include/block/block-hmp-commands.h | 3 ++
> include/monitor/hmp.h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 52 ++
> include/block/block-hmp-commands.h | 6
> include/monitor/hmp.h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Looks OK to me, I'm not clear on the name for 'bdrv_set_monitor_owned'
I'd want a block person to OK that, but:
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cm
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 52 ++
> include/block/block-hmp-commands.h | 6
> include/monitor/hmp.h
* Maxim Levitsky (mlevi...@redhat.com) wrote:
> Signed-off-by: Maxim Levitsky
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/monitor/block-hmp-cmds.c | 138 +
> include/block/block-hmp-commands.h | 9 ++
> include/monitor/hmp.h
es I also like it; I wouldn't worry too much about things parsing error
messages for the exact error message; if anything is doing that then the
corresponding case needs to have big red flags around it.
Dave
> >
> > Perhaps you can give some examples where the proposed decoration helps.
> It helps to tag most monitor messages with error prefix which was the root
> cause of
> me starting to work on this refactoring.
> You suggested this, and I kind of like that idea.
>
> >
> > > > That leaves the ones that are still reported with monitor_printf().
> > > > Converting those to error_report() looks far more tractable to me.
> > >
> > > Yep, in fact I grepped the tree for monitor_printf and there are not
> > > that much instances of this used for error reporting, so it might
> > > be possible to have 'error' prefix on all monitor errors that way
> > > and not only for the block layer.
> >
> > I figure "all" would be more useful than "just for the block layer".
> Yep, the cover letter is outdated, now this patch series touch way
> more that the block layer.
>
> Best regards,
> Maxim Levitsky
>
>
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 956a78118bf
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> hw/m68k/next-cube.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/m68k/next-cube.c
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 8b818e059bf
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: Gerd Hoffmann
> ---
> hw/vfio/display.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> dif
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 132ada80c4a
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> block.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/block.c b/block.c
> inde
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 286a5d201e4
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: "Kővágó, Zoltán"
> ---
> audio/alsaaudio.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 delet
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: fc281c80202
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: Emanuele Giuseppe Esposito
> ---
> tests/qtest/libqos/qgraph.c | 4 ++--
> 1 file changed, 2 inser
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: a5d2f6f8773
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: Shamir Rabinovitch
> ---
> contrib/rdmacm-mux/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deleti
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 6f16da53ffe
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> hw/arm/xlnx-versal-virt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/arm/xlnx-v
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 6105683da35
> Signed-off-by: Philippe Mathieu-Daudé
> ---
> Cc: Laurent Vivier
Reviewed-by: Dr. David Alan Gilbert
> ---
> ui/input-barrier.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 6663a0a3376
> Signed-off-by: Philippe Mathieu-Daudé
> ---
> Cc: Stefano Garzarella
Reviewed-by: Dr. David Alan Gilbert
> ---
> block/io_uring.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
&g
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: d32ca5ad798
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> migration/multifd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/migration/multifd.c
ret = -ENOSPC;;
> total: 1 errors, 1 warnings, 485 lines checked
>
> Reported-by: Luc Michel
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: Paolo Bonzini
> ---
> scripts/checkpatch.pl | 5 +
> 1 file changed, 5 insertions
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 74d71ea16bc
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: Dr. David Alan Gilbert
> Cc: Mark Cave-Ayland
> Cc: Laurent Vivier
> Cc: Paolo Bonzini
> ---
> hw/
* Philippe Mathieu-Daudé (phi...@redhat.com) wrote:
> Fixes: 812d49f2a3e
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Dr. David Alan Gilbert
> ---
> Cc: Justin Terry (VM)
> ---
> target/i386/whpx-all.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
nclude haven't been sent yet, it makes sense to rename the macro now in
> case someone else stumbles on it in the meantime.
>
> Signed-off-by: Stefan Hajnoczi
Reviewed-by: Dr. David Alan Gilbert
> ---
> migration/block.c | 39 ---
>
* Kevin Wolf (kw...@redhat.com) wrote:
> Am 02.01.2020 um 14:25 hat Dr. David Alan Gilbert geschrieben:
> > * Kevin Wolf (kw...@redhat.com) wrote:
> > > Am 19.12.2019 um 15:26 hat Max Reitz geschrieben:
> > > > On 17.12.19 15:59, Kevin Wolf wrote:
> > > >
if (!NVME_PMRCAP_PMRWBM(n->bar.pmrcap)) {
> > +int ret;
> > +ret = msync(n->pmrbuf, n->f_pmr_size, MS_SYNC);
> > + if (!ret) {
> > +NVME_GUEST_ERR(nvme_ub_mmiowr_pmrread_barrier,
> > + "error while persisting data");
> > +}
> > +}
>
> Why is msync(2) done on memory loads instead of stores?
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
this coming from the underlying PCIe spec ?
In PCIe Base 4.0 Rev 0.3 Feb19-2014, section 2.4.1 Transaction ordering,
there's a Table 2-39 and entry B2a in that table is:
'A Read Request must not pass a Posted Request unless B2b applies.'
and a posted request is defined as a 'Memory Write Request or a Message
Request'.
???
Dave
> Stefan
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
iven that the migration state machine is driving the runstate state
machine I think it currently makes sense internally; (although I don't
think it's documented to be in that order or tested to be, which we
might want to fix).
Looking at 234 and 262, it looks like you're calling wait_migration on
both the source and dest; I don't think the dest will see the
POSTMIGRATE. Also note that depending what you're trying to do, with
postcopy you'll be running on the destination before you see COMPLETED.
Waiting for the destination to leave 'inmigrate' state is probably
the best strategy; then wait for the source to be in postmigrate.
You can cause early exits if you see transitions to 'FAILED' - but
actually the destination will likely quit in that case; so it should
be much rarer for you to hit a timeout on a failed migration.
Dave
> Kevin
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
n be fixed when applying this to one of
> maintainer's
> trees.
>
> Sorry for noise.
I can just fix the commit message.
Dave
> Best regards,
> Maxim Levitsky
>
> On Sun, 2020-03-08 at 11:24 +0200, Maxim Levitsky wrote:
> > Signed-off-by: Maxim Levi
0)
> +#
> # @auto-finalize: When false, this job will wait in a PENDING state after it
> has
> # finished its work, waiting for @block-job-finalize before
> # making any block graph changes.
> @@ -2581,6 +2586,7 @@
>'data': { '*job-id': 'str', 'device': 'str', '*base': 'str',
> '*base-node': 'str', '*backing-file': 'str', '*speed': 'int',
> '*on-error': 'BlockdevOnError',
> +'*filter-node-name': 'str',
> '*auto-finalize': 'bool', '*auto-dismiss': 'bool' } }
>
> ##
> --
> 1.8.3.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
}
> +
> + return 0;
> +}
> +
> +TemperatureSensorList *qmp_query_temperature_sensors(Error **errp)
> +{
> +TemperatureSensorList *list = NULL;
> +
> +object_child_foreach_recursive(object_get_root(),
> + query_temperature_sensors_foreach,
> + );
> +return list;
> +}
>
> static TypeInfo tempsensor_interface_type_info = {
> .name = TYPE_TEMPSENSOR_INTERFACE,
> --
> 2.21.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
> (void)s;
> -ret = 0xff;
> -return ret;
> +return 0xff;
> }
>
> static void cirrus_linear_bitblt_write(void *opaque,
> diff --git a/migration/ram.c b/migration/ram.c
> index 04f13feb2e..06cba88632 100644
> --- a/migration/ram.c
> +++ b/mi
gt; dependancy.
> > >
> >
> > Hmm. Actually, matching by node-name never worked. May be just drop it now,
> > and allow only matching by blk-name?
> >
> > And then (in 5.1) implement special qmp commands for precise mapping.
> >
>
> Hmm, it may break someones setup... Bad idea. Probably we can forbid
> auto-generated node-names.
If we want to remove it I guess we have to go through a proper
deprecation; but that's OK.
The thing to keep in mind is that when people say 'the commandline
should match' on source/destination - that's just not true;
so we have to define what actually needs to stay the same for bitmap
migration to work.
Dave
> --
> Best regards,
> Vladimir
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
PE_INTERFACE,
> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> index ca5198438d..77f1c43ce3 100644
> --- a/hmp-commands-info.hx
> +++ b/hmp-commands-info.hx
> @@ -880,4 +880,15 @@ SRST
> Show SEV information.
> ERST
>
> +{
> +.name = "temp",
> +.args_type = "",
> +.params = "",
> +.help = "show device temperatures",
> +.cmd= hmp_info_temp,
> +},
>
> +SRST
> + ``info temp``
> +Show device temperatures.
> +ERST
> --
> 2.21.1
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
y be want to be yanked
> if the migration yank didn't fix it.
In the case of COLO that's not the case though - here we explicitly want
to kill the migration to be able to ensure that we can recover - and
we're under time pressure to get the other member of the pair running
again.
Dave
> Regards,
> Daniel
> --
> |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org -o-https://fstop138.berrange.com :|
> |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
(migration, chardevs, nbd) are just for
> replication. In other use-cases you'd enable the yank feature only on the
> non-essential connections.
>
> > eg doing this in the chardev backend is not desirable, because the bugs
> > with hanging QEMU are typically caused by the way the frontend device
> > uses the chardev blocking I/O calls, instead of non-blocking I/O calls.
> >
> >
> > Regards,
> > Daniel
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
* Laurent Vivier (lviv...@redhat.com) wrote:
> This patch implements HMP version of the virtio QMP commands
>
> Signed-off-by: Laurent Vivier
Reviewed-by: Dr. David Alan Gilbert
With a thought below
> ---
> Makefile| 2 +-
> Makefile.target
ne dead
disk, even if you know and accept it's dead and unresponding, you often
can't kill it off if the device is hung.
> Effectively, the in-QEMU NFS client and NBD client are always operating
> in "soft" mode, but we should always treat that as a bug (which cannot
> be fixed) and
201 - 300 of 484 matches
Mail list logo