Commits
orbit-wp4-colo…
Name already in use
Commits on Feb 23, 2016
-
-
Packets that are sent to the filter queue are usually sent onwards straight away, but if they can't be (e.g. the guest is stopped) they sit in the queue until something causes them to be sent. Flush the queue when teh guest restarts. TODO: I think in a lot of these cases the packets the queue system stops being sent, should be allowed to be sent when the guest is stopped. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Just debug enable/disable etc Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
The packet lists are accessed by: a) The main thread for incoming packets on the socket and network b) the compare thread c) The migration/colo thread (when it calls flush) Mutex them to stop multiple threads changing the lists at the same time. These probably need to turn into RCU lists that would avoid the locks? TODO: Hmm some deadlock potential between the big lock when taken for the monitor commands and the packet lists as we read them in info colo-proxy; anywhere else? Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
colo-proxy: Fixup sequence numbers on secondary
Based on the technique in the earlier kernel colo-proxy. This only handles inbound connections; when it sees the guest send the syn/ack and then the outside world respond with the ack, it uses the number in the ack to figure out the sequence number hte primary was using. Then we have an offset that gets applied to all packets until the next checkpoint comes in. This is also applied to incoming ACKs on these connections so that the secondary guest sees a consistent view. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> More packet stuff; has ack rework
-
colo: Shorten proxy thread name
Thread names limit at about 14 chars, and if they're longer they're ignored. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Ignore sequence mismatches on primary for syn/ack
On an incoming connection ignore the sequence numbers on the syn/ack when doing the compare; the secondary will fix up all future packets to match the primary after it receives the 'ack' from the outside world. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
colo: Add checkpoint numbering to packets
Add a checkpoint index before each packet sent over the socket between the VMs. This is mostly as a sanity check, but it allows the primary to discard packets that are from the previous checkpoint. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Add an info command to dump out the state of the proxy; for debug. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Packets read off the wire are big endian; we don't actually need them to be the correct endian ness internally, but getting it right makes debug a lot easier. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
colo+RDMA: Remap in pin-all mode when switching to COLO
When switching to COLO mode force rmeap of all RAM using the new host addresses. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
-
COLO: Add fine grained stats (secondary side)
Add fine grain stats so we can see where the time goes. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
COLO: Add fine grain stats (primary side)
Add finer grained stats to the primary side to see where the time goes in each checkpoint. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
-
Used the TimedAverage type to hold min/max/avg sizes for colo stats and present them through info migrate. Based partially on zhanghailiang's earlier stats patches. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Automatically switch into a passive checkpoint mode when checkpoints are repeatedly short. This saves CPU time on the SVM (since it's not running) and the network traffic and PVM CPU time for the comparison processing. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
If the rate of miscompares is very quick we don't make much forward progress; start off by limiting the minimum checkpoint period by adding a delay after we tell the secondary we're going to want a checkpoint. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
use condition variable to signal miscompare
Instead of polling colo_proxy's miscompare variable, use a condition variable and signal it; using timedwait this means the waiting is free. (Note we haven't got a wrapper for posix_cond_timedwait possibly because it's not portable?) Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
-
Migration: Emit event at start of pass
Emit an event each time we sync the dirty bitmap on the source; this helps libvirt use postcopy by giving it a kick when it might be a good idea to start the postcopy. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Message-Id: <1450266458-3178-5-git-send-email-dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
-
Postcopy: Send events/change state on incoming side
I missed the calls to send migration events on the destination side as we enter postcopy. Take care when adding them not to do it after state has been freed. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Message-Id: <1450266458-3178-4-git-send-email-dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
-
Hack colo-proxy into colo module
This is part of Li Zhijian's 'integrate colo proxy to colo module' Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Minimal verison of Li Zhijian's 'remove netfilter related code' Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
-
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
-
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com> dgilbert: merged
-
quorum: fix segfault when read fails in fifo mode
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Commits on Feb 18, 2016
-
quorum: Change vote rules for 64 bits hash
If quorum has two children(A, B). A do flush sucessfully, but B flush failed. We MUST choice A as winner rather than just pick anyone of them. Otherwise the filesystem of guest will become read-only with following errors: end_request: I/O error, dev vda, sector 11159960 Aborting journal on device vda3-8 EXT4-fs error (device vda3): ext4_journal_start_sb:327: Detected abort journal EXT4-fs (vda3): Remounting filesystem read-only Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Changlong Xie <xiecl.fnst@cn.fujitsu.com>
Commits on Feb 5, 2016
-
trace: fix PRIx64 constants in trace-events
Commit c8ee0a4 introduced new events containing PRIx64 constants without including the % prefix in the preceding string. This results in a compile error during build if --enable-trace-backends is passed to configure. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-id: 1450566522-6003-1-git-send-email-mark.cave-ayland@ilande.co.uk Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-
Implement a 'shutdown' like function. RDMA doesn't have a direct equivalent of the shutdown call; so set low timeouts and try and force the connection into an error state. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Multiple write notifications at a time
Group write notifications into a single message for multiple notifications to reduce overhead. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commits on Feb 2, 2016
-
Debug: Sequence number control 'ready' messages
For debug only; the 'ready' messages sent on the control path currently contain no data; adding a sequencer counter helps in debugging. TODO: Make this safe if receiving a stream from an older QEMU. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
RDMA: write notify, wire up RAM code
When RDMA receives write-notify messages, inform the ram code. This interface also gets called where RDMA places a zero page. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
rdma: Send notification of page write to source
RDMA has the advantage that data written to the destination just appears in the destination memory space; the downside of this is for COLO (and postcopy) where they have to do something to the received data. Here they need a notification that pages have been updated. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>