From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: [PATCH v4 0/5] libbxl: add support for pvscsi, iteration 4 Date: Fri, 17 Apr 2015 08:30:55 +0000 Message-ID: <1429259460-30491-1-git-send-email-olaf@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Olaf Hering List-Id: xen-devel@lists.xenproject.org Port vscsi=[] and scsi-{attach,detach,list} commands from xend to libxl. TODO: - find better name for ->feature_host (perhaps ->sg_io as used in libvirt?) - maybe use events instead of polling for "state" changes in reconfigure (libxl__wait_for_backend vs. libxl__ev_devstate_wait) - add code to libvirt to actually allow SCSI and target passthrough. The current code is still a decade behind: it expects h:c:t:l notation... - maybe adjust API for xl and libvirt to work directly with .idl provided structs instead of pass domU.cfg strings around Changes between v3 and v4: - Use libxl__device_nextid in libxl__device_vscsi_add - Remove check for duplicate pdev assignment from libxl_device_vscsi_get_host - Caller provides libxl_device_vscsi to libxl_device_vscsi_get_host - Define LIBXL_HAVE_VSCSI - Remove init_val from libxl_vscsi_pdev_type - Move some functions from libxl to libxlu - Introduce libxl_device_vscsi->next_vscsi_dev_id to handle holes - Use Struct in KeyedUnion for ocaml idl - docs: Mention pvscsi in xl and xl.cfg - Turn feature_host into a defbool and add checking - Support pvops and /dev/ nodes in config - Wrap entire libxlu_vscsi.c with ifdef linux - Set remove flag in libxl_device_vscsi_list - Fix vscsiif path in xenstore-paths.markdown - vscsiif.h: add some notes about xenstore layout - Add copyright to libxlu_vscsi.c and libxl_vscsi.c - Scripts to create and delete xen-scsiback nodes in Linux target framework - Remove pvscsi.txt Changes between v2 and v3: - Adjust change for vscsiif.h - Support "naa.wwn:lun" notation in pvops kernel - Add example for pvops kernel using targetcli patch required for python-rtslib: http://article.gmane.org/gmane.linux.scsi.target.devel/8146 - Use vdev variable in libxl_device_vscsi_parse http://lists.xenproject.org/archives/html/xen-devel/2015-03/msg00734.html Changes between v1 and v2: - ported to current staging http://lists.xenproject.org/archives/html/xen-devel/2015-03/msg00030.html Initial attempt was sent a year ago: http://lists.xenproject.org/archives/html/xen-devel/2014-04/msg03958.html Most comments are addressed. This version has been tested with SLES as backend and frontend. This version has been tested with pvops as backend and SLES as frontend. Olaf Hering (5): vscsiif.h: fix WWN notation for p-dev property docs: add vscsi to xenstore-paths.markdown libxl: add support for vscsi vscsiif.h: add some notes about xenstore layout Scripts to create and delete xen-scsiback nodes in Linux target framework docs/man/xl.cfg.pod.5 | 55 +++ docs/man/xl.pod.1 | 18 + docs/misc/xenstore-paths.markdown | 10 + tools/libxl/Makefile | 2 + tools/libxl/libxl.c | 441 ++++++++++++++++++ tools/libxl/libxl.h | 27 ++ tools/libxl/libxl_create.c | 1 + tools/libxl/libxl_device.c | 2 + tools/libxl/libxl_internal.h | 16 + tools/libxl/libxl_types.idl | 56 +++ tools/libxl/libxl_types_internal.idl | 1 + tools/libxl/libxl_vscsi.c | 271 +++++++++++ tools/libxl/libxlu_vscsi.c | 750 +++++++++++++++++++++++++++++++ tools/libxl/libxlutil.h | 21 + tools/libxl/xl.h | 3 + tools/libxl/xl_cmdimpl.c | 184 +++++++- tools/libxl/xl_cmdtable.c | 15 + tools/misc/Makefile | 4 + tools/misc/target-create-xen-scsiback.sh | 94 ++++ tools/misc/target-delete-xen-scsiback.sh | 39 ++ xen/include/public/io/vscsiif.h | 70 ++- 21 files changed, 2078 insertions(+), 2 deletions(-) create mode 100644 tools/libxl/libxl_vscsi.c create mode 100644 tools/libxl/libxlu_vscsi.c create mode 100644 tools/misc/target-create-xen-scsiback.sh create mode 100644 tools/misc/target-delete-xen-scsiback.sh