Re: [PATCH 08/23] ufs-exynos: move setting the the dma alignment to the init method

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

Use the SCSI host's dma_alignment field and set it in ->init and remove
the now unused config_scsi_dev method.


Reviewed-by: Bart Van Assche 

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/a81db761-7ed2-4e4b-834f-7641f6199fcc%40acm.org.


Re: [PATCH 07/23] scsi: add a dma_alignment field to the host and host template

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

Get drivers out of the business of having to call the block layer
dma alignment limits helpers themselves.


Reviewed-by: Bart Van Assche 

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/47028fba-7fb0-4eda-81a2-ccf439cfec6a%40acm.org.


Re: [PATCH 09/23] scsi: use the atomic queue limits API in scsi_add_lun

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

Switch scsi_add_lun to use the atomic queue limits API to update the
max_hw_sectors for devices with quirks.


Reviewed-by: Bart Van Assche 

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/bb3b5924-d266-49f5-944f-5e7ee3d3b5b7%40acm.org.


Re: [PATCH 23/23] block: remove now unused queue limits helpers

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

Signed-off-by: Christoph Hellwig 


Reviewed-by: Bart Van Assche 

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/d64f697b-7349-4592-814a-00124afb6737%40acm.org.


Re: [PATCH 10/23] scsi: add a device_configure method to the host template

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

This is a version of ->slave_configure that also takes a queue_limits
structure that the caller applies, and thus allows drivers to reconfigure
the queue using the atomic queue limits API.

In the long run it should also replace ->slave_configure entirely as
there is no need to have two different methods here, and the slave
name in addition to being politically charged also has no basis in
the SCSI standards or the kernel code.


There are two methods with names that are politically charged:
slave_configure() and slave_alloc(). Shouldn't both be renamed?


 * Status: OPTIONAL
+*
+* Note: slave_configure is the legacy version, use device_configure for
+* all new code.
 */
+   int (* device_configure)(struct scsi_device *, struct queue_limits 
*lim);
int (* slave_configure)(struct scsi_device *);


The name "device_configure" may make people wonder whether that method
perhaps configures a struct device instance. How about using the name
"sdev_configure" instead of "device_configure" to make it more clear
that this method is used to configure a SCSI device?

Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/b3ee2dec-3258-4c9f-81d8-0a266128b9ef%40acm.org.


Re: [PATCH 02/23] bsg: pass queue_limits to bsg_setup_queue

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

This allows bsg_setup_queue to pass them to blk_mq_alloc_queue and thus
set up the limits at queue allocation time.


Reviewed-by: Bart Van Assche 

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/1159bc83-f252-49fe-a15a-e0d0eb18661f%40acm.org.


Re: [PATCH 04/23] scsi: initialize scsi midlayer limits before allocating the queue

2024-03-25 Thread Bart Van Assche

On 3/24/24 16:54, Christoph Hellwig wrote:

Turn __scsi_init_queue into scsi_init_limits which initializes
queue_limits structure that can be passed to blk_mq_alloc_queue.


Reviewed-by: Bart Van Assche 

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/26f51e14-0625-4225-aaf0-f4f7bff5c2ba%40acm.org.


Re: [PATCH 1/2] scsi: core: scsi_device_online() return false if state is SDEV_CANCEL

2023-09-22 Thread Bart Van Assche

On 9/22/23 02:36, Wenchao Hao wrote:

SDEV_CANCEL is set when removing device and scsi_device_online() should
return false if sdev_state is SDEV_CANCEL.

IO hang would be caused if return true when state is SDEV_CANCEL with
following order:

T1: T2:scsi_error_handler
__scsi_remove_device()
   scsi_device_set_state(sdev, SDEV_CANCEL)
scsi_eh_flush_done_q()
if (scsi_device_online(sdev))
  scsi_queue_insert(scmd,...)

The command added by scsi_queue_insert() would never be handled any
more.


Why not? I think the blk_mq_destroy_queue() call in 
__scsi_remove_device() will cause it to fail.


Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/50b20a3e-e264-4788-8e52-f7b57cf944f0%40acm.org.


Re: [PATCH 2/2] scsi: scsi_error: Fix device reset is not triggered

2023-09-22 Thread Bart Van Assche

On 9/22/23 02:36, Wenchao Hao wrote:

Fix the issue of skipping scsi_try_bus_device_reset() for devices
which is in progress of removing in following order:

T1: T2:scsi_error_handle
__scsi_remove_device
   scsi_device_set_state(sdev, SDEV_DEL)
// would skip device with SDEV_DEL state
shost_for_each_device()
  scsi_try_bus_device_reset
flush all commands
  ...
  scsi_device is released

Some drivers like smartpqi only implement eh_device_reset_handler,
if device reset is skipped, the commands which had been sent to
firmware or devices hardware are not cleared. The error handle
would flush all these commands in scsi_unjam_host().

When the commands are finished by hardware, use after free issue is
triggered.

Add parameter "check_state" to macro shost_for_each_device() to
determine if check device status when traversal scsi_device
of Scsi_Host, and set this parameter to false when traversal
in scsi_error_handle to address this issue.


The above is incomprehensible to me. Please explain more clearly why 
this change is needed.



diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index d0911bc28663..db8b9e42267c 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -704,6 +704,23 @@ int scsi_cdl_enable(struct scsi_device *sdev, bool enable)
return 0;
  }
  
+static int __scsi_device_get(struct scsi_device *sdev, bool check_state)


"check_state" is a bad argument name because it does not clearly explain 
the purpose of this argument. Would "include_deleted" perhaps be a 
better name?



+{
+   if (check_state &&
+   (sdev->sdev_state == SDEV_DEL || sdev->sdev_state == SDEV_CANCEL))
+   goto fail;
+   if (!try_module_get(sdev->host->hostt->module))
+   goto fail;
+   if (!get_device(>sdev_gendev))
+   goto fail_put_module;
+   return 0;
+
+fail_put_module:
+   module_put(sdev->host->hostt->module);
+fail:
+   return -ENXIO;
+}


Looking at the above code, I think we need two functions: one that does 
not include the sdev->sdev_state check and a second function that 
includes the sdev->sdev_state check (scsi_device_get()) and calls the 
first. That will result in code that is easier to read than calls to a 
function with a boolean argument.



diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index c498a12f7715..e166d053c839 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -389,21 +389,25 @@ extern void __starget_for_each_device(struct scsi_target 
*, void *,
  
  /* only exposed to implement shost_for_each_device */

  extern struct scsi_device *__scsi_iterate_devices(struct Scsi_Host *,
- struct scsi_device *);
+ struct scsi_device *,
+ bool);
  
  /**

   * shost_for_each_device - iterate over all devices of a host
   * @sdev: the  scsi_device to use as a cursor
   * @shost: the  scsi_host to iterate over
+ * @check_state: if skip check scsi_device's state to skip some devices
+ *   scsi_device with SDEV_DEL or SDEV_CANCEL would be skipped
+ *   if this is true
   *
   * Iterator that returns each device attached to @shost.  This loop
   * takes a reference on each device and releases it at the end.  If
   * you break out of the loop, you must call scsi_device_put(sdev).
   */
-#define shost_for_each_device(sdev, shost) \
-   for ((sdev) = __scsi_iterate_devices((shost), NULL); \
+#define shost_for_each_device(sdev, shost, check_state) \
+   for ((sdev) = __scsi_iterate_devices((shost), NULL, check_state); \
 (sdev); \
-(sdev) = __scsi_iterate_devices((shost), (sdev)))
+(sdev) = __scsi_iterate_devices((shost), (sdev), check_state))
  
  /**

   * __shost_for_each_device - iterate over all devices of a host (UNLOCKED)


Since only the SCSI error handler passes 0 as 'check_state' argument to 
shost_for_each_device(), instead of adding a boolean argument to that 
macro, please do the following:

* Introduce a new macro for the check_state = 1 case.
* Keep the semantics for shost_for_each_device().

With this approach no SCSI LLDs will have to be modified.

Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/ce9cef41-29e2-4056-a60b-b0e4ee1cc17e%40acm.org.


Re: [PATCH 2/2] scsi: Add comment of target_destroy in scsi_host_template

2023-09-22 Thread Bart Van Assche

On 9/22/23 02:38, Wenchao Hao wrote:

Add comment to tell callback function target_destroy of
scsi_host_template is called in atomic context.

Signed-off-by: Wenchao Hao 
---
  include/scsi/scsi_host.h | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
index 49f768d0ff37..a72248fa5adf 100644
--- a/include/scsi/scsi_host.h
+++ b/include/scsi/scsi_host.h
@@ -245,6 +245,9 @@ struct scsi_host_template {
 * midlayer calls this point so that the driver may deallocate
 * and terminate any references to the target.
 *
+* Note: this callback in called with spin_lock held, so donot
+* call functions might cause schedule
+*


This comment should mention which spinlock is held.

Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/9567a78a-baf8-432b-b279-cfc56d370a1d%40acm.org.


Re: Todo list for open-iscsi

2020-07-31 Thread Bart Van Assche
On 2020-07-30 21:58, sonu kumar wrote:
> I looked into the TODO list of open-iscsi. It is quite old and written
> on July 7th,2011. Do we have any updated version of it?
> 
> I am looking for some low hanging tasks to getting started with
> open-iscsi and iscsi. It would be really helpful if somebody helps me
> to figure it out.

How about adding support for MaxOutstandingR2T > 1? See also "Is
MaxOutstandingR2T hardcoded?"
(https://groups.google.com/forum/#!topic/open-iscsi/d9bUoaYZJiY).

Thanks,

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/2fe3c05a-6340-baba-8729-2a24f2ed5a84%40acm.org.


Re: [PATCH v2] iscsi: Report connection state on sysfs

2020-03-06 Thread Bart Van Assche

On 3/6/20 11:59 AM, Gabriel Krisman Bertazi wrote:

+static const char *const connection_state_names[] = {
+   [ISCSI_CONN_UP] = "up",
+   [ISCSI_CONN_DOWN] = "down",
+   [ISCSI_CONN_FAILED] = "failed"
+};
+
+static ssize_t show_conn_state(struct device *dev,
+  struct device_attribute *attr, char *buf)
+{
+   struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent);
+   const char *state = "unknown";
+
+   if (conn->state < ARRAY_SIZE(connection_state_names))
+   state = connection_state_names[conn->state];
+
+   return sprintf(buf, "%s\n", state);
+}
+static ISCSI_CLASS_ATTR(conn, state, S_IRUGO, show_conn_state,
+   NULL);


Thank you for having made this change.


+/* iscsi class connection state */
+enum {
+   ISCSI_CONN_UP = 0,
+   ISCSI_CONN_DOWN,
+   ISCSI_CONN_FAILED,
+};
+
  struct iscsi_cls_conn {
struct list_head conn_list; /* item in connlist */
struct list_head conn_list_err; /* item in connlist_err */
@@ -198,6 +205,7 @@ struct iscsi_cls_conn {
struct iscsi_endpoint *ep;
  
  	struct device dev;		/* sysfs transport/container device */

+   unsigned int state;
  };


Can 'state' have another value than those declared in the enumeration 
type? If not, how about changing the type of 'state' from 'unsigned int' 
into 'enum ...'? If that change is made, a check will have to be added 
in show_conn_state() whether conn->state >= 0 since the C standard does 
not guarantee whether enumeration types are signed or unsigned.


Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/be183875-967a-402a-7fb4-3d1db3bca0f8%40acm.org.


Re: [PATCH v2] iscsi: Report connection state on sysfs

2020-03-05 Thread Bart Van Assche

On 3/5/20 11:20 AM, Gabriel Krisman Bertazi wrote:

Bart Van Assche  writes:


On 3/5/20 7:35 AM, Gabriel Krisman Bertazi wrote:

+static const struct {
+   int value;
+   char *name;
+} connection_state_names[] = {
+   {ISCSI_CONN_UP, "up"},
+   {ISCSI_CONN_DOWN, "down"},
+   {ISCSI_CONN_FAILED, "failed"}
+};
+
+static const char *connection_state_name(int state)
+{
+   int i;
+
+   for (i = 0; i < ARRAY_SIZE(connection_state_names); i++) {
+   if (connection_state_names[i].value == state)
+   return connection_state_names[i].name;
+   }
+   return NULL;
+}
+
+static ssize_t show_conn_state(struct device *dev,
+  struct device_attribute *attr, char *buf)
+{
+   struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent);
+
+   return sprintf(buf, "%s\n", connection_state_name(conn->state));
+}
+static ISCSI_CLASS_ATTR(conn, state, S_IRUGO, show_conn_state,
+   NULL);


What has been changed in v2 compared to v1? Please always include a
changelog when posting a new version.

Additionally, it seems like the comment I posted on v1 has not been
addressed?


Hi Bart,

v2 no longer has the dependency for specific values for the state, as
you requested.  It follows the pattern in similar places in the iscsi
code.  Why would designated initializers be better than my solution?


Hi Gabriel,

How about removing the loop as follows?

static const char *const connection_state_names[] = {
[ISCSI_CONN_UP] = "up",
[ISCSI_CONN_DOWN]   = "down",
[ISCSI_CONN_FAILED] = "failed",
};

...
if ((unsigned)conn->state < ARRAY_SIZE(connection_state_names))
return sprintf(buf, "%s\n",
connection_state_names[conn->state]);
else
...
...

Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/b2b62579-b2b6-b797-501b-186ac24df399%40acm.org.


Re: [PATCH v2] iscsi: Report connection state on sysfs

2020-03-05 Thread Bart Van Assche

On 3/5/20 7:35 AM, Gabriel Krisman Bertazi wrote:

+static const struct {
+   int value;
+   char *name;
+} connection_state_names[] = {
+   {ISCSI_CONN_UP, "up"},
+   {ISCSI_CONN_DOWN, "down"},
+   {ISCSI_CONN_FAILED, "failed"}
+};
+
+static const char *connection_state_name(int state)
+{
+   int i;
+
+   for (i = 0; i < ARRAY_SIZE(connection_state_names); i++) {
+   if (connection_state_names[i].value == state)
+   return connection_state_names[i].name;
+   }
+   return NULL;
+}
+
+static ssize_t show_conn_state(struct device *dev,
+  struct device_attribute *attr, char *buf)
+{
+   struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent);
+
+   return sprintf(buf, "%s\n", connection_state_name(conn->state));
+}
+static ISCSI_CLASS_ATTR(conn, state, S_IRUGO, show_conn_state,
+   NULL);


What has been changed in v2 compared to v1? Please always include a 
changelog when posting a new version.


Additionally, it seems like the comment I posted on v1 has not been 
addressed?


Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/bc70bd6d-6d13-4d1c-8559-140411e361d9%40acm.org.


Re: [PATCH] iscsi: Report connection state on sysfs

2020-03-04 Thread Bart Van Assche

On 3/4/20 2:57 PM, Gabriel Krisman Bertazi wrote:

+static const struct {
+   int state;
+   char *name;
+} connection_state_name[] = {
+   {ISCSI_CONN_UP, "up"},
+   {ISCSI_CONN_DOWN, "down"},
+   {ISCSI_CONN_FAILED, "failed"}
+};
+
+static ssize_t
+show_conn_state(struct device *dev, struct device_attribute *attr,
+char *buf)
+{
+   struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent);
+
+   return sprintf(buf, "%s\n",
+  connection_state_name[conn->state].name);
+}
+static ISCSI_CLASS_ATTR(conn, state, S_IRUGO, show_conn_state,
+   NULL);


The above code can only work if ISCSI_CONN_UP == 0, ISCSI_CONN_DOWN == 1 
and ISCSI_CONN_FAILED == 2. Please don't hardcode such a dependency and 
use designated initializers instead.


Thanks,

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/open-iscsi/387eebf7-3256-3462-f91d-e42a5de4824d%40acm.org.


Re: [PATCH 10/24] scsi_transport_srp: switch to SPDX tags

2019-05-02 Thread Bart Van Assche
On Wed, 2019-05-01 at 12:14 -0400, Christoph Hellwig wrote:
> Use the the GPLv2 SPDX tag instead of verbose boilerplate text.

Acked-by: Bart Van Assche 

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [RFC PATCH 1/1] scsi: sd: associate sd_probe_domain with scsi_disk

2019-04-06 Thread Bart Van Assche

On 4/4/19 4:04 PM, Ming Lin wrote:

async_synchronize_full_domain(_sd_pm_domain);
-   async_synchronize_full_domain(_sd_probe_domain);
+   async_synchronize_full_domain(>sd_probe_domain);
device_del(>dev);
del_gendisk(sdkp->disk);


SCSI patches should be prepared against Martin's most recent scsi-queue
branch. If you have a look at that branch you will see that 
scsi_sd_pm_domain and scsi_sd_probe_domain are gone.


Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 2/2] libiscsi: Annotate fall-through

2018-03-01 Thread Bart Van Assche
This patch avoids that building with W=1 causes the compiler to
complain about fall-through.

Signed-off-by: Bart Van Assche <bart.vanass...@wdc.com>
Cc: Lee Duncan <ldun...@suse.com>
Cc: Chris Leech <cle...@redhat.com>
---
 drivers/scsi/libiscsi.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index b39bfdfec337..345533f80dae 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -1705,6 +1705,7 @@ int iscsi_queuecommand(struct Scsi_Host *host, struct 
scsi_cmnd *sc)
sc->result = DID_NO_CONNECT << 16;
break;
}
+   /* fall through */
case ISCSI_STATE_IN_RECOVERY:
reason = FAILURE_SESSION_IN_RECOVERY;
sc->result = DID_IMM_RETRY << 16;
-- 
2.16.2

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 0/2] libiscsi: Suppress a compiler and a sparse warning

2018-03-01 Thread Bart Van Assche
Hello Lee and Chris,

The two patches in this series are what I came up with after a review of the
gcc and sparse warnings reported against kernel v4.16-rc1. Please consider
these patches for kernel v4.17.

Thanks,

Bart.

Bart Van Assche (2):
  libiscsi: Annotate locking assumptions
  libiscsi: Annotate fall-through

 drivers/scsi/libiscsi.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.16.2

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 1/2] libiscsi: Annotate locking assumptions

2018-03-01 Thread Bart Van Assche
This patch avoids that sparse reports the following:

drivers/scsi/libiscsi.c:1844:23: warning: context imbalance in 
'iscsi_exec_task_mgmt_fn' - unexpected unlock

Signed-off-by: Bart Van Assche <bart.vanass...@wdc.com>
Cc: Lee Duncan <ldun...@suse.com>
Cc: Chris Leech <cle...@redhat.com>
---
 drivers/scsi/libiscsi.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 15a2fef51e38..b39bfdfec337 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -1832,6 +1832,7 @@ static void iscsi_tmf_timedout(struct timer_list *t)
 static int iscsi_exec_task_mgmt_fn(struct iscsi_conn *conn,
   struct iscsi_tm *hdr, int age,
   int timeout)
+   __must_hold(>frwd_lock)
 {
struct iscsi_session *session = conn->session;
struct iscsi_task *task;
-- 
2.16.2

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [PATCH] scsi: libiscsi: Allow sd_shutdown on bad transport

2017-12-15 Thread Bart Van Assche
On Thu, 2017-12-07 at 19:59 -0200, Rafael David Tinoco wrote:
> This happens because iscsi_eh_cmd_timed_out(), the transport layer
> timeout helper, would tell the queue timeout function (scsi_times_out)
> to reset the request timer over and over, until the session state is
> back to logged in state. Unfortunately, during server shutdown, this
> might never happen again.

Hello Rafael,

Have you considered to make iscsi_eh_cmd_timed_out() return BLK_EH_HANDLED
if system_state != SYSTEM_RUNNING? That could result in slower shutdown than
with your patch but such a change would probably be really easy to review.

Thanks,

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: Any other ways to trigger new LUN discovery?

2017-02-15 Thread Bart Van Assche
On 02/15/2017 06:48 AM, Peter Wang wrote:
> I am investing new ways to discover LUN exposed by iSCSI targets.
> 
> Currently, most of tools/libs are using user land shell commands
> "iscsiadm" to login targets or rescan new LUNs.
> sometimes, as I observed, the rescan is time-consuming. in
> high-concurrency environment, the overhead by executing massive shell
> commands cannot be ignored.
> 
> So, my question is: can we use socket or other efficient ways to trigger
> actions that we do with "iscsiadm"?

Are you familiar with the "scan" parameter of scsi_mod? See also
https://www.spinics.net/lists/linux-scsi/msg95224.html.

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: Proposal to make automatic target rescans optional

2017-02-14 Thread Bart Van Assche

On 02/13/17 07:07, Gorka Eguileor wrote:

While working on Cinder, the block storage service in OpenStack, I
noticed that the autoscan mechanism in iscsid is creating issues for us
and I would like to popose a mechanism to make it optional.

The problem for OpenStack deployment comes from the automatic scan of
targets at startup, login, and AEN/AER reception.

These are clearly great for normal use cases, but in our situation we
may have very lively targets that are constantly changing exposed LUNs,
and the autoscan mechanism is just polluting our systems with paths that
are being removed, because we have multiple systems accessing different
LUNs in the same target while they are being removed.  More details of
the issues can be found in this post [1].

My proposal is adding a new configuration option to the sessions, called
"autoscan_en", that allows us to disable the autoscan mechanism.

I have submitted the patch via pull request [2], and I don't know if
this is an acceptable approach in the eyes of the community, so any
guidance will be greatly appreciated.


Why to make the iSCSI autoscan mechanism optional? That will make the 
iSCSI initiator more complicated. Recent kernel versions generate 
uevents upon reception of a SCSI sense code. How about using that 
mechanism as a trigger for a rescan for users who want automatic 
rescanning of LUNs?


Bart.

Western Digital Corporation (and its subsidiaries) E-mail Confidentiality Notice 
& Disclaimer:

This e-mail and any files transmitted with it may contain confidential or 
legally privileged information of WDC and/or its affiliates, and are intended 
solely for the use of the individual or entity to which they are addressed. If 
you are not the intended recipient, any disclosure, copying, distribution or 
any action taken or omitted to be taken in reliance on it, is prohibited. If 
you have received this e-mail in error, please notify the sender immediately 
and delete the e-mail in its entirety from your system.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [PATCH 0/5] Fix several static checker warnings reported against the iSCSI kernel code

2016-03-29 Thread Bart Van Assche

On 03/29/2016 11:26 AM, Mike Christie wrote:

On 03/28/2016 03:39 PM, Bart Van Assche wrote:

These five patches are what I came up with after analyzing the output of
"make M=drivers/scsi W=1 C=2" for the iSCSI kernel code. Please consider
these patches for inclusion in kernel v4.7. The actual patches are:

0001-libiscsi-Unexport-iscsi_eh_target_reset.patch
0002-libiscsi-Remove-set-but-not-used-variables.patch
0003-scsi_transport_iscsi-Remove-set-but-not-used-variabl.patch
0004-scsi_transport_iscsi-Unexport-iscsi_is_flashnode_con.patch
0005-scsi_transport_iscsi-Declare-local-symbols-static.patch



Thanks Bart. The patches look good to me.

Do you want to post them to linux-scsi? I will add my re
viewed-by/acked-by tag on the list (or you can just add it when you
resend if you want), so Martin or James can pick up into their trees.


Hello Mike,

Thanks for the review. I will repost these patches on the linux-scsi 
mailing list with your review tag added because that will save Martin or 
James the work to process the e-mails with these tags.


Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 4/5] scsi_transport_iscsi: Unexport iscsi_is_flashnode_conn_dev()

2016-03-28 Thread Bart Van Assche
The output of "git grep -nHw iscsi_is_flashnode_conn_dev" shows
that this function is only called from inside source file
drivers/scsi/scsi_transport_iscsi.c. Hence unexport this function.

Signed-off-by: Bart Van Assche <bart.vanass...@sandisk.com>
---
 drivers/scsi/scsi_transport_iscsi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index 446781d..dff7413 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -1324,11 +1324,10 @@ EXPORT_SYMBOL_GPL(iscsi_create_flashnode_conn);
  *  1 on success
  *  0 on failure
  */
-int iscsi_is_flashnode_conn_dev(struct device *dev, void *data)
+static int iscsi_is_flashnode_conn_dev(struct device *dev, void *data)
 {
return dev->bus == _flashnode_bus;
 }
-EXPORT_SYMBOL_GPL(iscsi_is_flashnode_conn_dev);
 
 static int iscsi_destroy_flashnode_conn(struct iscsi_bus_flash_conn 
*fnode_conn)
 {
-- 
2.7.3

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 5/5] scsi_transport_iscsi: Declare local symbols static

2016-03-28 Thread Bart Van Assche
Avoid that building with W=1 causes gcc to report warnings about
symbols that have not been declared.

Signed-off-by: Bart Van Assche <bart.vanass...@sandisk.com>
---
 drivers/scsi/scsi_transport_iscsi.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index dff7413..c169fa1 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -1009,7 +1009,7 @@ static void iscsi_flashnode_sess_release(struct device 
*dev)
kfree(fnode_sess);
 }
 
-struct device_type iscsi_flashnode_sess_dev_type = {
+static struct device_type iscsi_flashnode_sess_dev_type = {
.name = "iscsi_flashnode_sess_dev_type",
.groups = iscsi_flashnode_sess_attr_groups,
.release = iscsi_flashnode_sess_release,
@@ -1195,13 +1195,13 @@ static void iscsi_flashnode_conn_release(struct device 
*dev)
kfree(fnode_conn);
 }
 
-struct device_type iscsi_flashnode_conn_dev_type = {
+static struct device_type iscsi_flashnode_conn_dev_type = {
.name = "iscsi_flashnode_conn_dev_type",
.groups = iscsi_flashnode_conn_attr_groups,
.release = iscsi_flashnode_conn_release,
 };
 
-struct bus_type iscsi_flashnode_bus;
+static struct bus_type iscsi_flashnode_bus;
 
 int iscsi_flashnode_bus_match(struct device *dev,
 struct device_driver *drv)
@@ -1212,7 +1212,7 @@ int iscsi_flashnode_bus_match(struct device *dev,
 }
 EXPORT_SYMBOL_GPL(iscsi_flashnode_bus_match);
 
-struct bus_type iscsi_flashnode_bus = {
+static struct bus_type iscsi_flashnode_bus = {
.name = "iscsi_flashnode",
.match = _flashnode_bus_match,
 };
-- 
2.7.3

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 1/5] libiscsi: Unexport iscsi_eh_target_reset()

2016-03-28 Thread Bart Van Assche
Running "git grep -nHw iscsi_eh_target_reset" shows that this
function is only called from inside the drivers/scsi/libiscsi.c
source file. Hence unexport this function.

Signed-off-by: Bart Van Assche <bart.vanass...@sandisk.com>
---
 drivers/scsi/libiscsi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 6bffd91..120150a 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -2423,7 +2423,7 @@ static void iscsi_prep_tgt_reset_pdu(struct scsi_cmnd 
*sc, struct iscsi_tm *hdr)
  *
  * This will attempt to send a warm target reset.
  */
-int iscsi_eh_target_reset(struct scsi_cmnd *sc)
+static int iscsi_eh_target_reset(struct scsi_cmnd *sc)
 {
struct iscsi_cls_session *cls_session;
struct iscsi_session *session;
@@ -2495,7 +2495,6 @@ done:
mutex_unlock(>eh_mutex);
return rc;
 }
-EXPORT_SYMBOL_GPL(iscsi_eh_target_reset);
 
 /**
  * iscsi_eh_recover_target - reset target and possibly the session
-- 
2.7.3

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 3/5] scsi_transport_iscsi: Remove set-but-not-used variables

2016-03-28 Thread Bart Van Assche
Avoid that building with W=1 causes gcc to report warnings about
set-but-not-used variables.

Signed-off-by: Bart Van Assche <bart.vanass...@sandisk.com>
---
 drivers/scsi/scsi_transport_iscsi.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index 4414816..446781d 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -2067,13 +2067,10 @@ EXPORT_SYMBOL_GPL(iscsi_alloc_session);
 
 int iscsi_add_session(struct iscsi_cls_session *session, unsigned int 
target_id)
 {
-   struct Scsi_Host *shost = iscsi_session_to_shost(session);
-   struct iscsi_cls_host *ihost;
unsigned long flags;
int id = 0;
int err;
 
-   ihost = shost->shost_data;
session->sid = atomic_add_return(1, _session_nr);
 
if (target_id == ISCSI_MAX_TARGET) {
-- 
2.7.3

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


[PATCH 2/5] libiscsi: Remove set-but-not-used variables

2016-03-28 Thread Bart Van Assche
Avoid that building with W=1 causes gcc to report warnings about
set-but-not-used variables.

Signed-off-by: Bart Van Assche <bart.vanass...@sandisk.com>
---
 drivers/scsi/libiscsi.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 120150a..c051694 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -2127,7 +2127,7 @@ int iscsi_eh_abort(struct scsi_cmnd *sc)
struct iscsi_conn *conn;
struct iscsi_task *task;
struct iscsi_tm *hdr;
-   int rc, age;
+   int age;
 
cls_session = starget_to_session(scsi_target(sc->device));
session = cls_session->dd_data;
@@ -2188,10 +2188,8 @@ int iscsi_eh_abort(struct scsi_cmnd *sc)
hdr = >tmhdr;
iscsi_prep_abort_task_pdu(task, hdr);
 
-   if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout)) {
-   rc = FAILED;
+   if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout))
goto failed;
-   }
 
switch (conn->tmf_state) {
case TMF_SUCCESS:
-- 
2.7.3

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [PATCH] remove sysfs attr_list

2016-03-01 Thread Bart Van Assche

On 02/29/16 17:08, Hannes Reinecke wrote:

On 02/29/2016 10:58 PM, Bart Van Assche wrote:

On 02/28/16 23:59, Hannes Reinecke wrote:

libudev has a _massive_ static memory footprint
(Kay doesn't believe in memory allocation).
So when using libudev you might end up having a really large memory
footprint due to all the on-stack allocations in there.
Be especially careful when attempting to use pthreads; debugging stack
overflow in pthreads is no fun whatsoever.


That's exactly the reason why I never allocate large data structures on
the stack in applications I write myself and why I use dynamic memory
allocation for large data structures. To make sure that such large stack
allocations get detected I set the stack size to a low value:

   pthread_attr_t attr;
   pthread_attr_init();
   pthread_attr_setstacksize(, PTHREAD_STACK_MIN);
   pthread_create(..., , ..., ...);


Oh, I don't need to detect them.
I know exactly where they are. But precisely that is a design goal of
the libudev code, so any patches trying to fix that up will be discarded
out-of-hand :-(


That could be an argument to fork libudev ...

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [PATCH] remove sysfs attr_list

2016-02-29 Thread Bart Van Assche

On 02/28/16 23:59, Hannes Reinecke wrote:

libudev has a _massive_ static memory footprint
(Kay doesn't believe in memory allocation).
So when using libudev you might end up having a really large memory
footprint due to all the on-stack allocations in there.
Be especially careful when attempting to use pthreads; debugging stack
overflow in pthreads is no fun whatsoever.


That's exactly the reason why I never allocate large data structures on 
the stack in applications I write myself and why I use dynamic memory 
allocation for large data structures. To make sure that such large stack 
allocations get detected I set the stack size to a low value:


  pthread_attr_t attr;
  pthread_attr_init();
  pthread_attr_setstacksize(, PTHREAD_STACK_MIN);
  pthread_create(..., , ..., ...);

Bart.

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: May I do some contributions for iSCSI multiqueue

2015-07-02 Thread Bart Van Assche

On 06/25/2015 11:31 PM, LSZhu wrote:

I have been working for iSCSI in SUSE for half a year, I have some basic
knowledge of iSCSI. I did some debug  and performance analyze work
before.I am quite interested in iSCSI-mq, I am not a expert here, but
may I do some contributions for iSCSI-mq? If you need me in somewhere,
please let me know.

In my view, there seems such works need to be done:

(1) open-iscsi should simulate a multi-queue block device on the
initiator side, I mean, /dev/sdc, sdd which simulated by open-iscsi
should be multi-queue, just like we want a multi-queue hardware device
as a backstore.
(2)  I/O scheduler is needed in the block layer for multi-queue, for the
simulated device mentioned above.
(3) open-iscsi should establish more than one connections to the target
in a session, and a  I/O scheduler is needed here.
(4) some performance improve work like how to manage multi-queue threads
on multiple CPU cores, how to reduce latency, how to create a better
pipeline.

I have heard that on the target LIO side, multi-queue work is done.
If I am wrong  somewhere, please tell me, I would appreciate for that.

I know you have did a lot of work for multi-queue, so if you need me
somewhere, or I can help in some work, please let me know.


Hello Zhu,

The most recent discussion about this topic I am aware of can be found 
at http://thread.gmane.org/gmane.linux.scsi/98199. Please note that I'm 
not an iSCSI expert.


Bart.

--
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [Lsf] It's time to put together the schedule

2015-02-26 Thread Bart Van Assche
On 02/25/15 18:36, Sagi Grimberg wrote:
 - About shared tags. So for scsi commands and TMFs we don't have a
   problem since we are guaranteed ITTs are unique. I wander how will we
   allocate a unique ITT for iscsi specific tasks (LOGIN, TEXT, LOGOUT,
   NOOP_OUT). My implementation did it per-session, so I reserved a range
   of ITTs for iscsi specific commands (in a kfifo), I wander how we can
   do that for multiple sessions. We need some kind of tag allocator for
   iscsi specific commands. Perhaps Bart/Christoph can advise if a LLD
   can allocate a unique tag for an LLD specific command using block
   layer tags.

It is possible to allocate a reserved tag from the blk-mq layer by
passing true as the fourth argument when calling blk_mq_alloc_request().
However, using that mechanism from inside a SCSI LLD driver would
require changes in the SCSI core. The code in scsi_mq_setup_tags()
initializes the number of reserved tags to zero. Additionally, the flag
use_blk_tags in the SCSI host template makes it easy to use the same
code paths in a SCSI LLD in multiqueue and single queue mode. However,
the single queue block layer tag allocator does not support reserved
tags (see also blk_queue_init_tags()). So it is probably easier to use a
custom tag allocator in the iSCSI initiator for iSCSI-specific tasks
instead of trying to allocate tags for these tasks from the block layer.

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [LSF/MM TOPIC] iSCSI MQ adoption via MCS discussion

2015-01-13 Thread Bart Van Assche
On 01/09/15 12:39, Sagi Grimberg wrote:
 On 1/8/2015 4:11 PM, Bart Van Assche wrote:
 On 01/08/15 14:45, Sagi Grimberg wrote:
 Actually I started with that approach, but the independent connections
 under a single session (I-T-Nexus) violates the command ordering
 requirement. Plus, such a solution is specific to iSER...

 Which command ordering requirement are you referring to ? The Linux
 storage stack does not guarantee that block layer or SCSI commands will
 be processed in the same order as these commands have been submitted.

 I was referring to the iSCSI session requirement. I initially thought of
 an approach to maintain multiple iSER connections under a single session
 but pretty soon I realized that preserving commands ordering this way
 is not feasible. So independent iSER connections means independent
 iSCSI sessions (each with a single connection). This is indeed another
 choice, which we are clearly debating on...

 I'm just wandering if we are not trying to force-fit this model. How
 would this model look like? We will need to define another entity to
 track and maintain the sessions and to allocate the scsi_host. Will that
 be communicated to user-space? How will error recovery look like?

Hello Sagi,

As you probably remember scsi-mq support was added in the SRP initiator
by changing the 1:1 relationship between scsi_host and RDMA connection
into a 1:n relationship. I don't know how much work it would take to
implement a similar transformation in the SCSI initiator. Maybe we
should wait until Mike's workday starts such that Mike has a chance to
comment on this.

Bart.




PLEASE NOTE: The information contained in this electronic mail message is 
intended only for the use of the designated recipient(s) named above. If the 
reader of this message is not the intended recipient, you are hereby notified 
that you have received this message in error and that any review, 
dissemination, distribution, or copying of this message is strictly prohibited. 
If you have received this communication in error, please notify the sender by 
telephone or e-mail (as shown above) immediately and destroy any and all copies 
of this message in your possession (whether hard copies or electronically 
stored copies).

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [LSF/MM TOPIC] iSCSI MQ adoption via MCS discussion

2015-01-08 Thread Bart Van Assche

On 01/08/15 14:45, Sagi Grimberg wrote:

Actually I started with that approach, but the independent connections
under a single session (I-T-Nexus) violates the command ordering
requirement. Plus, such a solution is specific to iSER...


Hello Sagi,

Which command ordering requirement are you referring to ? The Linux 
storage stack does not guarantee that block layer or SCSI commands will 
be processed in the same order as these commands have been submitted.


However, it might be interesting to have a look at virtscsi_pick_vq(). I 
think the purpose of that function is to keep queueing to the same hwq 
as long as any commands are being executed. This approach avoids that if 
an application is migrated by the scheduler from one CPU to another that 
commands get reordered due to have been submitted to different hwq's. I 
don't think we already have something similar in blk-mq but this is 
something that could be discussed further.



(we might want to leave something for LSF ;)).


Agreed :-)

Bart.

--
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [PATCH 7/9] Fix strict-aliasing warning with struct mac_address

2014-10-07 Thread Bart Van Assche

On 10/06/14 18:36, Andy Grover wrote:

  struct mac_address {
-   u8_t addr[6];
+   union {
+   u8_t addr[6];
+   struct {
+   u16_t first_2_bytes;
+   u32_t last_4_bytes;
+   };
+   };
  };


This patch changes the size of struct mac_address from 6 into 8. That is 
probably unintended ?


Bart.

--
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: iSCSI Conformance Test Tool: iSCT

2014-09-15 Thread Bart Van Assche

On 01/04/10 03:46, lancests wrote:

We are currently developing iSCT, a tool which does iSCSI conformance
test for the target. It's written in Python and can be driven by user-
defined test scripts. Using iSCT, it is easy to identify target
protocol conformance problems in user space during Open-iSCSI
development.

iSCT can be found on our website www.storagetest.com. We are proud if
iSCT can be of any help to Open-iSCSI.


Hello Lance,

Are you aware that an open-source iSCSI conformance test tool already 
exists ? See also Ronnie Sahlberg, SCSI testing/USB devices are amazing, 
linux-scsi mailing list, April 2013 
(http://thread.gmane.org/gmane.linux.scsi/81622/).


Bart.

--
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.


Re: [PATCH 1/1] Bug fix on IPC address copy

2013-12-01 Thread Bart Van Assche
On 11/18/13 22:59, Mike Christie wrote:
 On 11/14/2013 05:53 PM, micha...@cs.wisc.edu wrote:
 From: Yufei Ren yufei@stonybrook.edu

 Got can not connect to iSCSI daemon (111)! error during
 starting iscsi service by:
 $ iscsiadm -m node --loginall=all

 Traced down and found that the sun_path was mis-used in both iscsid
 and iscsiadm.
 ---
  usr/iscsid_req.c |2 +-
  usr/mgmt_ipc.c   |2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)

 diff --git a/usr/iscsid_req.c b/usr/iscsid_req.c
 index 715c0aa..0ebde90 100644
 --- a/usr/iscsid_req.c
 +++ b/usr/iscsid_req.c
 @@ -71,7 +71,7 @@ static int ipc_connect(int *fd, char *unix_sock_name, int 
 start_iscsid)
  
  memset(addr, 0, sizeof(addr));
  addr.sun_family = AF_LOCAL;
 -memcpy((char *) addr.sun_path + 1, unix_sock_name,
 +memcpy((char *) addr.sun_path + 1, unix_sock_name,
 strlen(unix_sock_name));
  
 
 Hey, since we have some eyes on this patch, one question I have is why
 is the + 1 in there for? Is should not be there right?

From the unix(7) man page:

quote
abstract: an abstract socket address is distinguished  by  the  fact
that  sun_path[0]  is  a  null byte ('\0').  The socket's address in
this namespace is given by the additional bytes in sun_path that are
covered  by  the  specified  length of the address structure.  (Null
bytes in the name have no special significance.)  The  name  has  no
connection  with  file  system  pathnames.   When  the address of an
abstract socket is returned by getsockname(2),  getpeername(2),  and
accept(2),  the returned addrlen is greater than sizeof(sa_family_t)
(i.e., greater than 2), and the name of the socket is  contained  in
the  first  (addrlen  - sizeof(sa_family_t)) bytes of sun_path.  The
abstract socket namespace is a nonportable Linux extension./quote

Hope this helps,

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/groups/opt_out.


Re: kernel oops error

2011-09-25 Thread Bart Van Assche
On Sat, Sep 24, 2011 at 9:40 PM, Vivek S vivek...@gmail.com wrote:
 I am on Dell laptop running Ubuntu 11.04, kernel 2.6.38.11.

I'm curious to know who generated kernel 2.6.38.11 ? As far as I know
the latest official kernel in the 2.6.38 series is 2.6.38.8
(https://lkml.org/lkml/2011/6/2/417). A quote from the 2.6.38.8
announcement:

This is the LAST .38 stable kernel release, please move to the
.39-stable tree at this point in time.

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: [PATCH 3/7] iscsid: In foreground mode, treat SIGINT like SIGTERM

2011-07-20 Thread Bart Van Assche
On Wed, Jul 20, 2011 at 3:06 PM, Jim Ramsay jim_ram...@dell.com wrote:
 This allows ^C to exit iscsid but only when it is running in foreground
 mode, which is useful for testing.

 Signed-off-by: Jim Ramsay jim_ram...@dell.com
 ---
  usr/iscsid.c |    5 +
  1 files changed, 5 insertions(+), 0 deletions(-)

 diff --git a/usr/iscsid.c b/usr/iscsid.c
 index 1a37347..9df6658 100644
 --- a/usr/iscsid.c
 +++ b/usr/iscsid.c
 @@ -304,6 +304,11 @@ static void iscsid_shutdown(void)
  static void catch_signal(int signo)
  {
        log_debug(1, pid %d caught signal %d, getpid(), signo);
 +
 +       /* In foreground mode, treat SIGINT like SIGTERM */
 +       if (!daemonize  signo == SIGINT)
 +               signo = SIGTERM;
 +
        switch (signo) {
        case SIGTERM:
                iscsid_shutdown();

The signal handling approach in open-iscsi should be reconsidered.
catch_signal() is a signal handler and hence is not allowed to invoke
fprintf() - which is exactly what iscsid_shutdown() does. See also
IEEE Std 1003.1-2008, paragraph 2.4.3 Signal Actions. In that section
there is a list with functions which are safe to be invoked from a
signal handler. fprintf() is not in that list. The reason that
fprintf() is not in that list is because fprintf() performs locking.
So invoking fprintf() from a signal handler may trigger recursive
locking and hence a deadlock.

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: [PATCH 0/8] ib/iser: major face lift of the data path code

2010-02-03 Thread Bart Van Assche
On Wed, Feb 3, 2010 at 4:30 PM, Or Gerlitz ogerl...@voltaire.com wrote:

 The following patch set removes some in efficiencies in the iser data path
 through simplification and reducing the amount of code, using less atomic
 operations, avoiding TX interrupts, moving to iscsi passthrough mode,
 etc. I did my best to build it as a sequence of patches and not as one
 big re-write, to allow for better debugging (e.g bisection) and tuning.

 Or.

 [PATCH 01/9] ib/iser: revert commit bba7ebb avoid recv buffer exhaustion
 [PATCH 02/9] ib/iser: new recv buffer posting logic
 [PATCH 03/9] ib/iser: remove atomic counter for posted recv buffers
 [PATCH 04/9] ib/iser: use different CQ for send completions
 [PATCH 05/9] ib/iser: simplify send flow/descriptors
 [PATCH 06/9] ib/iser: use atomic allocations
 [PATCH 07/9] ib/iser: remove unnecessary connection checks
 [PATCH 08/9] ib/iser: move to use libiscsi passthrough mode
 [PATCH 09/9] ib/iser: remove redundant locking from iser scsi command
 response flow


Sounds really interesting. Do you have numbers available about how much
these patches improve throughput or decrease latency ?

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: [PATCH 0/8] ib/iser: major face lift of the data path code

2010-02-03 Thread Bart Van Assche
On Wed, Feb 3, 2010 at 4:30 PM, Or Gerlitz ogerl...@voltaire.com wrote:

 The following patch set removes some in efficiencies in the iser data path
 through simplification and reducing the amount of code, using less atomic
 operations, avoiding TX interrupts, moving to iscsi passthrough mode,
 etc. I did my best to build it as a sequence of patches and not as one
 big re-write, to allow for better debugging (e.g bisection) and tuning.

Sounds really interesting. Do you have numbers available about how
much these patches improve throughput or decrease latency ?

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: Over one million IOPS using software iSCSI and 10 Gbit Ethernet

2010-02-01 Thread Bart Van Assche
On Mon, Feb 1, 2010 at 10:33 AM, Pasi Kärkkäinen pa...@iki.fi wrote:

 On Thu, Jan 28, 2010 at 01:44:00PM -0500, Joe Landman wrote:
  Pasi Kärkkäinen wrote:
  I suspect that they really aren't seeing ~1us latencies, but that with
  some neat tricks, it appears to be this.
 
  Physically, it isn't there.  I'd classify this as a marketing number
  (e.g. unachievable in applications that matter).  I'd be happy to be
  proven wrong, but there really isn't much to suggest that I am wrong.
 

 I hope I get to test some 10 Gbit Ethernet equipment soon.. let's see
 what I can get myself.

If you want to repeat this test, please keep in mind that this test is
CPU or memory-bound, not I/O-bound. Letting the block layer combine
512-byte blocks into larger blocks stresses the CPU and memory system.
As an example, the command below reported between 200.000 and 400.000
IOPS, depending on the performance of the underlying hardware of the
system the command was run on:

fio --bs=512 --size=1G --buffered=1 --ioengine=sync --numjobs=1
--group_reporting --name=dev-null /dev/null

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: Over one million IOPS using software iSCSI and 10 Gbit Ethernet

2010-01-28 Thread Bart Van Assche
On Thu, Jan 28, 2010 at 1:36 PM, Pasi Kärkkäinen pa...@iki.fi wrote:


 Please check these news items:

 http://blog.fosketts.net/2010/01/14/microsoft-intel-push-million-iscsi-iops/

 http://communities.intel.com/community/openportit/server/blog/2010/01/19/100-iops-with-iscsi--thats-not-a-typo

 http://www.infostor.com/index/blogs_new/dave_simpson_storage/blogs/infostor/dave_simpon_storage/post987_37501094375591341.html

 1,030,000 IOPS over a single 10 Gb Ethernet link

 Specifically, Intel and Microsoft clocked 1,030,000 IOPS (with 512-byte
 blocks),
 and more than 2,250MBps with large block sizes (16KB to 256KB) using the
 Iometer benchmark

 So.. who wants to beat that using Linux + open-iscsi? :)


A few comments:
* A throughput of 2250 MB/s over a 10 Gb/s link is only possible when
running read and write tests simultaneously and when counting the traffic
that flows in both directions.
* These results say more about the NIC used than about they say about the
iSCSI initiator software used. A quote from
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-USEventID=1032432957CountryCode=US:
Topics we discuss include [ ... ] Advanced iSCSI acceleration features in
Intel Ethernet Server Adapters and how they work with the native iSCSI
support in Windows Sever 2008 R2.

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: Over one million IOPS using software iSCSI and 10 Gbit Ethernet

2010-01-28 Thread Bart Van Assche
On Thu, Jan 28, 2010 at 4:01 PM, Joe Landman
land...@scalableinformatics.com wrote:
 Pasi Kärkkäinen wrote:

 Please check these news items:

 http://blog.fosketts.net/2010/01/14/microsoft-intel-push-million-iscsi-iops/

 http://communities.intel.com/community/openportit/server/blog/2010/01/19/100-iops-with-iscsi--thats-not-a-typo

 http://www.infostor.com/index/blogs_new/dave_simpson_storage/blogs/infostor/dave_simpon_storage/post987_37501094375591341.html

 1,030,000 IOPS over a single 10 Gb Ethernet link

 This is less than 1us per IOP.  Interesting.  Their hardware may not
 actually support this.  10GbE typically is 7-10us, though ConnectX and some
 others get down to 2ish.

Which I/O depth has been used in the test ? Latency matters most with
an I/O depth of one and is almost irrelevant for high I/O depth
values.

Bart.

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



Re: [Scst-devel] iSCSI latency issue

2009-11-25 Thread Bart Van Assche
On Wed, Nov 25, 2009 at 5:57 PM, Shachar f shacharf...@gmail.com wrote:
 I'm running open-iscsi with scst on Broadcom 10Gig network and facing write
 latency issues.
 When using netperf over an idle network the latency for a single block round
 trip transfer is 30 usec and with open-iscsi it is 90-100 usec.

 I see that Nagle (TCP_NODELAY) is disabled when openning socket on the
 initiator side and I'm not sure about the target side.
 Vlad, Can you elaborate on this?

 Are others in the mailing list aware to possible environment changes that
 effext latency?

 more info -
 I'm running this test with Centos5.3 machines with almost latest open-iscsi.

Please make sure that interrupt coalescing has been disabled -- see
also ethtool -c.

Bart.

--

You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.




Re: iSCSIUTIL - frontend (in QT for KDE) for iSCST-Target and Open-iSCSI

2009-07-24 Thread Bart Van Assche

2009/7/24 Mike Christie micha...@cs.wisc.edu

 On 07/22/2009 02:56 PM, Artur Piechocki wrote:
  Hello
 
  Some time ago I wrote small frontend for iSCSI-Target and Open-iSCSI for
  KDE3x and QT3.
 

 Is the goal to get this merged in KDE? Does KDE have any programs for
 managing this stuff? What about GNOME?

Regarding the last question: it is possible to run KDE programs on a
GNOME desktop and to run GNOME programs on a KDE desktop.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI initiator implementation question

2009-06-18 Thread Bart Van Assche

On Thu, Jun 18, 2009 at 12:12 PM, Hannes Reineckeh...@suse.de wrote:
 Joachim Worringen wrote:
 On Jun 18, 11:19 am, Boaz Harrosh bharr...@panasas.com wrote:
 On 06/18/2009 10:56 AM, Joachim Worringen wrote:
 Is there a specific reason for this? iSCSI would surely benefit from
 using high-performance, non-tcp sockets if available (I'm talking
 about SuperSockets in this case, see 
 http://www.dolphinics.com/products/dolphin-supersockets.html).
 Sure sounds nice. If it is a simple and compatible change it sounds very 
 good.
[ ... ]
 Well, the obvious solution here is to implement another transport module (eg
 iscsi_supersockets.c) much like it's done for iSER.
 The rest of the code should be sufficiently abstracted to handle it properly.

 There is a reason why it's called iscsi_tcp.c ...

Another alternative is to implement the necessary support in the Linux
kernel such that the existing iSER, IBoIP, SRP and SDP kernel code can
be reused with the Dolphin hardware. It's not yet clear to me whether
SuperSockets have any advantages over SDP.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI initiator implementation question

2009-06-18 Thread Bart Van Assche

On Thu, Jun 18, 2009 at 1:14 PM, FUJITA
Tomonorifujita.tomon...@lab.ntt.co.jp wrote:
 On Thu, 18 Jun 2009 03:53:47 -0700 (PDT)
 Joachim Worringen worrin...@googlemail.com wrote:
 On Jun 18, 12:37 pm, FUJITA Tomonori fujita.tomon...@lab.ntt.co.jp
 wrote:
  Well, anyway seems that 10GbE is slowly killing all niche high
  performance interconnect technology.

 Of course Ethernet always wins conc. market share. But 10GigE
 doesn't help you if you need really low latency; it does hardly give
 you an advantage over 1GigE in this respect.

 Seems that the latency diffence with 10GbE is smaller than one with
 1GbE. There were lots of niche high performance interconnect companies
 in 1GbE era but now there are not many. Yes, the latency diffence
 still matters for some people but the market is getting smaller.

Numbers please. From the last numbers I have seen the latency
difference between 10 GbE and fast non-Ethernet networks is still
significant.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI initiator implementation question

2009-06-18 Thread Bart Van Assche

On Thu, Jun 18, 2009 at 2:14 PM, FUJITA
Tomonorifujita.tomon...@lab.ntt.co.jp wrote:

 On Thu, 18 Jun 2009 13:33:42 +0200
 Bart Van Assche bart.vanass...@gmail.com wrote:
 Numbers please. From the last numbers I have seen the latency
 difference between 10 GbE and fast non-Ethernet networks is still
 significant.

 http://74.125.153.132/search?q=cache:lWqSaJ-iJ50J:www.chelsio.com/poster.html%3FsearchText%3Dcybermedia+latency+chelsio+osaka+10.49+microsecondscd=2hl=jact=clnkgl=jp

 I think that 10GbE vendors are happy to give you lots of results.

 Maybe it's still significant for you but it's not for some, which I
 had worked with.

Thanks for the reference. The cited publication mentions a latency of
10.49 µs for an advanced 10 GbE interface. This is relatively high
compared to the latency of e.g. InfiniBand (between 2 and 3 µs).
Whether or not this difference matters depends on the workload. As
known for filesystem I/O the block sizes between 4 KB and 64 KB
dominate. These block sizes correspond to a transfer time of 3 µs and
49 µs respectively at a rate of 10 Gb/s. So for a workload that
consists mainly of 4 KB blocks, the latency difference is important
but for a workload that consists mainly of 64 KB blocks, the latency
difference is not that important.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: RFC: do we need a new list for kernel patches

2009-06-14 Thread Bart Van Assche

On Sun, Jun 14, 2009 at 11:23 AM, Boaz Harroshbharr...@panasas.com wrote:
 On 06/11/2009 08:41 PM, Mike Christie wrote:
 It seems like we have a lot of members on the list that are not kernel
 developers, but we now have 5 iscsi drivers (qla4xxx, bnx2i, cxgb3i,
 iscsi_tcp and ib_iser) with another being written. So it seems like we
 are going to have lots of patches. I would also like to start sending my
 kernel patches out in a way that everyone can see them. Previously to
 avoid noise on this list, I have been pinging you guys privately which
 just does not work so well now when we have so many people.

 What do you people think?

 Do other people on the list prefer to see everything here, so you can
 see what features are making progress?

 I vote: One list, All patches posted

I agree that having just one mailing list is the most convenient for
kernel developers. But not everyone who is subscribed to open-iscsi is
a kernel developer. Wouldn't it be more convenient for iSCSI users to
have two lists -- one intended for iSCSI users, and one for iSCSI
developers, such that the users can subscribe to the former only ?
Just my two cents.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Building a multipath setup with DRBD in dual-Primary

2009-05-29 Thread Bart Van Assche

On Fri, May 29, 2009 at 5:21 PM, Wido wid...@gmail.com wrote:
 Last night i had the idea of building a multipath iSCSI setup with DRBD
 in Primary/Primary.
 [ ... ]
 Is my setup a possibility or should i stay with the old regular setup of
 a Primary/Standy with heartbeat?

I strongly recommend you to use a primary/standby setup + heartbeat
when using dm-multipath instead of a primary/primary setup. With the
latter setup you risk to run into data corruption. See also
http://lkml.org/lkml/2009/4/13/80.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI and FileSystem (ext2/ext3)

2009-04-16 Thread Bart Van Assche

On Wed, Apr 15, 2009 at 8:24 PM, benoit plessis
plessis.ben...@gmail.com wrote:
 I wanted to share some infos about a discovery we made using mysql over
 iSCSI.

A few questions:
- Was MySQL configured for direct I/O or for buffered I/O ?
- Which mount options were used with the ext2 / ext3 filesystems ? Was
noatime or relatime enabled ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI and FileSystem (ext2/ext3)

2009-04-16 Thread Bart Van Assche

On Wed, Apr 15, 2009 at 9:19 PM, Pasi Kärkkäinen pa...@iki.fi wrote:
 noop is usually good for the initiator. cfq has a feature (or a bug?) that
 prevents achieving queue depths deeper than 1, and thus limits your
 bandwidth a lot when there are (or should be) many ios on the fly at the
 same time.

Hello Pasi,

Do you have any idea whether modifying the tunable CFQ parameters
could resolve the bandwidth limiting behavior of CFQ ?

$ ls /sys/block/sda/queue/iosched
back_seek_max  fifo_expire_async  quantum  slice_async_rq  slice_sync
back_seek_penalty  fifo_expire_sync   slice_async  slice_idle

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI and FileSystem (ext2/ext3)

2009-04-16 Thread Bart Van Assche

On Wed, Apr 15, 2009 at 9:19 PM, Pasi Kärkkäinen pa...@iki.fi wrote:
 noop is usually good for the initiator. cfq has a feature (or a bug?) that
 prevents achieving queue depths deeper than 1, and thus limits your
 bandwidth a lot when there are (or should be) many ios on the fly at the
 same time.

Do you remember on which kernel version you observed the above
behavior ? This might be a bug in the CFQ scheduler. I found the
following in the 2.6.28 changelog: cfq-iosched: fix queue depth
detection. See also
http://www.eu.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.28 or
http://lkml.org/lkml/2008/8/22/39.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI and FileSystem (ext2/ext3)

2009-04-16 Thread Bart Van Assche

On Thu, Apr 16, 2009 at 1:10 PM, Ulrich Windl
ulrich.wi...@rz.uni-regensburg.de wrote:
 Considering that most remote iSCSI targets have intelligece of their own, 
 the
 use of a no-op i/O scheduler seems justified. I think multiple I/O schedulers 
 on
 both ends don't necessarily make things faster, unless there is a bunch of
 requests that can be compacted into one. Then throughput rises while response 
 may
 decline.

Is request merging implemented in the SCSI layer or in the I/O scheduler ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI and FileSystem (ext2/ext3)

2009-04-16 Thread Bart Van Assche

On Thu, Apr 16, 2009 at 2:07 PM, Pasi Kärkkäinen pa...@iki.fi wrote:
 Iirc it has been with RHEL5/CentOS5 2.6.18 based kernels..

 Mike Christie has been writing about this aswell.. dunno about what kernels
 he has seen it with.

 Then again CFQ was designed for single disk workstations..

I have seen the above statement about CFQ only once in the past, and
that was in this post:
http://www.mail-archive.com/cen...@centos.org/msg04648.html. But if
CFQ really was designed for single disk workstations, I do not
understand why it has been chosen as the default in Red Hat Enterprise
Linux 4. There must have been a good reason behind that choice.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Multipath + iscsi + SLES10 SP2 / REDHAT 5.3 / Oracle Linux 5 update 3

2009-04-15 Thread Bart Van Assche

On Mon, Apr 13, 2009 at 10:33 PM, Mike Christie micha...@cs.wisc.edu wrote:
 I think linux is just not so good with smaller IO sizes like 4K. I do
 not see good performance with Fibre Channel or iscsi.

Most people run a filesystem on top of a block device imported via
open-iscsi. It is well known that a filesystem performs I/O to the
underlying block device using block sizes between 4 KB and 64 KB, with
a significant fraction being 4 KB I/O's. If there was a performance
problem in Linux with regard to small block sizes, filesystem
performance in Linux would suffer. I have not yet seen statistics that
show that Linux' filesystem performance is worse than for other
operating systems. But I have already seen measurements that show the
contrary.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI and FileSystem (ext2/ext3)

2009-04-15 Thread Bart Van Assche

On Wed, Apr 15, 2009 at 8:24 PM, benoit plessis
plessis.ben...@gmail.com wrote:
 I wanted to share some infos about a discovery we made using mysql over
 iSCSI.

 We have a bunch of replicated mysql server, initially all using ext3, due to
 perfs problems we
 tried comparing persf in ext3 vs ext2, and we found the following:

 server using ext3
     normal iops   100
     normal bw  25/30Mbps
     peak iops   1000
     peak bw 45/52Mbps

 server using ext2
     normal iops   40
     normal bw  4/5 Mbps
     peak iops   50
     peak bw 7/8 Mbps

 All servers using the noop scheduler.

 The ext3 FS wasn't even using journalised datas, only the standard metadata
 configuration, but the
 impact on resource usage is quite impressive 

 So the question is, what do you use as FS over iSCSI ?

Why are you using the noop scheduler on the initiator instead of
deadline or CFQ ? The performance difference you observed is probably
caused by something else than the filesystem. When running bonnie++ on
a local filesystem, xfs gives better performance than ext2, and ext2
gives better performance than ext3.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Multipath + iscsi + SLES10 SP2 / REDHAT 5.3 / Oracle Linux 5 update 3

2009-04-14 Thread Bart Van Assche

On Mon, Apr 13, 2009 at 10:33 PM, Mike Christie micha...@cs.wisc.edu wrote:
 I think linux is just not so good with smaller IO sizes like 4K. I do
 not see good performance with Fibre Channel or iscsi.

Can you elaborate on the above ? I have already measured a throughput
of more than 60 MB/s when using the SRP protocol over an InfiniBand
network with a block size of 4 KB blocks, which is definitely not bad.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Tuning iSCSI between Linux and NetAPP

2009-04-14 Thread Bart Van Assche

On Tue, Apr 14, 2009 at 7:09 PM, Dmitry Yusupov dmitry_...@yahoo.com wrote:
 NexentaStor also is very good candidate for CIFS workgroups/AD
 environments with the whole SMB stack implemented in the kernel, which
 boosts performance over the top. And as far as iSCSI target - I would
 recommend to use COMSTAR, which is ZFS integrated in Nexenta [2].

Do you have any performance numbers available for the combination of
open-iscsi and the NexentaStor target ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Low IOPs for certain block sizes

2009-04-12 Thread Bart Van Assche

Hello,

While running iSCSI performance tests I noticed that the performance
for certain block sizes deviated significantly (more than ten times)
from the performance for other block sizes, both larger and smaller.
This surprised me.

The test I ran was as follows:
* A file of 1 GB residing on a tmpfs filesystem was exported via iSCSI
target software. The test has been repeated with both SCST and STGT.
* On the initiator system open-iscsi version 2.0.870 was used for
performing reads and writes with dd via direct I/O. Read-ahead was set
to zero.
* Both systems were running kernel 2.6.29.1 in run level 3 (no X
server) and the 1 GbE interfaces in the two systems were connected via
a crossed cable. The MTU has been left to its default value, 1500
bytes. Netperf reported a throughput of 600 Mbit/s = 75 MB/s for the
TCP/IP stream test on this setup.
* 128 MB of data has been transferred during each test.
* Each measurement has been repeated three times.
* All caches were flushed before each test.
* The ratio of standard deviation to average was 2% or lower for all
measurements.
* The measurement result are as follows (transfer speeds in MB/s):

Block   SCST    STGT    SCST    STGT
 size  writing writing reading reading
-- --- --- --- ---
 64 MB  71.7    63.3    62.1    58.4
 32 MB  71.9    63.4    61.7    58.1
 16 MB  72.4    63.0    61.7    57.1
  8 MB  72.7    63.3    61.7    56.9
  4 MB  72.9    63.5    61.3    57.0
  2 MB  72.8    59.5    60.3    56.9
  1 MB  72.1    38.7    59.4    56.0
512 KB  67.3    21.4    58.0    54.4
256 KB  67.4    22.8    55.5    53.4
128 KB  60.9    22.6    53.3    51.7
 64 KB  53.2    22.2    53.0    45.7
 32 KB  48.9    21.6    40.0    40.0
 16 KB  40.0    20.8     0.6 1.3
  8 KB  20.0    19.9    19.9    20.0
  4 KB   0.6     1.6    18.9    10.3

All results look normal to me, except the write throughput for a block
size of 4 KB and the read throughput for a block size of 16 KB.

Regarding CPU load: during the 4 KB write test, the CPU load was 0.9
on the initiator system and 0.1 on the target.

Has anyone observed similar behavior before ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: PATCH: fix iBFT firmware reading with newer kernels

2009-01-29 Thread Bart Van Assche

On Thu, Jan 29, 2009 at 12:34 AM, Mike Christie micha...@cs.wisc.edu wrote:
 strncat(dev_dir, /, FILENAMESZ);
 strncat(dev_dir, dent-d_name, FILENAMESZ);

I assume the third argument should have been FILENAMESZ - strlen(dev_dir) ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: PATCH: make open-iscsi userspace tools functionality available as a library

2009-01-20 Thread Bart Van Assche

On Tue, Jan 20, 2009 at 7:20 PM, Konrad Rzeszutek
kon...@virtualiron.com wrote:

  I would recommend that you provide as the first variable in all of the 
  structs
  an unsigned int called 'version'. This way if the structs are extended they
  would be backwards compatible and there is an easy way to identify which
  version of structs they are.
 

 Erm, given the amount of programs which will probably end up using this (not
 all that much) a distro should be able to easily rebuild all those in case of
 an ABI change and thus a soname bump. I understand what you are trying to say
 here, but IMHO the added complexity and ugliness is not worth it.

 I disagree. The ABI in a distro is a holy thing. When a Linux distro releases 
 their
 libraries (look for example at libvirt), they can't modify it for the next 7 
 years
 (sure they can do it underneath the covers, but look at the Red Hat kernel 
 with
 those #ifdef __GENKSYSM__ to work-around this).

 I am curious to understand what is complex and ugly about it? Could you be
 more specific please.

I agree that having a stable binary interface is very important for a
shared library. But if glibc doesn't have versioned structs, why would
these be needed in an iscsi library ? Please keep in mind that it is
possible to define a new version of a shared library in case the ABI
changes.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: PATCH: make open-iscsi userspace tools functionality available as a library

2009-01-19 Thread Bart Van Assche

On Mon, Jan 19, 2009 at 2:07 PM, Hans de Goede hdego...@redhat.com wrote:
 Therefore we would like to export (some) of the functionality of iscsiadm as a
 C-library.

Great !

 I've got documentation of the proposed API here:
 http://people.atrpms.net/~hdegoede/html/libiscsi_8h.html

Not so great:

libiscsi_get_error_string()
This function can be called to get a human readable error string when
a libiscsi function has returned an error. This function uses a static
buffer thus the result is only valid as long as no other libiscsi
calls are made after the failing function call.

This makes it impossible to use libiscsi_get_error_string() in a safe
way in multithreaded software.

Furthermore, there are some minor spelling issues, e.g. cleanups.
Shouldn't this be cleans up ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: PATCH: make open-iscsi userspace tools functionality available as a library

2009-01-19 Thread Bart Van Assche

On Mon, Jan 19, 2009 at 4:35 PM, Hans de Goede hdego...@redhat.com wrote:
 - libiscsi_discover_sendtargets - maybe (very maybe) the int port could be 
 dropped and
   const char *address could be of the form 
 address_or_host[:port].
 Regarding defaults and all that.


 Nah, that is ok for a cmdline interface, but cumbersome for an API, we could 
 do
 something where port == 0 would choose the default port though.

Have you considered to replace both const char *address and int
port by const struct sockaddr *address, socklen_t address_len ?
This would avoid having to figure out inside
libiscsi_discover_sendtargets() whether the passed address is in IPv4
or in IPv6 format (if numeric).

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Bad TCP Checksums Over Loopback

2009-01-14 Thread Bart Van Assche

On Mon, Jan 12, 2009 at 11:48 AM,  avis...@gmail.com wrote:
 Here are some statistics from wireshark:
 Bad checksum(TCP): 35,963

Usually this means that Wireshark was unable to capture all packets,
not that there was a problem with the packets themselves.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Iozone Performance Oddities

2009-01-13 Thread Bart Van Assche

On Tue, Jan 13, 2009 at 8:31 PM, Norm normel...@gmail.com wrote:
 I've run iozone over a new iscsi mount that we're configuring. The
 client is RedHat 5, the server is Solaris on a Sun X4500 (thumper)
 with the ZFS filesystem. On the client side, things are formatted with
 the ext3 filesystem running on an LVM partition. I've posted by iozone
 results:

 http://wnelto.people.wm.edu/iozone.htm

 It appears that, for most tests, there is a large performance penalty
 when the file size hits 4 or 8 GB. I suspect I'm missing something
 obvious here. Any ideas?

How much RAM is present in the ZFS server ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Iozone Performance Oddities

2009-01-13 Thread Bart Van Assche

On Tue, Jan 13, 2009 at 8:50 PM, Norm normel...@gmail.com wrote:


 How much RAM is present in the ZFS server ?


 The ZFS server has 16GB. The client has 2GB (I'm not sure how iSCSI
 caching works, if any).

Apparently iozone has been run with the following command line options:

iozone -Raz -b /tmp/iozone.wks -g 8g

This means that you have been measuring how well Linux can cache reads
and writes to block devices instead of the iSCSI performance. The
iozone options -o and/or -+r might help to bypass Linux' block device
cache.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: connection, host resets, I/O errors eventually (DRBD, but not only)

2009-01-09 Thread Bart Van Assche

On Thu, Jan 8, 2009 at 12:44 PM, Tomasz Chmielewski man...@wpkg.org wrote:
 Anyone using iSCSI over DRBD? And a slow internet link perhaps?

How reliable is the link you are using -- which percentage of packets
is lost ? You can test this e.g. with the ping command. The following
command will generate about 32 KB/s of network traffic and reports the
percentage of lost packets:

# ping -q -i 0.01 -c1000 -s160 ${remote_ip}
PING 192.168.1.102 (192.168.1.102) 160(188) bytes of data.

--- 192.168.1.102 ping statistics ---
1000 packets transmitted, 1000 received, 0% packet loss, time 8997ms
rtt min/avg/max/mdev = 0.000/0.048/0.474/0.027 ms


Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: connection, host resets, I/O errors eventually (DRBD, but not only)

2009-01-09 Thread Bart Van Assche

On Fri, Jan 9, 2009 at 3:22 PM, Tomasz Chmielewski man...@wpkg.org wrote:
 Bart Van Assche schrieb:
 # ping -q -i 0.01 -c1000 -s160 ${remote_ip}

 I get about 1% losses.

IMHO running iSCSI over a slow link should work, but a packet loss of
1% is troublesome. On a local network the packet loss rate is about
0.001% (1e-5) for 1000-byte packets.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Software raid over iSCSI

2008-12-23 Thread Bart Van Assche

On Tue, Dec 23, 2008 at 9:13 AM, Andrew McGill list2...@lunch.za.net wrote:
 From another list, the mail below is a proposal to change the default
 partition table for disks from 512 bytes to 4096 bytes.  I think that once
 implemented (in a few years / days time), it will make some of the alignment
 problems due to the 512-byte MSDOS partition table go away.  The complete
 thread has some references to how the SCSI code determines the geometry --
 http://news.gmane.org/group/gmane.linux.utilities.util-linux-ng/last=

Thanks for the link. This thread contains an interesting suggestion,
namely choosing 255/56/X for C/H/S. This C/H/S choice guarantees that
partitions are aligned at 4096 byte boundaries.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: iSCSI overhead

2008-12-23 Thread Bart Van Assche

On Tue, Dec 23, 2008 at 3:00 PM,  r...@megabit.net wrote:
 Hmmm maybe you misunderstood me - a performance improvement would be nice but 
 that was not the point of my mail: I'm just wondering why there seems to be 
 such a big overhead on the network while doing synchronus reads and writes to 
 the iSCSI device.

It's possible that I misunderstood you. I should also have made more
clear what I had in mind, namely that the readahead settings on the
initiator system have a significant impact on random I/O performance.
But apparently you were running a sequential I/O test ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Software raid over iSCSI

2008-12-22 Thread Bart Van Assche

On Mon, Dec 22, 2008 at 1:18 PM, Ulrich Windl
ulrich.wi...@rz.uni-regensburg.de wrote:
 I think since ZBR (Zone Bit Recording) the number of sectors per cylinder is
 variable. thus it makes no sense for any higher-level disk software to try to 
 deal
 with heads or cylinders. Since ATA (about 1990) only the controller on the 
 disk
 knows the tracks, heads, and cylinders. The rest is just logic. Therefore SCSI
 (nad now LBA) just uses logical block numbers.

At least with IET, changing the heads/sector values for the exported
disk does improve speed. See also
http://www.mail-archive.com/open-iscsi@googlegroups.com/msg01664.html.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Software raid over iSCSI

2008-12-22 Thread Bart Van Assche

On Mon, Dec 22, 2008 at 2:17 PM, Eric ericvanblokl...@gmail.com wrote:

 Thanks for definitive answer and the link to a great thread. I need
 one more:

 I have to set the heads and cylinders on the disk partitions of the
 virtualized servers. Now I assume I also have to set heads and
 cylinders on the raid partions, exported by the targets. Is this
 assumption correct?

I'm not 100% sure, but the CHS layout of the disk itself (not the
partitions) might be the layout you have to tune. If I remember
correctly, IET performance is suboptimal if partition boundaries are
not aligned with page boundaries. Or: partition boundaries should be a
multiple of 4096 KB.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Correct way to change I/O scheduler in a iSCSI dev

2008-11-25 Thread Bart Van Assche

On Tue, Nov 25, 2008 at 3:07 PM, Santi Saez [EMAIL PROTECTED] wrote:
 What's the correct way to change configuration parameters for an iSCSI 
 device? For example I/O scheduler, max_sectors_kb, etc...

Please have a look at the hierarchy created by udevd in /dev. You can
find there soft links that have a name that does not change over
sessions and that point to the devices created by the iSCSI initiator
(/dev/sdb etc).

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Extremely slow read performance, but write speeds are near-perfect!

2008-11-22 Thread Bart Van Assche

On Fri, Nov 21, 2008 at 9:16 PM, Heady [EMAIL PROTECTED] wrote:
 * The target is IET running on a Xen dom0 running Gentoo Linux with [ ... ]

Maybe not the advice you are looking for, but did you already have a
look at the SCST iSCSI target implementation ? It's faster than IET
and better maintained. There is also a section about how to tune
read-ahead settings in the file scst/README. See also
http://scst.sourceforge.net/ for more information.

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: Extremely slow read performance, but write speeds are near-perfect!

2008-11-22 Thread Bart Van Assche

On Sat, Nov 22, 2008 at 10:58 AM, Tracy Reed [EMAIL PROTECTED] wrote:
 On Sat, Nov 22, 2008 at 09:44:09AM +0100, Bart Van Assche spake thusly:
 Maybe not the advice you are looking for, but did you already have a
 look at the SCST iSCSI target implementation ? It's faster than IET
 and better maintained. There is also a section about how to tune

 Does it do MC/S or Error Recovery Level 2 or 3?

Not that I know of. Would you like to see these features implemented in SCST ?

(CC'd Vladislav Bolkhovitin, SCST maintainer)

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: An note on the HP MPX 100

2008-11-19 Thread Bart Van Assche

On Wed, Nov 19, 2008 at 11:03 AM, Ulrich Windl
[EMAIL PROTECTED] wrote:
 maybe some of you like to know what I think to have found out:
 The HP EVA iSCSI connectivity MPX 100 box seems to be an OEM version of the
 Qlogic iSR6140 Universal SAN Connectivity (with different firmware however).

Does this box have an Ethernet network interface ? If so, any idea
whether this is a regular Ethernet network interface or a QLogic iSCSI
HBA ? Looking at the first three bytes of the MAC address might reveal
this (not sure about this).

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: A note on the HP MPX 100

2008-11-19 Thread Bart Van Assche

On Thu, Nov 20, 2008 at 8:33 AM, Ulrich Windl
[EMAIL PROTECTED] wrote:
 I assume there are quite a few iSCSI boxes without Ethernet interfaces ;-)

iSCSI does not only run over Ethernet but also over e.g. InfiniBand.

 The box has two Gb Ethernet interfaces that, AFAIK, have hardware 
 acceleration for
 iSCSI. (If you search the Internet for Qlogic iSR6140 Universal SAN 
 Connectivity
 you may find the whitepaper that shows an image of the connectors of the box)

 The access to the hardware is resticted, but having the facts that qlogic 
 built
 the hardware for iSCSI, it's quite possible that they use their own hardware-
 accelerated iSCSI HBAs. Will the MAC 00:C0:DD:0D:0C:8B uncover the secret?

From http://standards.ieee.org/regauth/oui/index.shtml:

00-C0-DD   (hex)QLogic Corporation
00C0DD (base 16)QLogic Corporation
6321 Bury Dr.
Eden Prarie MN 55346
UNITED STATES

The above information is consistent with what you reported, namely
that the NIC's have hardware iSCSI acceleration. This information is
relevant because it tells us something about where to look for the
CHAP implementation. Maybe one of the people who reads this mailing
list knows whether CHAP support for QLogic HBA's is implemented in the
QLogic kernel driver or the QLogic HBA BIOS ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



Re: test/regression.sh: ext3 filesystem creation fails

2008-05-23 Thread Bart Van Assche

On Fri, May 23, 2008 at 8:09 PM, Mike Christie [EMAIL PROTECTED] wrote:
 I have seen this a couple times in past versions too. If you run mkfs by
 hand is it fine?

I get the same error when I run mkfs.ext3 -F directly. Is this an
initiator or a target issue ?

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



iSCSI initiator lockup

2008-05-09 Thread Bart Van Assche

Hello,

Due to resetting an iSCSI target (SCST) while an iSCSI session was
active, the iSCSI initiator seems to be locked up. E.g. when I try to
run the command iscsiadm -m session or iscsiadm ... --logout,
these command hangs forever. This is probably not the intended
behavior ?

# cat /etc/issue
Ubuntu 7.10 \n \l

# uname -a
Linux INF010 2.6.24 #1 SMP Thu Feb 7 15:45:15 CET 2008 x86_64 GNU/Linux

# dpkg -l open-iscsi
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name   VersionDescription
+++-==-==-
ii  open-iscsi 2.0.865-1  High performance, transport independent iSCS

# pidof iscsid
4787 4786

# strace iscsiadm -m session
socket(PF_FILE, SOCK_STREAM, 0) = 3
connect(3, {sa_family=AF_FILE, [EMAIL PROTECTED], 110) = 0
write(3, \10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0...,
4760) = 4760
recvfrom(3,  unfinished ...

# strace iscsiadm -m node -p 192.168.64.13 -T ... --logout
socket(PF_FILE, SOCK_STREAM, 0) = 3
connect(3, {sa_family=AF_FILE, [EMAIL PROTECTED], 110) = 0
write(3, \10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0...,
4760) = 4760
recvfrom(3,  unfinished ...

Kernel messages:
May  7 11:34:20 INF010 kernel: [0.00] scsi28 : iSCSI Initiator
over TCP/IP
May  7 11:34:20 INF010 kernel: [0.00] scsi 28:0:0:0:
Direct-Access SCST_FIO vdisk0096 PQ: 0 ANSI: 4
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Very
big device. Trying to use READ CAPACITY(16).
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde]
6778558976 512-byte hardware sectors (3470622 MB)
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Write
Protect is off
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Mode
Sense: 6b 00 10 08
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Write
cache: enabled, read cache: enabled, supports DPO and FUA
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Very
big device. Trying to use READ CAPACITY(16).
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde]
6778558976 512-byte hardware sectors (3470622 MB)
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Write
Protect is off
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Mode
Sense: 6b 00 10 08
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde] Write
cache: enabled, read cache: enabled, supports DPO and FUA
May  7 11:34:20 INF010 kernel: [0.00]  sde: unknown partition table
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: [sde]
Attached SCSI disk
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:0: Attached
scsi generic sg5 type 0
May  7 11:34:20 INF010 kernel: [0.00] scsi 28:0:0:1:
Direct-Access SCST_FIO vdisk1096 PQ: 0 ANSI: 4
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Very
big device. Trying to use READ CAPACITY(16).
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf]
6778558976 512-byte hardware sectors (3470622 MB)
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Write
Protect is off
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Mode
Sense: 6b 00 10 08
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Write
cache: enabled, read cache: enabled, supports DPO and FUA
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Very
big device. Trying to use READ CAPACITY(16).
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf]
6778558976 512-byte hardware sectors (3470622 MB)
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Write
Protect is off
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Mode
Sense: 6b 00 10 08
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf] Write
cache: enabled, read cache: enabled, supports DPO and FUA
May  7 11:34:20 INF010 kernel: [0.00]  sdf: unknown partition table
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: [sdf]
Attached SCSI disk
May  7 11:34:20 INF010 kernel: [0.00] sd 28:0:0:1: Attached
scsi generic sg6 type 0
May  7 11:34:27 INF010 kernel: [0.00] sd 28:0:0:0: [sde]
Synchronizing SCSI cache
May  7 11:34:27 INF010 kernel: [0.00] iscsi: cmd 0x35 is not queued (6)
May  7 11:34:27 INF010 last message repeated 2 times
May  7 11:34:27 INF010 kernel: [0.00] sd 28:0:0:0: [sde]
Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
May  7 11:34:27 INF010 kernel: [0.00] sd 28:0:0:1: [sdf]
Synchronizing SCSI cache
May  7 11:34:27 INF010 kernel: [0.00] iscsi: cmd 0x35 is not queued (6)
May  7 11:34:27 INF010 last message repeated 2 times
May  7 11:34:27 INF010 kernel: [0.00] sd 28:0:0:1: [sdf]

iSCSI target compliance testing

2008-04-03 Thread Bart Van Assche

Hello,

Does anyone on this list have experience with iSCSI target compliance
testing ? I found some old references to a compliance test by
University of New Hampshire Interoperability Labs (UNH-IOL) but have
been unable so far to find the source code of these tests.

See also:
* November 4, 2004: http://www.byteandswitch.com/document.asp?doc_id=62308
* May 1, 2004: 
http://www.thefreelibrary.com/iSCSI+deployment+in+business+IP+storage+network-a0118903279
* November 26, 2001: http://safari.peachpit.com/0201752778/ch14lev1sec2

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---



iscsiadm: buffer size 32768 too small for data length 32768

2008-03-31 Thread Bart Van Assche

Hello,

Has anyone here experience with letting the open-iscsi initiator
connect to an iSCSI target system on which many (hundreds) of target
have been configured ? From a certain number of targets on the
open-iscsi initiator starts complaining that the buffer size is too
small. Can I increase the 32768 byte buffer limit without recompiling
open-iscsi ?

Thanks,

Bart.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~--~~~~--~~--~--~---