All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] scsifront/back drivers' common Makefile and header
@ 2006-08-02  8:32 FUJITA Tomonori
  2006-08-02 22:23 ` Jeff Garzik
  0 siblings, 1 reply; 3+ messages in thread
From: FUJITA Tomonori @ 2006-08-02  8:32 UTC (permalink / raw)
  To: xen-devel

# HG changeset patch
# User fujita.tomonori@lab.ntt.co.jp
# Node ID 7111077b493ea53ef055ce38098f8af67f87d749
# Parent  ed8d345449c176cb5fe0ccff4299da782eb63c08
SCSI frontend and backend drivers' common Makefile and header

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>

diff -r ed8d345449c1 -r 7111077b493e buildconfigs/linux-defconfig_xen0_x86_32
--- a/buildconfigs/linux-defconfig_xen0_x86_32	Wed Aug 02 15:11:34 2006 +0900
+++ b/buildconfigs/linux-defconfig_xen0_x86_32	Wed Aug 02 15:14:15 2006 +0900
@@ -491,6 +491,7 @@ CONFIG_IDEDMA_AUTO=y
 #
 # CONFIG_RAID_ATTRS is not set
 CONFIG_SCSI=y
+CONFIG_SCSI_TGT=y
 CONFIG_SCSI_PROC_FS=y
 
 #
@@ -580,6 +581,7 @@ CONFIG_SCSI_SATA_INTEL_COMBINED=y
 # CONFIG_SCSI_DC390T is not set
 # CONFIG_SCSI_NSP32 is not set
 # CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_SRP is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -1322,11 +1324,13 @@ CONFIG_XEN_PCIDEV_BACKEND_PASS=y
 CONFIG_XEN_PCIDEV_BACKEND_PASS=y
 # CONFIG_XEN_PCIDEV_BE_DEBUG is not set
 CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_SCSI_BACKEND=y
 CONFIG_XEN_NETDEV_BACKEND=y
 # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
 CONFIG_XEN_NETDEV_LOOPBACK=y
 # CONFIG_XEN_TPMDEV_BACKEND is not set
 CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_SCSI_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_DISABLE_SERIAL=y
diff -r ed8d345449c1 -r 7111077b493e buildconfigs/linux-defconfig_xen_x86_32
--- a/buildconfigs/linux-defconfig_xen_x86_32	Wed Aug 02 15:11:34 2006 +0900
+++ b/buildconfigs/linux-defconfig_xen_x86_32	Wed Aug 02 15:14:15 2006 +0900
@@ -1049,13 +1049,14 @@ CONFIG_IDEDMA_AUTO=y
 # SCSI device support
 #
 CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=m
+CONFIG_SCSI=y
+CONFIG_SCSI_TGT=y
 CONFIG_SCSI_PROC_FS=y
 
 #
 # SCSI support type (disk, tape, CD-ROM)
 #
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=m
@@ -1157,6 +1158,7 @@ CONFIG_SCSI_DC390T=m
 CONFIG_SCSI_DC390T=m
 CONFIG_SCSI_NSP32=m
 CONFIG_SCSI_DEBUG=m
+# CONFIG_SCSI_SRP is not set
 
 #
 # PCMCIA SCSI adapter support
@@ -3022,11 +3024,13 @@ CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
 # CONFIG_XEN_PCIDEV_BACKEND_PASS is not set
 # CONFIG_XEN_PCIDEV_BE_DEBUG is not set
 CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_SCSI_BACKEND=y
 CONFIG_XEN_NETDEV_BACKEND=y
 # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
 CONFIG_XEN_NETDEV_LOOPBACK=y
 # CONFIG_XEN_TPMDEV_BACKEND is not set
 CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_SCSI_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_DISABLE_SERIAL=y
diff -r ed8d345449c1 -r 7111077b493e linux-2.6-xen-sparse/drivers/xen/Kconfig
--- a/linux-2.6-xen-sparse/drivers/xen/Kconfig	Wed Aug 02 15:11:34 2006 +0900
+++ b/linux-2.6-xen-sparse/drivers/xen/Kconfig	Wed Aug 02 15:14:15 2006 +0900
@@ -84,6 +84,17 @@ config XEN_BLKDEV_BACKEND
 	  block devices to other guests via a high-performance shared-memory
 	  interface.
 
+config XEN_SCSI_BACKEND
+	tristate "SCSI backend driver"
+	depends on XEN_BACKEND && SCSI_TGT
+	default y
+	help
+	  The SCSI backend driver allows the kernel to export its SCSI HBAs
+	  to other guests via a high-performance shared-memory interface.
+	  SCSI requests are redirected to userspace through netlink interface.
+	  The user-space daemon can export disk images, which may be implemented
+	  as files, in memory, or on other hosts across the network.
+
 config XEN_NETDEV_BACKEND
 	tristate "Network-device backend driver"
         depends on XEN_BACKEND && NET
@@ -140,6 +151,14 @@ config XEN_BLKDEV_FRONTEND
 	  dedicated device-driver domain, or your master control domain
 	  (domain 0), then you almost certainly want to say Y here.
 
+config XEN_SCSI_FRONTEND
+	tristate "SCSI frontend driver"
+	depends on XEN && SCSI
+	default y
+	help
+	  The SCSI frontend driver allows the kernel to access SCSI HBAs
+	  within another guest OS.
+
 config XEN_NETDEV_FRONTEND
 	tristate "Network-device frontend driver"
 	depends on XEN && NET
diff -r ed8d345449c1 -r 7111077b493e linux-2.6-xen-sparse/drivers/xen/Makefile
--- a/linux-2.6-xen-sparse/drivers/xen/Makefile	Wed Aug 02 15:11:34 2006 +0900
+++ b/linux-2.6-xen-sparse/drivers/xen/Makefile	Wed Aug 02 15:14:15 2006 +0900
@@ -8,9 +8,11 @@ obj-$(CONFIG_XEN_BALLOON)		+= balloon/
 obj-$(CONFIG_XEN_BALLOON)		+= balloon/
 obj-$(CONFIG_XEN_DEVMEM)		+= char/
 obj-$(CONFIG_XEN_BLKDEV_BACKEND)	+= blkback/
+obj-$(CONFIG_XEN_SCSI_BACKEND)		+= scsiback/
 obj-$(CONFIG_XEN_NETDEV_BACKEND)	+= netback/
 obj-$(CONFIG_XEN_TPMDEV_BACKEND)	+= tpmback/
 obj-$(CONFIG_XEN_BLKDEV_FRONTEND)	+= blkfront/
+obj-$(CONFIG_XEN_SCSI_FRONTEND)		+= scsifront/
 obj-$(CONFIG_XEN_NETDEV_FRONTEND)	+= netfront/
 obj-$(CONFIG_XEN_PCIDEV_BACKEND)	+= pciback/
 obj-$(CONFIG_XEN_PCIDEV_FRONTEND)	+= pcifront/
diff -r ed8d345449c1 -r 7111077b493e xen/include/public/io/scsi.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/public/io/scsi.h	Wed Aug 02 15:14:15 2006 +0900
@@ -0,0 +1,41 @@
+#ifndef __XEN__PUBLIC_IO_SCSI_H__
+#define __XEN__PUBLIC_IO_SCSI_H__
+
+#include "ring.h"
+
+#define SRP_MAX_IU_LEN	256
+#define SRP_CAN_QUEUE 8
+
+struct scsi_request {
+	char buf[SRP_MAX_IU_LEN];
+};
+
+struct scsi_response {
+	char buf[sizeof(struct srp_rsp)];
+};
+
+DEFINE_RING_TYPES(scsi, struct scsi_request, struct scsi_response);
+
+#define SRP_MAX_INDIRECT	((SRP_MAX_IU_LEN -			\
+				  sizeof (struct srp_cmd) -		\
+				  sizeof (struct srp_indirect_buf)) / 16)
+
+#define SRP_MAPPED_PAGES (SRP_CAN_QUEUE * SRP_MAX_INDIRECT)
+#define SRP_RING_PAGES (((sizeof(struct scsi_iovec) * SRP_CAN_QUEUE) \
+			+ PAGE_SIZE - 1) >> PAGE_SHIFT)
+
+struct scsi_iovec {
+	u32 iovcnt;
+	struct iovec iov[SRP_MAX_INDIRECT];
+} __attribute__((packed));
+
+/*
+ * srp_cmd		: 48 bytes
+ * srp_direct_buf	: 16 bytes
+ * srp_indirect_buf	: 20 bytes
+ * SRP_MAX_INDIRECT	: 11
+ * SRP_MAX_MAPPED_PAGES	: 88
+ * SRP_RING_PAGES	: 1
+ */
+
+#endif

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/6] scsifront/back drivers' common Makefile and header
  2006-08-02  8:32 [PATCH 1/6] scsifront/back drivers' common Makefile and header FUJITA Tomonori
@ 2006-08-02 22:23 ` Jeff Garzik
  2006-08-03  4:15   ` FUJITA Tomonori
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff Garzik @ 2006-08-02 22:23 UTC (permalink / raw)
  To: FUJITA Tomonori; +Cc: xen-devel

ACK scsifront and scsiback... nice work.  Much more complete than what 
I've been poking at.

Regards,

	Jeff

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/6] scsifront/back drivers' common Makefile and header
  2006-08-02 22:23 ` Jeff Garzik
@ 2006-08-03  4:15   ` FUJITA Tomonori
  0 siblings, 0 replies; 3+ messages in thread
From: FUJITA Tomonori @ 2006-08-03  4:15 UTC (permalink / raw)
  To: jeff; +Cc: fujita.tomonori, xen-devel

From: Jeff Garzik <jeff@garzik.org>
Subject: Re: [Xen-devel] [PATCH 1/6] scsifront/back drivers' common Makefile	and	header
Date: Wed, 02 Aug 2006 18:23:18 -0400

> ACK scsifront and scsiback... nice work.  Much more complete than what 
> I've been poking at.

Thanks,

Next time I will bring some performance results. If its performance is
good enough for inclusion in Xen main tree, I go to linux-scsi for
discussion about mainline inclusion.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-08-03  4:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-02  8:32 [PATCH 1/6] scsifront/back drivers' common Makefile and header FUJITA Tomonori
2006-08-02 22:23 ` Jeff Garzik
2006-08-03  4:15   ` FUJITA Tomonori

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.