From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH for-4.5 v20 00/12] Remus/Libxl: Remus network buffering and drbd disk Date: Thu, 25 Sep 2014 15:28:31 -0400 Message-ID: <20140925192831.GJ29663@laptop.dumpdata.com> References: <1411625784-4060-1-git-send-email-yanghy@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1411625784-4060-1-git-send-email-yanghy@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Yang Hongyang Cc: ian.campbell@citrix.com, wency@cn.fujitsu.com, ian.jackson@eu.citrix.com, yunhong.jiang@intel.com, eddie.dong@intel.com, xen-devel@lists.xen.org, rshriram@cs.ubc.ca, laijs@cn.fujitsu.com List-Id: xen-devel@lists.xenproject.org On Thu, Sep 25, 2014 at 02:16:12PM +0800, Yang Hongyang wrote: > This patch series adds support for network buffering and drbd disk > in the Remus codebase in libxl. > > the code is also hosted on github: > url: https://github.com/macrosheep/xen/tree/remus-v20 I only had one question in regards to patch: [PATCH for-4.5 v20 07/12] xl/remus: change bool to defbool Otherwise all the other patches that did not have an Review from me look good (and as such I have replied with 'Reviewed-by' on them). All of those that had Ian's Ack on them, looked OK to me. I didn't respond 'Acked-by' on them as I figured I would do it here. Regardless of the #7 question I believe the patches can go in 4.5 and can have 'Acked-by: Konrad Rzeszutek Wilk ' on them. Thank you! > > Changes in v20: > Rebased. > > Changes in v19: > Use defbool for cmdline switch. > Restruct of subkind init and cleanup operation. > Use libxl__device_kind instead of libxl__remus_device_kind > Fix a layer violation issue pointed out by IanJ. > Other minor fixes. > Rebased to the latest staging tree. > > Changes in v18: > Merge match() and setup() api. > Reuse libxl__multidev and libxl__ao_device. > Commit messages and code comments improved. Thanks to Shriram. > Rebased. > > Changes in v17: > Make remus device abstract layer more generic. > Addressed Ian J's comments. > > Changes in v16: > Merge libxl__remus_state and libxl__remus_device_state. > Pass the ops to device abstract layer instead of defined it in the layer. > Optimized subkind ops APIs. > Addressed Ian J's comments. > Rebased. > > Changes in v15: > The first patch in v14 has been taken, so remove it from the patchset. > Add a patch to Update maintained files of REMUS. > Rebased. > > Changes in v14: > Addressed IanJ's comments. > Rebased. > > Changes in v13: > Addressed Konrad's comments. > Rebased. > > Changes in v12: > Add disk buffering cmdline switch. > > Changes in v11: > Addressed comments from Ian J and Shriram. > Add drbd disk implement into this patch series. > > Changes in V10: > Restructured the whole patch series. > Introduce the remus device abstract layer. > Make remus checkpoint asynchronous. > > Changes in V9: > Use async exec script api to exec scripts. > > Changes in V8: > Applied some comments(by IanJ). > Merge some struct definitions to it's implementation. > (2/3/5 in V7 => 3 in V8) > > Changes in V7: > Applied missing comments(by IanJ). > Applied Shriram comments. > > merge netbufering tangled setup/teardown code into one patch. > (2/6/8 in V6 => 5 in V7. 9/10 in V6 => 7 in V7) > > Changes in V6: > Applied Ian Jackson's comments of V5 series. > the [PATCH 2/4 V5] is split by small functionalities. > > [PATCH 4/4 V5] --> [PATCH 13/13] netbuffer is default enabled. > > Changes in V5: > > Merge hotplug script patch (2/5) and hotplug script setup/teardown > patch (3/5) into a single patch. > > Changes in V4: > > [1/5] Remove check for libnl command line utils in autoconf checks > > [2/5] minor nits > > [3/5] define LIBXL_HAVE_REMUS_NETBUF in libxl.h > > [4/5] clean ups. Make the usleep in checkpoint callback asynchronous > > [5/5] minor nits > > Changes in V3: > [1/5] Fix redundant checks in configure scripts > (based on Ian Campbell's suggestions) > > [2/5] Introduce locking in the script, during IFB setup. > Add xenstore paths used by netbuf scripts > to xenstore-paths.markdown > > [3/5] Hotplug scripts setup/teardown invocations are now asynchronous > following IanJ's feedback. However, the invocations are still > sequential. > > [5/5] Allow per-domain specification of netbuffer scripts in xl remus > commmand. > > And minor nits throughout the series based on feedback from > the last version > > Changes in V2: > [1/5] Configure script will automatically enable/disable network > buffer support depending on the availability of the appropriate > libnl3 version. [If libnl3 is unavailable, a warning message will be > printed to let the user know that the feature has been disabled.] > > use macros from pkg.m4 instead of pkg-config commands > removed redundant checks for libnl3 libraries. > > [3,4/5] - Minor nits. > > Version 1: > > [1/5] Changes to autoconf scripts to check for libnl3. Add linker flags > to libxl Makefile. > > [2/5] External script to setup/teardown network buffering using libnl3's > CLI. This script will be invoked by libxl before starting Remus. > The script's main job is to bring up an IFB device with plug qdisc > attached to it. It then re-routes egress traffic from the guest's > vif to the IFB device. > > [3/5] Libxl code to invoke the external setup script, followed by netlink > related setup to obtain a handle on the output buffers attached > to each vif. > > [4/5] Libxl interaction with network buffer module in the kernel via > libnl3 API. > > [5/5] xl cmdline switch to explicitly enable network buffering when > starting remus. > > > Few things to note(by shriram): > > a) Based on previous email discussions, the setup/teardown task has > been moved to a hotplug style shell script which can be customized as > desired, instead of implementing it as C code inside libxl. > > b) Libnl3 is not available on NetBSD. Nor is it available on CentOS > (Linux). So I have made network buffering support an optional feature > so that it can be disabled if desired. > > c) NetBSD does not have libnl3. So I have put the setup script under > tools/hotplug/Linux folder. > > thanks, > Yang. > > Legend: > A - acked > D - previous acked, but new change introduced so acked-by dropped > M - Modified > S - the same version as last round > No marker - new patch > > Yang Hongyang (12): > A libxl: introduce libxl__multidev_prepare_with_aodev > A libxl: Extend libxl__ao_device with a libxl__ev_child member > A autoconf: add libnl3 dependency for Remus network buffering support > S libxl/remus: introduce an abstract Remus device layer > A libxl/remus: setup and control network output buffering > A libxl/remus: setup and control disk replication for DRBD backends > S xl/remus: change bool to defbool > S xl/remus: cmdline switch to explicitly enable unsafe configurations > A xl/remus: cmdline switches and config vars to control network > buffering > A xl/remus: add a cmdline switch to disable disk replication > A libxl/remus: add LIBXL_HAVE_REMUS to indicate Remus support in libxl > S MAINTAINERS: update maintained files of Remus > > MAINTAINERS | 7 + > README | 4 + > config/Tools.mk.in | 4 + > docs/README.remus | 16 + > docs/man/xl.conf.pod.5 | 6 + > docs/man/xl.pod.1 | 30 +- > docs/misc/xenstore-paths.markdown | 4 + > tools/configure.ac | 16 + > tools/hotplug/Linux/Makefile | 2 + > tools/hotplug/Linux/block-drbd-probe | 87 ++++++ > tools/hotplug/Linux/remus-netbuf-setup | 230 +++++++++++++++ > tools/libxl/Makefile | 15 + > tools/libxl/libxl.c | 75 ++++- > tools/libxl/libxl.h | 6 + > tools/libxl/libxl_device.c | 14 +- > tools/libxl/libxl_dom.c | 170 ++++++++++- > tools/libxl/libxl_internal.h | 195 ++++++++++++- > tools/libxl/libxl_netbuffer.c | 517 +++++++++++++++++++++++++++++++++ > tools/libxl/libxl_nonetbuffer.c | 54 ++++ > tools/libxl/libxl_remus_device.c | 296 +++++++++++++++++++ > tools/libxl/libxl_remus_disk_drbd.c | 257 ++++++++++++++++ > tools/libxl/libxl_types.idl | 10 +- > tools/libxl/libxl_types_internal.idl | 2 + > tools/libxl/xl.c | 4 + > tools/libxl/xl.h | 1 + > tools/libxl/xl_cmdimpl.c | 42 ++- > tools/libxl/xl_cmdtable.c | 11 +- > 27 files changed, 2030 insertions(+), 45 deletions(-) > create mode 100755 tools/hotplug/Linux/block-drbd-probe > create mode 100644 tools/hotplug/Linux/remus-netbuf-setup > create mode 100644 tools/libxl/libxl_netbuffer.c > create mode 100644 tools/libxl/libxl_nonetbuffer.c > create mode 100644 tools/libxl/libxl_remus_device.c > create mode 100644 tools/libxl/libxl_remus_disk_drbd.c > > -- > 1.9.1 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel