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
prev 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.