All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jun Kamada <kama@jp.fujitsu.com>
Cc: kama@jp.fujitsu.com, xen-devel@lists.xensource.com
Subject: [PATCH 6/6] pvSCSI (SCSI pass through) driver
Date: Tue, 30 Oct 2007 19:39:29 +0900	[thread overview]
Message-ID: <20071030193928.4428.KAMA@jp.fujitsu.com> (raw)
In-Reply-To: <20071025105803.5A32.KAMA@jp.fujitsu.com>

[-- Attachment #1: Type: text/plain, Size: 342 bytes --]

This patch is for modifying xend in order to use pvscsi driver.
(attach/detach HBA, etc.)

Signed-off-by: Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com>
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
Signed-off-by: Jun Kamada <kama@jp.fujitsu.com>
Signed-off-by: Akira Hayakawa <hayakawa.akira@jp.fujitsu.com>

-----
Jun Kamada

[-- Attachment #2: xend_scsihost.patch --]
[-- Type: application/octet-stream, Size: 18184 bytes --]

# HG changeset patch
# User t.horikoshi@jp.fujitsu.com
# Date 1193736851 -32400
# Node ID 980e5be7bcf419d9b7c91b61a8f7798bb10a6692
# Parent  b28ae5f00553ea053bd4e4576634d8ea49e77bc3
[XEND] add scsihost interface

Signed-off-by: Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com>
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
Signed-off-by: Jun Kamada <kama@jp.fujitsu.com>
Signed-off-by: Akira Hayakawa <hayakawa.akira@jp.fujitsu.com>

diff -r b28ae5f00553 -r 980e5be7bcf4 tools/examples/Makefile
--- a/tools/examples/Makefile	Tue Oct 23 09:26:43 2007 +0100
+++ b/tools/examples/Makefile	Tue Oct 30 18:34:11 2007 +0900
@@ -25,6 +25,7 @@ XEN_SCRIPTS += network-route vif-route
 XEN_SCRIPTS += network-route vif-route
 XEN_SCRIPTS += network-nat vif-nat
 XEN_SCRIPTS += block
+XEN_SCRIPTS += scsihost
 XEN_SCRIPTS += block-enbd block-nbd
 XEN_SCRIPTS += blktap
 XEN_SCRIPTS += vtpm vtpm-delete
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/examples/scsihost
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/examples/scsihost	Tue Oct 30 18:34:11 2007 +0900
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+dir=$(dirname "$0")
+. "$dir/block-common.sh"
+
+log debug "udev event."
+
+case "$command" in
+    add)
+        done=$(xenstore_read_default "$XENBUS_PATH/scsihost" 'MISSING')
+       if [ "$done" != 'MISSING' ]
+           then
+           exit 0
+       fi
+
+       # TODO
+       #xenstore_write "$XENBUS_PATH/scsi" "info"
+       success
+       ;;
+    remove)
+       # TODO
+       ;;
+esac
+
+exit 0
+
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/examples/xen-backend.agent
--- a/tools/examples/xen-backend.agent	Tue Oct 23 09:26:43 2007 +0100
+++ b/tools/examples/xen-backend.agent	Tue Oct 30 18:34:11 2007 +0900
@@ -12,6 +12,9 @@ case "$XENBUS_TYPE" in
     ;;
   vbd)
     /etc/xen/scripts/block "$ACTION"
+    ;;
+  scsihost)
+    /etc/xen/scripts/scsihost "$ACTION"
     ;;
   vtpm)
     /etc/xen/scripts/vtpm "$ACTION"
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/examples/xen-backend.rules
--- a/tools/examples/xen-backend.rules	Tue Oct 23 09:26:43 2007 +0100
+++ b/tools/examples/xen-backend.rules	Tue Oct 30 18:34:11 2007 +0900
@@ -1,5 +1,6 @@ SUBSYSTEM=="xen-backend", KERNEL=="tap*"
 SUBSYSTEM=="xen-backend", KERNEL=="tap*", RUN+="/etc/xen/scripts/blktap $env{ACTION}"
 SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block $env{ACTION}"
+SUBSYSTEM=="xen-backend", KERNEL=="scsihost*", RUN+="/etc/xen/scripts/scsihost $env{ACTION}"
 SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm $env{ACTION}"
 SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script} online"
 SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="offline", RUN+="$env{script} offline"
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/python/xen/xend/XendDevices.py
--- a/tools/python/xen/xend/XendDevices.py	Tue Oct 23 09:26:43 2007 +0100
+++ b/tools/python/xen/xend/XendDevices.py	Tue Oct 30 18:34:11 2007 +0900
@@ -19,7 +19,7 @@
 # A collection of DevControllers 
 #
 
-from xen.xend.server import blkif, netif, tpmif, pciif, iopif, irqif, usbif, vfbif
+from xen.xend.server import blkif, scsihostif, netif, tpmif, pciif, iopif, irqif, usbif, vfbif
 from xen.xend.server.BlktapController import BlktapController
 from xen.xend.server.ConsoleController import ConsoleController
 
@@ -36,6 +36,7 @@ class XendDevices:
 
     controllers = {
         'vbd': blkif.BlkifController,
+        'scsihost': scsihostif.SCSIHostController,
         'vif': netif.NetifController,
         'vtpm': tpmif.TPMifController,
         'pci': pciif.PciController,
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/python/xen/xend/server/scsihostif.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/python/xen/xend/server/scsihostif.py	Tue Oct 30 18:34:11 2007 +0900
@@ -0,0 +1,75 @@
+#============================================================================
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of version 2.1 of the GNU Lesser General Public
+# License as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#============================================================================
+# Copyright (C) 2007 FUJITSU Limited
+#                     Based on the blkif.py
+#============================================================================
+
+
+"""Support for SCSI HBAs.
+"""
+
+import re
+import string
+
+from xen.xend import sxp
+from xen.xend.XendError import VmError
+
+from xen.xend.server.DevController import DevController
+
+class SCSIHostController(DevController):
+    """SCSI HBAs.
+    """
+    
+    def __init__(self, vm):
+        """Create a SCSI HBA.
+        """
+        DevController.__init__(self, vm)
+
+
+    def getDeviceDetails(self, config):
+        """@see DevController.getDeviceDetails"""
+
+        typ = config.get('type')
+        hostno = config.get('hostno')
+        back = { 'type'     : typ,
+                 'hostno'   : hostno,
+               }
+        devid = int(hostno)
+
+        uuid = config.get('uuid')
+        if uuid:
+            back['uuid'] = uuid
+
+        front = { 'type' : typ }
+
+        return (devid, back, front)
+
+
+    def getDeviceConfiguration(self, devid):
+        """@see DevController.configuration"""
+
+        result = DevController.getDeviceConfiguration(self, devid)
+
+        devinfo = self.readBackend(devid, 'uuid', 'type', 'hostno')
+        uuid, typ, hostno = devinfo
+
+        if uuid:
+            result['uuid'] = uuid
+        if typ:
+            result['type'] = typ
+        if hostno:
+            result['hostno'] = hostno
+
+        return result
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py	Tue Oct 23 09:26:43 2007 +0100
+++ b/tools/python/xen/xm/create.py	Tue Oct 30 18:34:11 2007 +0900
@@ -286,6 +286,12 @@ gopts.var('disk', val='phy:DEV,VDEV,MODE
           backend driver domain to use for the disk.
           The option may be repeated to add more than one disk.""")
 
+gopts.var('scsihost', val='TYPE,SCSIHOSTNO',
+          fn=append_value, default=[],
+          use="""Add a SCSI-HBA device to a domain. TYPE is fc or scsi.
+          SCSIHOSTNO is scsi host number that can be seen from /proc/scsi/scsi  
+          .""")
+
 gopts.var('pci', val='BUS:DEV.FUNC',
           fn=append_value, default=[],
           use="""Add a PCI device to a domain, using given params (in hex).
@@ -581,6 +587,15 @@ def configure_disks(config_devs, vals):
         if backend:
             config_vbd.append(['backend', backend])
         config_devs.append(['device', config_vbd])
+
+def configure_scsihost(config_devs, vals):
+    """Create the config for a SCSI HBA.
+    """
+    for (type, no) in vals.scsihost:
+        config_scsihost = ['scsihost',
+                           ['type', type ],
+                           ['hostno', no ] ]
+        config_devs.append(['device', config_scsihost])
 
 def configure_pci(config_devs, vals):
     """Create the config for pci devices.
@@ -789,6 +804,7 @@ def make_config(vals):
 
     config_devs = []
     configure_disks(config_devs, vals)
+    configure_scsihost(config_devs, vals)
     configure_pci(config_devs, vals)
     configure_ioports(config_devs, vals)
     configure_irq(config_devs, vals)
@@ -815,6 +831,19 @@ def preprocess_disk(vals):
             err('Invalid disk specifier: ' + v)
         disk.append(d)
     vals.disk = disk
+
+def preprocess_scsihost(vals):
+    if not vals.scsihost: return
+    scsihost = []
+    for v in vals.scsihost:
+        d = v.split(',')
+        n = len(d)
+        if n == 2:
+            pass
+        else:
+            err('Invalid scsi specifier: ' + v)
+        scsihost.append(d)
+    vals.scsihost = scsihost
 
 def preprocess_pci(vals):
     if not vals.pci: return
@@ -1013,6 +1042,7 @@ def preprocess_vnc(vals):
     
 def preprocess(vals):
     preprocess_disk(vals)
+    preprocess_scsihost(vals)
     preprocess_pci(vals)
     preprocess_ioports(vals)
     preprocess_ip(vals)
diff -r b28ae5f00553 -r 980e5be7bcf4 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py	Tue Oct 23 09:26:43 2007 +0100
+++ b/tools/python/xen/xm/main.py	Tue Oct 30 18:34:11 2007 +0900
@@ -161,6 +161,12 @@ SUBCOMMAND_HELP = {
                         'Destroy a domain\'s virtual block device.'),
     'block-list'    :  ('<Domain> [--long]',
                         'List virtual block devices for a domain.'),
+    'scsihost-attach'  :  ('<Domain> scsi <SCSIHostno> [BackDomain]',
+                        'Create a new virtual SCSIHost device.'),
+    'scsihost-detach'  :  ('<Domain> <SCSIHostno> [-f|--force]',
+                        'Destroy a domain\'s virtual SCSIHost device.'),
+    'scsihost-list'    :  ('<Domain> [--long]',
+                        'List virtual SCSIHost devices for a domain.'),
     'network-attach':  ('<Domain> [type=<type>] [mac=<mac>] [bridge=<bridge>] '
                         '[ip=<ip>] [script=<script>] [backend=<BackDomain>] '
                         '[vifname=<name>] [rate=<rate>] [model=<model>]'
@@ -331,6 +337,9 @@ device_commands = [
     "block-detach",
     "block-list",
     "block-configure",
+    "scsihost-attach",
+    "scsihost-detach",
+    "scsihost-list",
     "network-attach",
     "network-detach",
     "network-list",
@@ -2028,6 +2037,32 @@ def xm_block_list(args):
                    "%(be-path)-30s  "
                    % ni)
 
+def xm_scsihost_list(args):
+    (use_long, params) = arg_check_for_resource_list(args, "scsihost-list")
+
+    dom = params[0]
+    devs = server.xend.domain.getDeviceSxprs(dom, 'scsihost')
+
+    if use_long:
+        map(PrettyPrint.prettyprint, devs)
+    else:
+        hdr = 0
+        for x in devs:
+            if hdr == 0:
+                print 'shost  BE handle state evt-ch ring-ref BE-path'
+                hdr = 1
+            ni = parse_dev_info(x[1])
+            ni['idx'] = int(x[0])
+            print ("%(idx)-3d    "
+                   "%(backend-id)-3d  "
+                   "%(handle)-3d   "
+                   "%(state)-3d    "
+                   "%(event-ch)-3d    "
+                   "%(ring-ref)-5d "
+                   "%(be-path)-30s  "
+                   % ni)
+
+
 def xm_vtpm_list(args):
     (use_long, params) = arg_check_for_resource_list(args, "vtpm-list")
 
@@ -2129,6 +2164,20 @@ def xm_block_configure(args):
 
     (dom, vbd) = parse_block_configuration(args)
     server.xend.domain.device_configure(dom, vbd)
+
+
+def xm_scsihost_attach(args):
+    arg_check(args, 'scsihost-attach', 3, 4)
+
+    dom = args[0]
+
+    scsihost = ['scsihost',
+                ['type', args[1]],
+                ['hostno',   args[2]]]
+    if len(args) == 4:
+        scsihost.append(['backend', args[3]])
+
+    server.xend.domain.device_create(dom, scsihost)
 
 
 def xm_network_attach(args):
@@ -2253,6 +2302,10 @@ def xm_block_detach(args):
             detach(args, 'tap')
         else:
             detach(args, 'vbd')
+
+def xm_scsihost_detach(args):
+    arg_check(args, 'scsihost-detach', 2, 3)
+    detach(args, 'scsihost')
 
 def xm_network_detach(args):
     if serverType == SERVER_XEN_API:
@@ -2449,6 +2502,10 @@ commands = {
     "block-detach": xm_block_detach,
     "block-list": xm_block_list,
     "block-configure": xm_block_configure,
+    # scsihost
+    "scsihost-attach": xm_scsihost_attach,
+    "scsihost-detach": xm_scsihost_detach,
+    "scsihost-list": xm_scsihost_list,
     # network (AKA vifs)
     "network-attach": xm_network_attach,
     "network-detach": xm_network_detach,
diff -r b28ae5f00553 -r 980e5be7bcf4 xen/include/public/io/vscsiif.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/public/io/vscsiif.h	Tue Oct 30 18:34:11 2007 +0900
@@ -0,0 +1,238 @@
+/******************************************************************************
+ * scsiif.h
+ * 
+ * Based on the blkif.h code.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Copyright(c) FUJITSU Limited 2007.
+ */
+
+#ifndef __XEN__PUBLIC_IO_SCSI_H__
+#define __XEN__PUBLIC_IO_SCSI_H__
+
+#include "ring.h"
+#include "../grant_table.h"
+
+#ifdef CONFIG_XEN_FC
+#include <scsi/scsi_transport.h>
+#include <scsi/scsi_transport_fc.h>
+#endif
+
+#define CMND_SCSI			1	/* scsi */
+#define CMND_SCSI_RESET			2	/* scsi */
+
+#ifdef CONFIG_XEN_FC
+#define CMND_GET_HOST_PORT_ID		101	/* ghpi */
+#define CMND_GET_HOST_PORT_TYPE		102	/* ghpt */
+#define CMND_GET_HOST_PORT_STATE	103	/* ghps */
+#define CMND_GET_HOST_ACTIVE_FC4S	104	/* ghaf */
+#define CMND_GET_HOST_SPEED		105	/* ghsp */
+#define CMND_GET_HOST_FABRIC_NAME	106	/* ghfn */
+#define CMND_GET_HOST_STATS		107	/* ghst */
+#define CMND_RESET_HOST_STATS		108	/* rhst */
+#define CMND_ISSUE_HOST_LIP		109	/* ihli */
+#define CMND_GET_STARGET_PORT_ID	121	/* gtpi */
+#define CMND_GET_STARGET_NODE_NAME	122	/* gtnn */
+#define CMND_GET_STARGET_PORT_NAME	123	/* gtpn */
+#define CMND_GET_RPORT_LOSS_TMO		141	/* gplt */
+#define CMND_SET_RPORT_LOSS_TMO		142	/* splt */
+#define CMND_GET_INITIAL_SHOST_ATTRIB	161	/* giha */
+#define CMND_GET_INITIAL_STARGET_ATTRIB	162	/* gita */
+#define CMND_GET_INITIAL_RPORT_ATTRIB	163	/* gipa */
+#define CMND_GET_FUNCTION_TEMPLATE	181	/* gftp */
+#endif
+
+/* ----------------------------------------------------------------------
+	Definition of Ring Structures
+   ---------------------------------------------------------------------- */
+
+#define DEFAULT_CAN_QUEUE	256
+#define VSCSI_MAX_COMMAND_SIZE	16
+#define SG_TABLESIZE		32
+
+#define SCSIIF_REQ_OKAY		0
+#define SCSIIF_BTFRING_BUSY	1
+
+/* Definition of
+ *	union  vscsiif_ftb_sring_entry,
+ *	struct vscsiif_ftb_sring,
+ *	struct vscsiif_ftb_front_ring,
+ *	struct vscsiif_ftb_back_ring,
+ *	vscsiif_ftb_sring_t,
+ *	vscsiif_ftb_front_ring_t,
+ *	vscsiif_ftb_back_ring_t
+*/
+struct vscsiif_ftb_request {
+	uint32_t rqid;
+	uint32_t cmnd;
+	union {
+		/* SCSI */
+		struct scsiif_ftb_request {
+			uint8_t cmnd[VSCSI_MAX_COMMAND_SIZE];
+			uint8_t cmd_len;
+			uint32_t id, lun, channel;
+			uint16_t sc_data_direction;
+			uint16_t use_sg;
+			uint16_t request_bufflen;
+			int32_t timeout_per_command;
+			struct scsiif_request_segment {
+				grant_ref_t gref;
+				uint32_t offset;
+				uint32_t length;
+			} seg[SG_TABLESIZE];
+			uint32_t padding;
+		} scsi;
+#ifdef CONFIG_XEN_FC
+		/* Get_sTarget_Port_Id */
+		/* Get_sTarget_Node_Name */
+		/* Get_sTarget_Port_Name */
+		struct {
+			u32 channel;
+			u32 id;
+		} gtpi, gtnn, gtpn;
+
+		/* Get_rPort_Loss_Tmo */
+		struct {
+			u64 node_name;
+			u64 port_name;
+			u32 port_id;
+			u32 roles;
+		} gplt;
+
+		/* Set_rPort_Loss_Tmo */
+		struct {
+			u64 node_name;
+			u64 port_name;
+			u32 port_id;
+			u32 roles;
+			u32 timeout;
+			u32 padding;
+		} splt;
+#endif
+	} u;
+};
+
+struct vscsiif_ftb_response {
+	uint16_t status;
+	union {
+		struct scsiif_ftb_response {
+		} scsi;
+	} u;
+};
+
+DEFINE_RING_TYPES(vscsiif_ftb, struct vscsiif_ftb_request, struct vscsiif_ftb_response);
+
+
+#define SCSI_SENSE_BUFFERSIZE 	96
+
+/* Definition of
+ *		union  vscsiif_btf_sring_entry,
+ *		struct vscsiif_btf_sring,
+ *		struct vscsiif_btf_front_ring,
+ *		struct vscsiif_btf_back_ring,
+ *		vscsiif_btf_sring_t,
+ *		vscsiif_btf_front_ring_t,
+ *		vscsiif_btf_back_ring_t
+*/
+struct vscsiif_btf_request {
+	uint32_t rqid;
+	int32_t  rslt;
+	union {
+		/* SCSI */
+		struct scsiif_response {
+			uint32_t sense_len;
+			uint8_t sense_buffer[SCSI_SENSE_BUFFERSIZE];
+		} scsi;
+
+#ifdef CONFIG_XEN_FC
+		/* Get_Host_Port_Id */
+		struct {
+			u32 port_id;
+		} ghpi;
+
+		/* Get_Host_Port_Type */
+		struct {
+			enum fc_port_type port_type;
+		} ghpt;
+
+		/* Get_Host_Port_State */
+		struct {
+			enum fc_port_state port_state;
+		} ghps;
+
+		/* Get_Host_Active_Fc4s */
+		struct {
+			u8 active_fc4s[FC_FC4_LIST_SIZE];
+		} ghaf;
+
+		/* Get_Host_SPeed */
+		struct {
+			u32 speed;
+		} ghsp;
+
+		/* Get_Host_Fabric_Name */
+		struct {
+			u64 fabric_name;
+		} ghfn;
+
+		/* Get_Host_STats */
+		struct {
+			struct fc_host_statistics stats;
+		} ghst;
+
+		/* Get_sTarget_Port_Id */
+		struct {
+			u32 port_id;
+		} gtpi;
+
+		/* Get_sTarget_Node_Name */
+		struct {
+			u64 node_name;
+		} gtnn;
+
+		/* Get_sTarget_Port_Name */
+		struct {
+			u64 port_name;
+		} gtpn;
+
+		/* Get_rPort_Loss_Tmo */
+		struct {
+			u32 timeout;
+		} gplt;
+
+		/* Set_rPort_Loss_Tmo */
+		struct {
+			u32 timeout;
+		} splt;
+#endif
+	} u;
+};
+
+struct vscsiif_btf_response {
+	union {
+		struct scsiif_btf_response {
+
+		} scsi;
+	} u;
+};
+
+DEFINE_RING_TYPES(vscsiif_btf, struct vscsiif_btf_request, struct vscsiif_btf_response);
+
+#endif

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

      parent reply	other threads:[~2007-10-30 10:39 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-19  5:15 [PATCH 0/5] pvSCSI (SCSI pass through) driver Jun Kamada
2007-10-19  8:38 ` Keir Fraser
2007-10-19 10:20   ` Ian Pratt
2007-10-22  2:39     ` Jun Kamada
2007-10-22  0:07 ` James Harper
2007-10-23  7:41   ` Jun Kamada
2007-10-22  8:58 ` Keir Fraser
2007-10-23  7:09   ` Jun Kamada
2007-10-23  8:50     ` Keir Fraser
2007-10-23 11:35       ` Jun Kamada
2007-10-23 12:39         ` Keir Fraser
2007-10-24  6:22           ` Jun Kamada
2007-10-24  7:42             ` Keir Fraser
2007-10-25  1:59               ` Jun Kamada
2007-10-30 10:39                 ` [PATCH 0/6] " Jun Kamada
2007-10-30 10:56                   ` Keir Fraser
2007-10-31  8:37                     ` Jun Kamada
2007-10-31  9:10                       ` Keir Fraser
2007-10-31 10:56                         ` Jun Kamada
2007-10-31 11:15                           ` Keir Fraser
2007-11-01 12:14                   ` Stephen C. Tweedie
2007-11-02  0:23                     ` James Harper
2007-11-05  3:30                       ` Jun Kamada
2007-11-05  2:05                     ` Jun Kamada
2007-11-08 21:33                       ` Stephen C. Tweedie
2007-11-12  8:27                         ` Jun Kamada
2007-11-05  3:34                     ` Aaron Dailey
2007-10-30 10:39                 ` [PATCH 1/6] " Jun Kamada
2007-10-30 10:39                 ` [PATCH 2/6] " Jun Kamada
2007-10-30 10:39                 ` [PATCH 3/6] " Jun Kamada
2007-10-30 10:39                 ` [PATCH 4/6] " Jun Kamada
2007-10-30 10:39                 ` [PATCH 5/6] " Jun Kamada
2007-10-30 10:39                 ` Jun Kamada [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071030193928.4428.KAMA@jp.fujitsu.com \
    --to=kama@jp.fujitsu.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.