We have developed IPv6 in Qemu -net user mode.
These patches add ICMPv6, NDP, and make UDP and TCP compatible with
IPv6. We have made some refactoring to make current code compatible
with IPv6.
Some patches, like 2 and 13, can be reviewed using
interdiff -w /dev/null patchfile
to get rid of
This patch adds SCALE_S, timer_new_s(), and qemu_clock_get_s in qemu/timer.h to
manage second-scale timers.
Signed-off-by: Guillaume Subiron maet...@subiron.org
Signed-off-by: Samuel Thibault samuel.thiba...@ens-lyon.org
---
include/qemu/timer.h | 32
1 file
This patch adds an IPv6 address to the DNS relay. in6_equal_dns() is
developed using this Slirp attribute.
sotranslate_in/out() are also updated to manage the IPv6 case so the
guest can be able to join the host using one of the Slirp addresses.
Signed-off-by: Guillaume Subiron maet...@subiron.org
This patch simply adds a sa_family_t argument to remove the hardcoded
AF_INET in the call of qemu_socket().
Signed-off-by: Guillaume Subiron maet...@subiron.org
---
slirp/slirp.h | 2 +-
slirp/tcp_input.c | 3 ++-
slirp/tcp_subr.c | 5 +++--
3 files changed, 6 insertions(+), 4 deletions(-)
Before this patch, if sosendto fails, udp_input is executed as if the
packet was sent. This could cause memory leak.
This patch adds a goto bad to cut the execution of this function.
Signed-off-by: Guillaume Subiron maet...@subiron.org
---
slirp/udp.c | 1 +
1 file changed, 1 insertion(+)
diff
This patch makes solookup() compatible with all address family. Also,
this function was only compatible with TCP. Having the socket list in
argument, it is now compatible with UDP too. Finally, some optimization
code is factorized inside the function (the function look at the last
returned result
Disambiguation : icmp_error is renamed into icmp_send_error, since it
doesn't manage errors, but only sends ICMP Error messages.
Adding icmp6_send_error to send ICMPv6 Error messages. This function is
simpler than the v4 version.
Adding some calls in various functions to send ICMP errors, when a
A sa_family_t is now passed in argument to udp_attach instead of using a
hardcoded AF_INET to call qemu_socket().
Signed-off-by: Guillaume Subiron maet...@subiron.org
---
slirp/ip_icmp.c | 2 +-
slirp/udp.c | 7 ---
slirp/udp.h | 2 +-
3 files changed, 6 insertions(+), 5 deletions(-)
This patch adds udp6_input() and udp6_output().
It also adds the IPv6 case in sorecvfrom().
Finally, udp_input() is called by ip6_input().
Signed-off-by: Guillaume Subiron maet...@subiron.org
---
slirp/Makefile.objs | 2 +-
slirp/ip6_input.c | 3 +-
slirp/socket.c | 7 ++-
Basically, this patch adds some switch in various TCP functions to
prepare them for the IPv6 case.
To have something to switch in tcp_input() and tcp_respond(), a new
argument is used to give them the sa_family of the addresses they are
working on.
Signed-off-by: Guillaume Subiron
This patch factorizes the tcpiphdr structure to put the IPv4 fields in
an union, for addition of version 6 in further patch.
Using some macros, retrocompatibility of the existing code is assured.
This patch also fixes the SLIRP_MSIZE and margin computation in various
functions, and makes them
This patch adds the functions needed to handle IPv6 packets. ICMPv6 and
NDP headers are implemented.
Slirp is now able to send NDP Router or Neighbor Advertisement when it
receives Router or Neighbor Solicitation. Using a 64bit-sized IPv6
prefix, the guest is now able to perform stateless
This patch replaces foreign and local address/port couples in Socket
structure by 2 sockaddr_storage which can be casted in sockaddr_in or
sockaddr_in6.
Direct access to address and port is still possible thanks to some
\#define, so retrocompatibility of the existing code is assured.
The
This patch adds IPv6 case in TCP functions refactored by the last
patches.
This also adds IPv6 pseudo-header in tcpiphdr structure.
Finally, tcp_input() is called by ip6_input().
Signed-off-by: Guillaume Subiron maet...@subiron.org
Signed-off-by: Samuel Thibault samuel.thiba...@ens-lyon.org
---
Basically, this patch replaces arp by resolution every time arp
means mac resolution and not specifically ARP.
Some indentation problems are solved in functions that will be modified
in the next patches (ip_input…).
In if_encap, a switch is added to prepare for the IPv6 case. Some code
is
This patchs adds parameters to manage some new options in the qemu -net
command.
Slirp IPv6 address, network prefix, and DNS IPv6 address can be given in
argument to the qemu command.
Defaults parameters are respectively fc00::1, fc00::, /64 and fc00::2.
Signed-off-by: Yann Bordenave
This patch factorizes some duplicate code into a new function,
sotranslate_out(). This function perform the address translation when a
packet is transmitted to the host network. If the paquet is destinated
to the host, the loopback address is used, and if the paquet is
destinated to the virtual
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block-migration.c |2 +-
block.c | 20 +++-
block/backup.c|3 ++-
block/qcow2-cluster.c |2 +-
block/qcow2.c |2 +-
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block.c |5 -
include/block/block.h |5 +
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/block.c b/block.c
index fd05a80..eb11a07 100644
--- a/block.c
+++ b/block.c
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block-migration.c |3 ++-
block.c |4
block/backup.c|2 +-
include/block/block.h |7 +++
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git
this patch adds the ability for targets to stay sparse during
block migration (if the zero_blocks capability is set) and qemu-img convert
even if the target does not have has_zero_init = 1.
the series was especially developed for iSCSI, but it should also work
with other drivers with little or no
Signed-off-by: Peter Lieven p...@kamp.de
---
block/iscsi.c |9 +
1 file changed, 9 insertions(+)
diff --git a/block/iscsi.c b/block/iscsi.c
index a2a961e..1dbbcad 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -1506,6 +1506,14 @@ out:
return ret;
}
+static int
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block.c | 65 +++
1 file changed, 49 insertions(+), 16 deletions(-)
diff --git a/block.c b/block.c
index 0601b02..0c0b0ac 100644
--- a/block.c
+++
Signed-off-by: Peter Lieven p...@kamp.de
---
include/block/block.h | 16
1 file changed, 16 insertions(+)
diff --git a/include/block/block.h b/include/block/block.h
index 1f30a56..5fbab01 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -18,6 +18,22 @@ typedef
this patch adds BlockLimits which introduces discard and write_zeroes
limits and alignment information to the BlockDriverState.
Signed-off-by: Peter Lieven p...@kamp.de
---
include/block/block_int.h | 17 +
1 file changed, 17 insertions(+)
diff --git
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block/iscsi.c | 59 +
1 file changed, 59 insertions(+)
diff --git a/block/iscsi.c b/block/iscsi.c
index c0465aa..1845fc8 100644
--- a/block/iscsi.c
+++
This adds 2 wrappers to read the unallocated_blocks_are_zero and
can_write_zeroes_with_unmap info from the BDI. The wrappers are
required to check for the existence of a backing_hd and
if the devices are opened with the correct flags.
Signed-off-by: Peter Lieven p...@kamp.de
---
block.c
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block.c | 37 -
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/block.c b/block.c
index 0c0b0ac..b28dd42 100644
--- a/block.c
+++ b/block.c
@@ -4234,6
If the target has_zero_init = 0, but supports efficiently
writing zeroes by unmapping we call bdrv_make_zero to
avoid fully allocating the target. This currently
is designed especially for iscsi.
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
qemu-img.c |
Signed-off-by: Peter Lieven p...@kamp.de
---
block/raw_bsd.c |1 +
1 file changed, 1 insertion(+)
diff --git a/block/raw_bsd.c b/block/raw_bsd.c
index b0dd23f..49ac18c 100644
--- a/block/raw_bsd.c
+++ b/block/raw_bsd.c
@@ -150,6 +150,7 @@ static int raw_open(BlockDriverState *bs, QDict
this patch adds a call to completely zero out a block device.
the operation is sped up by checking the block status and
only writing zeroes to the device if they currently do not
return zeroes. optionally the zero writing can be sped up
by setting the flag BDRV_REQ_MAY_UNMAP to emulate the zero
this patch does 2 things:
a) only do additional call outs if BDRV_BLOCK_ZERO is not already set.
b) use the newly introduced bdrv_has_discard_zeroes() to return the
zero state of an unallocated block. the used callout to
bdrv_has_zero_init() is only valid right after bdrv_create.
Signed-off-by: Peter Lieven p...@kamp.de
---
qemu-img.c|8 +---
qemu-img.texi |5 +
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index 926f0a0..c6eff15 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -100,8 +100,10 @@ static void
now that bdrv_co_discard can handle limits we do not need
the request split logic here anymore.
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block/iscsi.c | 67 +
1 file changed, 25 insertions(+),
Reviewed-by: Eric Blake ebl...@redhat.com
Signed-off-by: Peter Lieven p...@kamp.de
---
block/iscsi.c | 14 ++
1 file changed, 14 insertions(+)
diff --git a/block/iscsi.c b/block/iscsi.c
index 47b9cc9..c0465aa 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -1367,6 +1367,20 @@
On 4 July 2013 16:13, Paolo Bonzini pbonz...@redhat.com wrote:
+#ifndef atomic_xchg
+#ifdef __ATOMIC_SEQ_CST
+#define atomic_xchg(ptr, i)({ \
+typeof(*ptr) _new = (i), _old; \
+__atomic_exchange(ptr, _new, _old, __ATOMIC_SEQ_CST);
The latest configure invocation was saved in config-host.mak and could
be extracted from that file to recreate the configuration.
Now it is saved in a new file config.status which can be directly executed
to recreate the configuration. The file name and the comments were copied
from GNU autoconf.
Since df2a6f29a5, bdrv_co_do_writev increases the total_sectors value of
a growable block devices on writes after the current end. This leads to
the virtual disk apparently growing in qcow2_save_vmstate, which in turn
affects the disk size captured by the internal snapshot taken directly
Saving the VM state is done using bdrv_pwrite. This function may perform
a read-modify-write, which in this case results in data being read from
beyond the end of the virtual disk. Since we are actually trying to
access an area which is not a part of the virtual disk, zero_beyond_eof
has to be set
From: Michael R. Hines mrhi...@us.ibm.com
Signed-off-by: Michael R. Hines mrhi...@us.ibm.com
---
docs/rdma.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/rdma.txt b/docs/rdma.txt
index 2aca63b..6d116e2 100644
--- a/docs/rdma.txt
+++ b/docs/rdma.txt
@@ -2,7 +2,6 @@
RDMA Live
From: Michael R. Hines mrhi...@us.ibm.com
This patch implements RDMA-aware fault tolerance for the VM
using Micro-Checkpointing (to be presented at the KVM Forum).
The breakout of the patches is not ideal and is really meant to
kick things off for review, which will likely extend well past 1.7
From: Michael R. Hines mrhi...@us.ibm.com
During micro-checkpointing, the VCPUs get repeatedly paused and
resumed. We need to not freak out when the VM begins micro-checkpointing.
Signed-off-by: Michael R. Hines mrhi...@us.ibm.com
---
arch_init.c | 2 +-
cpus.c
From: Michael R. Hines mrhi...@us.ibm.com
This patch allows the preparation of the migration_bitmap
to be parallelized. For very large VMs, this can take on
the order of 10s of milliseconds, which translates as downtime.
We count the number of cores first, and then handout chunks of
the logdirty
From: Michael R. Hines mrhi...@us.ibm.com
Signed-off-by: Michael R. Hines mrhi...@us.ibm.com
---
docs/mc.txt | 261
1 file changed, 261 insertions(+)
create mode 100644 docs/mc.txt
diff --git a/docs/mc.txt b/docs/mc.txt
new file
From: Michael R. Hines mrhi...@us.ibm.com
Signed-off-by: Michael R. Hines mrhi...@us.ibm.com
---
Makefile.objs | 1 +
configure | 45 +
2 files changed, 46 insertions(+)
diff --git a/Makefile.objs b/Makefile.objs
index 2b6c1fe..15356d6 100644
From: Michael R. Hines mrhi...@us.ibm.com
Since MC will repeatedly call the pre-existing live migration
call path over and over again (forever), the migration_bitmap
initialization only needs to happen once and the destruction of
the bitmap needs to be avoided in successive checkpoints.
Also,
From: Michael R. Hines mrhi...@us.ibm.com
In addition to better handling of new QMP statistics associated
with the migration_bitmap and MC performance, we need to transfer
control from the migration thread to the MC thread more cleanly,
which means dynamically allocating the threads and doing
the
From: Michael R. Hines mrhi...@us.ibm.com
This implements the core logic, all described in docs/mc.txt
Signed-off-by: Michael R. Hines mrhi...@us.ibm.com
---
migration-checkpoint.c | 1589
1 file changed, 1589 insertions(+)
create mode 100644
From: Michael R. Hines mrhi...@us.ibm.com
Building on the previous patches, this finally actually
activates protection of the VM by kicking off an MC thread
after the initial live migration completes. The live migration
thread will get destroyed and the MC thread will run and never die.
From: Michael R. Hines mrhi...@us.ibm.com
The capability allows management software to throttle the MC frequency
during VM application transience.
The qemu-file savevm() functions inform the destination that the incoming
traffic is MC-specific traffic and not vanilla live-migration traffic.
From: Michael R. Hines mrhi...@us.ibm.com
Just as RDMA has custom routines for saving memory,
this provides us with custom routines for loading memory.
Micro-checkpointing needs this support in order to be able
to handle loading of the latest checkpoint into memory
as they are received from the
Hi folks,
Any more comments?
Thanks,
Wanlong Gao
As you know, QEMU can't direct it's memory allocation now, this may cause
guest cross node access performance regression.
And, the worse thing is that if PCI-passthrough is used,
direct-attached-device uses DMA transfer between device and
于 2013/10/18 17:36, Paolo Bonzini 写道:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
block_int.h already included it.
Signed-off-by: Wenchao Xia xiaw...@linux.vnet.ibm.com
Reviewed-by: Eric Blake ebl...@redhat.com
---
block.c |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff
于 2013/10/18 20:38, Eric Blake 写道:
On 10/18/2013 03:36 AM, Paolo Bonzini wrote:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
Signed-off-by: Wenchao Xia xiaw...@linux.vnet.ibm.com
---
include/monitor/monitor.h | 38 +-
include/qapi/qmp/qevent.h | 66
于 2013/10/18 19:22, Markus Armbruster 写道:
Paolo Bonzini pbonz...@redhat.com writes:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
Signed-off-by: Wenchao Xia xiaw...@linux.vnet.ibm.com
---
include/qapi/error.h |5 -
qobject/qerror.c |7 ---
util/error.c |6
于 2013/10/18 19:40, Markus Armbruster 写道:
Paolo Bonzini pbonz...@redhat.com writes:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
The behavior to set sep brings trouble to modification later,
the logic is not changed by add tailing space in fprintf().
Signed-off-by: Wenchao Xia
于 2013/10/18 17:44, Paolo Bonzini 写道:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
This remove additional code path about where to print the error,
error_vprintf() is only the controller now, making future change
easier.
The logic is not changed since when cur_mon = NULL, error_vprintf()
will
于 2013/10/18 17:46, Paolo Bonzini 写道:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
Signed-off-by: Wenchao Xia xiaw...@linux.vnet.ibm.com
---
qobject/qerror.c |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/qobject/qerror.c b/qobject/qerror.c
index 5b487f3..685167a
于 2013/10/18 17:51, Paolo Bonzini 写道:
Il 18/10/2013 03:11, Wenchao Xia ha scritto:
All existing caller are using *cur_mon as its parameter, and *cur_mon
is an internal variable which used inside monitor.c. This patch reduce
the exposing of details in monitor.c, by introduce a new function
hi.all
can we create complete image or start a vm from a snapshot point
thanks
60 matches
Mail list logo