From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NuRvG-0001aX-Lj for qemu-devel@nongnu.org; Wed, 24 Mar 2010 10:51:06 -0400 Received: from [140.186.70.92] (port=60699 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NuRvF-0001Zw-2w for qemu-devel@nongnu.org; Wed, 24 Mar 2010 10:51:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NuRvD-0006PB-4l for qemu-devel@nongnu.org; Wed, 24 Mar 2010 10:51:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40198) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NuRvC-0006P3-Tr for qemu-devel@nongnu.org; Wed, 24 Mar 2010 10:51:03 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2OEp1lW013226 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 24 Mar 2010 10:51:01 -0400 From: Amit Shah Date: Wed, 24 Mar 2010 20:19:18 +0530 Message-Id: <1269442173-18421-1-git-send-email-amit.shah@redhat.com> Subject: [Qemu-devel] [PATCH 00/15] v3: virtio-serial-bus fixes, new abi for port discovery List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu list Cc: Amit Shah , Juan Quintela , Gerd Hoffmann , "Michael S. Tsirkin" Hello, These patches rework the way ports are announced to the guests. A control message is used to let the guest know a new port is added. Initial port discovery and port hot-plug work via this way now. This was done to have the host and guest port numbering in sync to avoid surprises after several hotplug/unplug operations and migrations. The ability to assign a particular port number to ports is also added so that management software can control the placement of ports. Differences from v3: - Add iov.[ch] and move memcpy_to_iovec from virtio-balloon.c and two fill_iov implementations from virtio-net.c and virtio-serial-bus.c there. - New fix for not sending data to port if host connection is not open - Rearranged patches: migration fixes first, some trivial ones next, followed by fixes and scatter/gather handling last. - Plug a console port at id 0 only if an id is not supplied by user - Let user know if a port or device failed to initialise on the guest - Add QMP events to let mgmt know port or device addition in the guest failed. Overall: - Users can set the port id they wish to instantiate ports at by using the ,nr= parameter to 'virtserialport' and 'virtconsole' devices - Migration fixes: refuse migration when: - number of active ports is different between the src and destination - max_nr_ports a device can support on the src is more - If a qemu chardev connection to a port is closed on the dest while it was open on the src, inform the guest about this. (Also do the same for port closed on src but open on dest.) - Use control messages for relaying new port information instead of config space (changes abi) - Propagate error message from guest in instantiating a port or a device to the user as well as mgmt via QMP messages. - Handle scatter/gather for control output and data output from the guest Amit Shah (15): virtio-serial: save/load: Ensure target has enough ports virtio-serial: save/load: Ensure nr_ports on src and dest are same. virtio-serial: save/load: Ensure we have hot-plugged ports instantiated virtio-serial: save/load: Send target host connection status if different virtio-serial: Use control messages to notify guest of new ports virtio-serial: whitespace: match surrounding code virtio-serial: Remove redundant check for 0-sized write request virtio-serial: Update copyright year to 2010 virtio-serial: Propagate errors in initialising ports / devices in guest virtio-serial: Add QMP events for failed port/device add virtio-serial: Send out guest data to ports only if port is opened iov: Introduce a new file for helpers around iovs, add iov_from_buf() iov: Add iov_to_buf and iov_size helpers virtio-serial: Handle scatter-gather buffers for control messages virtio-serial: Handle scatter/gather input from the guest Makefile.objs | 1 + QMP/qmp-events.txt | 48 +++++++++ hw/iov.c | 70 ++++++++++++ hw/iov.h | 19 ++++ hw/virtio-balloon.c | 35 +------ hw/virtio-console.c | 4 +- hw/virtio-net.c | 20 +--- hw/virtio-serial-bus.c | 277 +++++++++++++++++++++++++++++++++++++----------- hw/virtio-serial.h | 19 ++-- monitor.c | 3 + monitor.h | 1 + 11 files changed, 380 insertions(+), 117 deletions(-) create mode 100644 hw/iov.c create mode 100644 hw/iov.h