Having "allow-oob" to true for a command does not mean that this command
will always be run in out-of-band mode. The out-of-band quick path will
only be executed if we specify the extra "run-oob" flag when sending the
QMP request:
{ "execute": "command-that-allows-oob",
"arguments": {
For those monitors who has enabled IO thread, we'll offload the
responding procedure into IO thread. The main reason is that chardev is
not thread safe, and we need to do all the read/write IOs in the same
thread. For use_io_thr=true monitors, that thread is the IO thread.
We do this isolation i
Here "oob" stands for "Out-Of-Band". When "allow-oob" is set, it means
the command allows out-of-band execution.
The "oob" idea is proposed by Markus Armbruster in following thread:
https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg02057.html
This new "allow-oob" boolean will be expose
This command is only used to test OOB functionality. It should not be
used for any other purposes.
Signed-off-by: Peter Xu
---
qapi-schema.json | 18 ++
qmp.c| 16
2 files changed, 34 insertions(+)
diff --git a/qapi-schema.json b/qapi-schema.json
in
Update both the developer and spec for the new QMP OOB (Out-Of-Band)
command.
Signed-off-by: Peter Xu
---
docs/devel/qapi-code-gen.txt | 51 +++-
docs/interop/qmp-spec.txt| 49 --
2 files changed, 89 insertions(+
Test the new OOB capability. Here we used the new "x-oob-test" command.
Firstly, we send a lock=true and oob=false command to hang the main
thread. Then send another lock=false and oob=true command (which will
be run inside parser this time) to free that hanged command.
Signed-off-by: Peter Xu
OOB introduced DROP event for flow control. This should not affect old
QMP clients. Add a command batching check to make sure of it.
Signed-off-by: Peter Xu
---
tests/qmp-test.c | 19 +++
1 file changed, 19 insertions(+)
diff --git a/tests/qmp-test.c b/tests/qmp-test.c
index 2
On Mon, Dec 04, 2017 at 08:26:29PM +0800, Shannon Zhao wrote:
> Hi Yang,
>
> On 2017/12/4 20:03, Yang Zhong wrote:
> > On Fri, Dec 01, 2017 at 01:52:49PM +0100, Paolo Bonzini wrote:
> >> > On 01/12/2017 11:56, Yang Zhong wrote:
> >>> > > This issue should be caused by much times of system call b
This commit introcudes a vhost-user-blk backend device, it uses UNIX
domain socket to communicate with QEMU. The vhost-user-blk sample
application should be used with QEMU vhost-user-blk-pci device.
To use it, complie with:
make vhost-user-blk
and start like this:
vhost-user-blk -b /dev/sdb -s /p
Although virtio scsi specification was designed as a replacement for virtio_blk,
there are still many users using virtio_blk. Qemu 2.9 introduced a new device
vhost user scsi which can process I/O in user space for virtio_scsi, this commit
introduces a new vhost user block host device, which can su
Add VHOST_USER_GET_CONFIG/VHOST_USER_SET_CONFIG messages which can be
used for live migration of vhost user devices, also vhost user devices
can benefit from the messages to get/set virtio config space from/to the
I/O target. For the purpose to support virtio config space change,
VHOST_USER_SET_CON
This commit introduces a new vhost-user device for block, it uses a
chardev to connect with the backend, same with Qemu virito-blk device,
Guest OS still uses the virtio-blk frontend driver.
To use it, start QEMU with command line like this:
qemu-system-x86_64 \
-chardev socket,id=char0,path=
Enable VHOST_USER_GET_CONFIG/VHOST_USER_SET_CONFIG/VHOST_USER_SET_CONFIG_FD
messages in libvhost-user library, users can implement their own I/O target
based on the library. This enable the virtio config space delivered between
Qemu host device and the I/O target, also event notifier is added in ca
Hello all,
As you know, AWS has decided to switch to KVM in their clouds. This news make
almost all
china CSPs(clouds service provider) pay more attention on KVM/Qemu, especially
light VM
solution.
Below are intel solution for light VM, qemu-lite.
http://events.linuxfoundation.org/sites/events/
On Tue, 12/05 16:11, David Gibson wrote:
> On Tue, Dec 05, 2017 at 01:05:58PM +0800, Fam Zheng wrote:
> > On Tue, 12/05 06:49, Michael S. Tsirkin wrote:
> > > On Wed, Nov 29, 2017 at 05:18:47PM +0800, Fam Zheng wrote:
> > > > On Wed, 11/29 01:02, no-re...@patchew.org wrote:
> > > > > /tmp/cc3Czn0R.
A general helper to notify the fault thread.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/postcopy-ram.c | 35 ---
migration/postcopy-ram.h | 2 ++
2 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/migration/postcopy-r
If the postcopy down due to some reason, we can always see this on dst:
qemu-system-x86_64: RP: Received invalid message 0x length 0x
However in most cases that's not the real issue. The problem is that
qemu_get_be16() has no way to show whether the returned data is valid or
not, and we
Introducing a new state "postcopy-paused", which can be used when the
postcopy migration is paused. It is targeted for postcopy network
failure recovery.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/migration.c | 2 ++
qapi/migration.json | 5 -
2 files change
Tree is pushed here for better reference and testing (online tree
includes monitor OOB series):
https://github.com/xzpeter/qemu/tree/postcopy-recover-all
This version removed quite a few patches related to migrate-incoming,
instead I introduced a new command "migrate-recover" to trigger the
rec
Introducing new migration state "postcopy-recover". If a migration
procedure is paused and the connection is rebuilt afterward
successfully, we'll switch the source VM state from "postcopy-paused" to
the new state "postcopy-recover", then we'll do the resume logic in the
migration thread (along wit
We will not allow failures to happen when sending data from destination
to source via the return path. However it is possible that there can be
errors along the way. This patch allows the migrate_send_rp_message()
to return error when it happens, and further extended it to
migrate_send_rp_req_page
It was only used for quitting the page fault thread before. Let it be
something more useful - now we can use it to notify a "wake" for the
page fault thread (for any reason), and it only means "quit" if the
fault_thread_quit is set.
Since we changed what it does, renaming it to userfault_event_fd.
When there is IO error on the incoming channel (e.g., network down),
instead of bailing out immediately, we allow the dst vm to switch to the
new POSTCOPY_PAUSE state. Currently it is still simple - it waits the
new semaphore, until someone poke it for another attempt.
One note is that here on ram
Now when network down for postcopy, the source side will not fail the
migration. Instead we convert the status into this new paused state, and
we will try to wait for a rescue in the future.
If a recovery is detected, migration_thread() will reset its local
variables to prepare for that.
Reviewed
Creating new message to reply for MIG_CMD_POSTCOPY_RESUME. One uint32_t
is used as payload to let the source know whether destination is ready
to continue the migration.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/migration.c | 37 +
On the destination side, we cannot wake up all the threads when we got
reconnected. The first thing to do is to wake up the main load thread,
so that we can continue to receive valid messages from source again and
reply when needed.
At this point, we switch the destination VM state from postcopy-p
This patch detects the "resume" flag of migration command, rebuild the
channels only if the flag is set.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/migration.c | 92 ++-
1 file changed, 69 insertions(+), 23 deletions
Let the thread pause for network issues.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/migration.c | 35 +--
migration/migration.h | 1 +
migration/trace-events | 2 ++
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git
After we updated the dirty bitmaps of ramblocks, we also need to update
the critical fields in RAMState to make sure it is ready for a resume.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/ram.c| 37 -
migration/trace-event
This is hook function to be called when a postcopy migration wants to
resume from a failure. For each module, it should provide its own
recovery logic before we switch to the postcopy-active state.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
include/migration/register.h | 2
Add a new vm command MIG_CMD_RECV_BITMAP to request received bitmap for
one ramblock.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/savevm.c | 61 ++
migration/savevm.h | 1 +
migration/trace-events | 2 ++
3
This patch implements the first part of core RAM resume logic for
postcopy. ram_resume_prepare() is provided for the work.
When the migration is interrupted by network failure, the dirty bitmap
on the source side will be meaningless, because even the dirty bit is
cleared, it is still possible that
It was allowed in the past to even cancel a postcopy migration, but it
does not really make sense, and no one should be using it, since
cancelling a migration during postcopy means crashing the VM at no time.
Let's just use re-use this command as a way to pause the postcopy
migration when we detec
Allows the fault thread to stop handling page faults temporarily. When
network failure happened (and if we expect a recovery afterwards), we
should not allow the fault thread to continue sending things to source,
instead, it should halt for a while until the connection is rebuilt.
When the dest ma
Introducing new return path message MIG_RP_MSG_RECV_BITMAP to send
received bitmap of ramblock back to source.
This is the reply message of MIG_CMD_RECV_BITMAP, it contains not only
the header (including the ramblock name), and it was appended with the
whole ramblock received bitmap on the destina
Though we may not need it, now we init both the src/dst migration
objects in migration_object_init() so that even incoming migration
object would be thread safe (it was not).
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/migration.c | 28 +++-
On 2017年12月05日 11:33, Wei Wang wrote:
Vhost-pci is a point-to-point based inter-VM communication solution. This
patch series implements the vhost-pci-net device setup and emulation. The
device is implemented as a virtio device, and it is set up via the
vhost-user protocol to get the neessary in
It will be used when we want to resume one paused migration.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
hmp-commands.hx | 7 ---
hmp.c | 4 +++-
migration/migration.c | 2 +-
qapi/migration.json | 5 -
4 files changed, 12 insertions(+), 6 del
Freeing the SocketAddress struct in socket_start_incoming_migration is
slightly confusing. Let's free the address in the same context where we
allocated it.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/socket.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(
The first allow-oob=true command. It's used on destination side when
the postcopy migration is paused and ready for a recovery. After
execution, a new migration channel will be established for postcopy to
continue.
Signed-off-by: Peter Xu
---
migration/migration.c | 18 ++
qapi
Let the callers take the object, then pass it to migrate_init().
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/migration.c | 7 ++-
migration/migration.h | 2 +-
migration/savevm.c| 5 -
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/migra
Introducing this new command to be sent when the source VM is ready to
resume the paused migration. What the destination does here is
basically release the fault thread to continue service page faults.
Reviewed-by: Dr. David Alan Gilbert
Signed-off-by: Peter Xu
---
migration/savevm.c | 35
On Tue, Dec 05, 2017 at 02:52:39PM +0800, Peter Xu wrote:
> Tree is pushed here for better reference and testing (online tree
> includes monitor OOB series):
>
> https://github.com/xzpeter/qemu/tree/postcopy-recover-all
Sorry, now this series is depending on the OOB series. Hello,
Patchew, hop
The same definitions can also be found in include/hw/ide/ahci.h
so let's remove these #defines from ahci_internal.h.
Signed-off-by: Thomas Huth
---
v2: Also remove TYPE_ICH9_AHCI as suggested by John
hw/ide/ahci_internal.h | 12
1 file changed, 12 deletions(-)
diff --git a/hw/ide
On 12/05/2017 03:01 PM, Jason Wang wrote:
On 2017年12月05日 11:33, Wei Wang wrote:
Vhost-pci is a point-to-point based inter-VM communication solution.
This
patch series implements the vhost-pci-net device setup and emulation.
The
device is implemented as a virtio device, and it is set up via t
Finish the last step to do the final handshake for the recovery.
First source sends one MIG_CMD_RESUME to dst, telling that source is
ready to resume.
Then, dest replies with MIG_RP_MSG_RESUME_ACK to source, telling that
dest is ready to resume (after switch to postcopy-active state).
When sourc
Per-thread gcontext is only used in IOThread (please refer to callers of
g_main_context_push_thread_default), so this patch only affects anything
that will be run in an IOThread. It lets the watcher object be run in
the same context as the caller that added the watcher.
This patch is critical to
Sister command to migrate-recover in QMP.
Signed-off-by: Peter Xu
---
hmp-commands.hx | 13 +
hmp.c | 10 ++
hmp.h | 1 +
3 files changed, 24 insertions(+)
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 32fdd52212..79e28c5228 100644
--- a/hmp-comma
Scsi-block doesn't use the DEFINE_BLOCK_PROPERTIES() macro so it didn't
gain the share-rw back when it was added to all other storage devices.
This option is meaningful here, and need to be used when attaching a
shared storage to guest.
Signed-off-by: Fam Zheng
---
hw/scsi/scsi-disk.c | 1 +
1 f
On 2017年12月05日 15:15, Wei Wang wrote:
On 12/05/2017 03:01 PM, Jason Wang wrote:
On 2017年12月05日 11:33, Wei Wang wrote:
Vhost-pci is a point-to-point based inter-VM communication solution.
This
patch series implements the vhost-pci-net device setup and
emulation. The
device is implemented a
Just so that I notice those patches more easily.
Signed-off-by: Fam Zheng
---
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 0255113470..64a138c380 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1000,6 +1000,7 @@ T: git git://github.com/jasowang
On Fri, Dec 01, 2017 at 01:58:09PM +0100, Juan Quintela wrote:
> We now test the deprecated commands everytime that we test the new
> commands. This makes unnecesary to add tests for deprecated commands.
>
> Signed-off-by: Juan Quintela
> ---
> tests/migration-test.c | 32 ++
* Cornelia Huck [2017-12-04 17:11:24 +0100]:
[...]
This one looks good to me too, so:
Reviewed-by: Dong Jia Shi
>
> (...)
>
> > > Looks sane. We should put a note into the 2.12 changelog as well.
> > >
> >
> > I agree. Who would be responsible for updating the changelog. I'm not
> > fami
* Dong Jia Shi [2017-12-05 15:43:00 +0800]:
> * Cornelia Huck [2017-12-04 17:11:24 +0100]:
>
> [...]
>
> This one looks good to me too, so:
> Reviewed-by: Dong Jia Shi
>
BTW, since we are deprecating s390-squash-mcss, I think any more
improment on it (e.g. more accurate and helpful hint mess
201 - 254 of 254 matches
Mail list logo