Re: [Suggestion] drivers/target/sbp/ : set tport->tpg to NULL when clean up for failure.

2012-12-14 Thread Chen Gang
于 2012年12月15日 08:33, Nicholas A. Bellinger 写道:
> 
> FYI folks, this fix from Chris was included in the [GIT PULL] request
> for v3.8-rc1 sent out today.
> 

  thanks

  and now I am in target-de...@vger.kernel.org, too.

  :-)


> Thanks!
> 
> --nab
> 
> 
> 


-- 
Chen Gang

Asianux Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Suggestion] drivers/target/sbp/ : set tport->tpg to NULL when clean up for failure.

2012-12-14 Thread Nicholas A. Bellinger
On Fri, 2012-12-14 at 15:22 +0800, Chen Gang wrote:
> 于 2012年12月14日 14:57, Stefan Richter 写道:
> > On Dec 14 Chen Gang wrote:
> >> 于 2012年12月10日 16:02, Chris Boot 写道:
> >>> On 10/12/12 02:39, Chen Gang wrote:
>  Hello Chris Boot:
> 
>    need I send the relative patch ?
> >>>
> >>> Hi Chen,
> >>>
> >>> Sorry, life got in the way this weekend. I'll try to get the patch sent
> >>> out today.
> >>>
> >>
> >>   Have you sent ?
> >>
> >>   I am already in linux-scsi@vger.kernel.org mailing list, but it seems
> >> not find your patch.
> > 
> > It was posted at target-devel:
> > http://thread.gmane.org/gmane.linux.scsi.target.devel/3019/focus=3020
> > 
> 
>   oh, thank you very much.
> 
>   I need join target-de...@vger.kernel.org, I will do.
> 

FYI folks, this fix from Chris was included in the [GIT PULL] request
for v3.8-rc1 sent out today.

Thanks!

--nab

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] target updates for v3.8-rc1

2012-12-14 Thread Nicholas A. Bellinger
Hello Linus!

Here are the target updates for v3.8-rc1 merge window code.  Please go
ahead and pull from:

  git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git for-next

Just a heads up that there is a minor merge conflict that you'll
encounter in target_handle_task_attr() code, that sfr has been carrying
a fix for recently within -next.  After dropping the HEAD section, the
resolution should look like:

http://git.kernel.org/?p=linux/kernel/git/nab/target-pending.git;a=commitdiff;h=50f966ab0a8630cacb46bb382cd2822a5c1448ac

It has been a very busy development cycle this time around in target
land, with the highlights including:

 - Kill struct se_subsystem_dev, in favor of direct se_device usage (hch)
 - Simplify reservations code by combining SPC-3 + SCSI-2 support 
   for virtual backends only (hch)
 - Simplify ALUA code for virtual only backends, and remove left
   over abstractions (hch)
 - Pass sense_reason_t as return value for I/O submission path (hch)
 - Refactor MODE_SENSE emulation to allow for easier addition of
   new mode pages. (roland)
 - Add emulation of MODE_SELECT (roland)
 - Fix bug in handling of ExpStatSN wrap-around (steve)
 - Fix bug in TMR ABORT_TASK lookup in qla2xxx target (steve)
 - Add WRITE_SAME w/ UNMAP=0 support for IBLOCK backends (nab)
 - Convert ib_srpt to use modern target_submit_cmd caller +
   drop legacy ioctx->kref usage (nab)
 - Convert ib_srpt to use modern target_submit_tmr caller (nab)
 - Add link_magic for fabric allow_link destination target_items
   for symlinks within target_core_fabric_configfs.c code (nab)
 - Allocate pointers in instead of full structs for
   config_group->default_groups (sebastian)
 - Fix 32-bit highmem breakage for FILEIO (sebastian)

All told, hch was able to shave off another ~1K LOC by killing the
se_subsystem_dev abstraction, along with a number of PR + ALUA
simplifications.  Also, a nice patch by Roland is the refactoring of
MODE_SENSE handling, along with the addition of initial MODE_SELECT
emulation support for virtual backends.

Sebastian found a long-standing issue wrt to allocation of full
config_group instead of pointers for config_group->default_group[]
setup in a number of areas, which ends up saving memory with big
configurations.  He also managed to fix another long-standing BUG wrt to
broken 32-bit highmem support within the FILEIO backend driver.

Thank you again to everyone who contributed this round!

--nab

Andy Grover (1):
  target/iscsi_target: Add NodeACL tags for initiator group support

Chris Boot (2):
  sbp-target: use simple assignment in tgt_agent_rw_agent_state()
  sbp-target: fix error path in sbp_make_tpg()

Christoph Hellwig (11):
  target: kill struct se_subsystem_dev
  target: rename spc_ops
  target: move REPORT LUNS emulation to target_core_spc.c
  target/pscsi: call spc_emulate_report_luns directly
  target: provide generic sbc device type/revision helpers
  pscsi: fix REPORT LUNS handling
  target: kill dev->dev_task_attr_type
  target: simplify reservations code
  target: simplify alua support
  target: remove ->get_device_rev
  target: pass sense_reason as a return value

Dan Carpenter (1):
  target: update error handling for sbc_setup_write_same()

Fengguang Wu (1):
  target/pscsi: Make pscsi_configure_device + target_release_session
static

Kees Cook (1):
  sbp-target: remove depends on CONFIG_EXPERIMENTAL

Nicholas Bellinger (14):
  target: Fix incorrect starting offset after MODE_SENSE refactoring
  target: Fix incorrect inversion of TPGS_EXPLICT_ALUA check
  target: Fix possible TFO->write_pending() sense_reason_t silent WRITE
corruption
  target: Fix exception path pr_reg put regression for PR RELEASE
  target: Change sbc_emulate_noop to return sense_reason_t
  target/sbc: Seperate WRITE_SAME based on UNMAP flag in sbc_ops
  target: Add/check max_write_same_len device attribute + update block
limits VPD
  target/iblock: Add WRITE_SAME w/ UNMAP=0 emulation support
  target: Update copyright information to 2012
  target/iblock: Forward declare bio helpers
  target: Make spc_get_write_same_sectors return sector_t
  ib_srpt: Convert I/O path to target_submit_cmd + drop legacy
ioctx->kref
  ib_srpt: Convert TMR path to target_submit_tmr
  target: Add link_magic for fabric allow_link destination target_items

Roland Dreier (8):
  iscsi-target: Use list_first_entry() where appropriate
  target: Refactor MODE SENSE emulation
  target: Implement mode page 0x1c, "Informational Exceptions"
  target: Add emulation for MODE SELECT
  iscsi-target: Fix potential deadlock on lock taken in timer
  iscsi-target: Always send a response before terminating iSCSI
connection
  target: Clean up logic in transport_put_cmd()
  target: Clean up flow in transport_check_aborted_status()

Sachin Kamat (1):
  iscsi_target: Remove redundant null check before kfree

Sebastian Andrzej Siewior (6):
  target/configfs: allocate pointers instead of full struct for
default_groups
  target/c

FCoE Updates for 3.8 (v2)

2012-12-14 Thread Robert Love
The following changes since commit b69f0859dc8e633c5d8c06845811588fe17e68b3:

  Linux 3.7-rc8 (2012-12-03 11:22:37 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe.git 
tags/for-next-12-14-12

for you to fetch changes up to 4f670ff8eb4cb3e9e6ae0c0c6976faa0a4503751:

  debris left by "[SCSI] libfcoe: Remove mutex_trylock/restart_syscall checks" 
(2012-12-14 10:38:56 -0800)


FCoE Updates for 3.8 (v2)


Al Viro (1):
  debris left by "[SCSI] libfcoe: Remove mutex_trylock/restart_syscall 
checks"

Robert Love (7):
  Documentation: Add missing devices/ to devices path
  libfcoe: Save some memory and optimize name lookups
  libfcoe: Add fcoe_sysfs debug logging level
  libfcoe, fcoe, bnx2fc: Add new fcoe control interface
  fcoe: Use the fcoe_sysfs control interface
  bnx2fc: Use the fcoe_sysfs control interface
  libfc, libfcoe, fcoe: Convert debug_logging macros to pr_info

Vasu Dev (1):
  libfc: fix REC handling

Yi Zou (7):
  fcoe: prep work to start consolidate the usage of fcoe_netdev
  fcoe: add support to the get_netdev() for fcoe_interface
  libfcoe, fcoe: move fcoe_link_speed_update() to libfcoe and export it
  libfcoe, fcoe: consolidate the fcoe_ctlr_get_lesb/fcoe_get_lesb
  bnx2fc: add support to get_netdev for bnx2f_interface
  bnx2fc: use fcoe_link_speed_update() from the exported symbol in libfcoe
  bnx2fc: use fcoe_get_lesb/fcoe_ctlr_get_lesb() directly from libfcoe

 Documentation/ABI/testing/sysfs-bus-fcoe |   45 +-
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c|  256 +-
 drivers/scsi/fcoe/fcoe.c |  212 +++--
 drivers/scsi/fcoe/fcoe.h |6 +-
 drivers/scsi/fcoe/fcoe_ctlr.c|   17 +-
 drivers/scsi/fcoe/fcoe_sysfs.c   |  186 ++
 drivers/scsi/fcoe/fcoe_transport.c   |  199 ++-
 drivers/scsi/fcoe/libfcoe.h  |   20 ++-
 drivers/scsi/libfc/fc_fcp.c  |6 +-
 drivers/scsi/libfc/fc_libfc.h|   38 ++---
 include/scsi/fcoe_sysfs.h|   11 +-
 include/scsi/libfcoe.h   |   32 +++-
 12 files changed, 749 insertions(+), 279 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: FCoE Updates for 3.8

2012-12-14 Thread Love, Robert W
On Wed 12 Dec 2012 04:45:50 PM PST, Robert Love wrote:
> The following changes since commit b69f0859dc8e633c5d8c06845811588fe17e68b3:
>
>Linux 3.7-rc8 (2012-12-03 11:22:37 -0800)
>
> are available in the git repository at:
>
>git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe.git 
> for-next-12-12-12
>
> for you to fetch changes up to 04f0ac991b5dd2a32c3fa3dcb2cf34830949afa5:
>
>debris left by "[SCSI] libfcoe: Remove mutex_trylock/restart_syscall 
> checks" (2012-12-11 10:22:36 -0800)
>
> 
> Al Viro (1):
>debris left by "[SCSI] libfcoe: Remove mutex_trylock/restart_syscall 
> checks"
>
> Robert Love (7):
>Documentation: Add missing devices/ to devices path
>libfcoe: Save some memory and optimize name lookups
>libfcoe: Add fcoe_sysfs debug logging level
>libfcoe, fcoe, bnx2fc: Add new fcoe control interface
>fcoe: Use the fcoe_sysfs control interface
>bnx2fc: Use the fcoe_sysfs control interface
>libfc, libfcoe, fcoe: Convert debug_logging macros to pr_info
>
> Vasu Dev (1):
>libfc: fix REC handling
>
> Yi Zou (7):
>fcoe: prep work to start consolidate the usage of fcoe_netdev
>fcoe: add support to the get_netdev() for fcoe_interface
>libfcoe, fcoe: move fcoe_link_speed_update() to libfcoe and export it
>libfcoe, fcoe: consolidate the fcoe_ctlr_get_lesb/fcoe_get_lesb
>bnx2fc: add support to get_netdev for bnx2f_interface
>bnx2fc: use fcoe_link_speed_update() from the exported symbol in 
> libfcoe
>bnx2fc: use fcoe_get_lesb/fcoe_ctlr_get_lesb() directly from libfcoe
>
>   Documentation/ABI/testing/sysfs-bus-fcoe |   45 +-
>   drivers/scsi/bnx2fc/bnx2fc_fcoe.c|  256 
> +-
>   drivers/scsi/fcoe/fcoe.c |  212 +++--
>   drivers/scsi/fcoe/fcoe.h |6 +-
>   drivers/scsi/fcoe/fcoe_ctlr.c|   17 +-
>   drivers/scsi/fcoe/fcoe_sysfs.c   |  186 ++
>   drivers/scsi/fcoe/fcoe_transport.c   |  199 ++-
>   drivers/scsi/fcoe/libfcoe.h  |   20 ++-
>   drivers/scsi/libfc/fc_fcp.c  |6 +-
>   drivers/scsi/libfc/fc_libfc.h|   38 ++---
>   include/scsi/fcoe_sysfs.h|   11 +-
>   include/scsi/libfcoe.h   |   32 +++-
>   12 files changed, 749 insertions(+), 279 deletions(-)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Please ignore this request. A new (v2) pull request is coming that 
addresses Bart's feedback on one patch.

Thanks, //Rob

N�r��yb�X��ǧv�^�)޺{.n�+{���"�{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�mzZ+�ݢj"��!�i

[PATCH v2] libfcoe: Save some memory and optimize name lookups

2012-12-14 Thread Robert Love
Instead of creating a structure with an enum and a pointer
to a string, simply allocate an array of strings and use
the enum values for the indicies.

This means that we do not need to iterate through the list
of entries when looking up a string name by its enum key.

This will also help with a latter patch that will add
more fcoe_sysfs attributes that will also use the
fcoe_enum_name_search macro. One attribute will also do
a reverse lookup which requires less code when the
enum-to-string mappings are organized as this patch makes
them to be.

Signed-off-by: Robert Love 
Acked-by: Neil Horman 
---
 drivers/scsi/fcoe/fcoe_sysfs.c |   44 +++-
 1 file changed, 16 insertions(+), 28 deletions(-)

diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
index 5e75168..e6fce28 100644
--- a/drivers/scsi/fcoe/fcoe_sysfs.c
+++ b/drivers/scsi/fcoe/fcoe_sysfs.c
@@ -210,25 +210,23 @@ static ssize_t show_fcoe_fcf_device_##field(struct device 
*dev,   \
 #define fcoe_enum_name_search(title, table_type, table)
\
 static const char *get_fcoe_##title##_name(enum table_type table_key)  \
 {  \
-   int i;  \
-   char *name = NULL;  \
-   \
-   for (i = 0; i < ARRAY_SIZE(table); i++) {   \
-   if (table[i].value == table_key) {  \
-   name = table[i].name;   \
-   break;  \
-   }   \
-   }   \
-   return name;\
+   if (table_key < 0 || table_key >= ARRAY_SIZE(table))\
+   return NULL;\
+   return table[table_key];\
 }
 
-static struct {
-   enum fcf_state value;
-   char   *name;
-} fcf_state_names[] = {
-   { FCOE_FCF_STATE_UNKNOWN,  "Unknown" },
-   { FCOE_FCF_STATE_DISCONNECTED, "Disconnected" },
-   { FCOE_FCF_STATE_CONNECTED,"Connected" },
+static char *fip_conn_type_names[] = {
+   [ FIP_CONN_TYPE_UNKNOWN ] = "Unknown",
+   [ FIP_CONN_TYPE_FABRIC ]  = "Fabric",
+   [ FIP_CONN_TYPE_VN2VN ]   = "VN2VN",
+};
+fcoe_enum_name_search(ctlr_mode, fip_conn_type, fip_conn_type_names)
+#define FCOE_CTLR_MODE_MAX_NAMELEN 50
+
+static char *fcf_state_names[] = {
+   [ FCOE_FCF_STATE_UNKNOWN ]  = "Unknown",
+   [ FCOE_FCF_STATE_DISCONNECTED ] = "Disconnected",
+   [ FCOE_FCF_STATE_CONNECTED ]= "Connected",
 };
 fcoe_enum_name_search(fcf_state, fcf_state, fcf_state_names)
 #define FCOE_FCF_STATE_MAX_NAMELEN 50
@@ -246,17 +244,7 @@ static ssize_t show_fcf_state(struct device *dev,
 }
 static FCOE_DEVICE_ATTR(fcf, state, S_IRUGO, show_fcf_state, NULL);
 
-static struct {
-   enum fip_conn_type value;
-   char   *name;
-} fip_conn_type_names[] = {
-   { FIP_CONN_TYPE_UNKNOWN, "Unknown" },
-   { FIP_CONN_TYPE_FABRIC, "Fabric" },
-   { FIP_CONN_TYPE_VN2VN, "VN2VN" },
-};
-fcoe_enum_name_search(ctlr_mode, fip_conn_type, fip_conn_type_names)
-#define FCOE_CTLR_MODE_MAX_NAMELEN 50
-
+#define FCOE_MAX_MODENAME_LEN 20
 static ssize_t show_ctlr_mode(struct device *dev,
  struct device_attribute *attr,
  char *buf)

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SCSI mid layer and high IOPS capable devices

2012-12-14 Thread scameron
On Fri, Dec 14, 2012 at 08:28:56PM +0100, Bart Van Assche wrote:
> On 12/14/12 20:55, scame...@beardog.cce.hp.com wrote:
> >It's not so much that they are re-ordered as that there is no controlled
> >ordering to begin with because multiple cpus are submitting to multiple
> >hardware queues concurrently.  If you have 12 requests coming in on 12
> >cpus to 12 hardware queues to the device, it's going to be racy as to
> >which request is processed first by the device -- and this is fine, the
> >hardware queues are independent of one another and do not need to worry
> >about each other.  This is all to provide a means of getting enough 
> >commands
> >on the device to actually keep it busy.  A single cpu can't do it, the
> >device is too fast.  If you have ordering dependencies such that request
> >A must complete before request B completes, then don't submit A and B
> >concurrently, because if you do submit them concurrently, you cannot tell
> >whether A or B will arrive into the device first because they may go into
> >it via different hardware queues.
> 
> It depends on how these multiple queues are used. If each queue would 
> e.g. be associated with a disjoint LBA range of the storage device then 
> there wouldn't be a risk of request reordering due to using multiple 
> hardware queues.

They are not associated with disjoint LBA ranges. They are associated
with CPUs on the submission side, there's a submit queue per cpu, and
msix vectors on the completion side (also a completion queue per cpu).

The point of the queues is only to provide a wide enough highway to
allow enough requests to be shoved down to the device fast enough
and completed back to the host fast enough that the device can be kept
reasonably busy, instead of being starved for work to do.  There is
no distinction about what the requests may do based on what hardware
i/o queue they come in on (e.g. no lba range partitioning). All the
i/o queues are equivalent.

Pretty much all current storage devices, disk drives and the devices I'm
talking about in particular do depend on the low level driver and storage
devices being permitted to re-order requests.  So I don't think the discussion
about drivers and devices that *do not* reorder requests (which drivers and 
devices
would those be?) is very related to the topic of how to get the scsi mid layer
to provide a wide enough highway for requests destined for very low latency
devices.

-- steve

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SCSI mid layer and high IOPS capable devices

2012-12-14 Thread Bart Van Assche

On 12/14/12 20:55, scame...@beardog.cce.hp.com wrote:

It's not so much that they are re-ordered as that there is no controlled
ordering to begin with because multiple cpus are submitting to multiple
hardware queues concurrently.  If you have 12 requests coming in on 12
cpus to 12 hardware queues to the device, it's going to be racy as to
which request is processed first by the device -- and this is fine, the
hardware queues are independent of one another and do not need to worry
about each other.  This is all to provide a means of getting enough commands
on the device to actually keep it busy.  A single cpu can't do it, the
device is too fast.  If you have ordering dependencies such that request
A must complete before request B completes, then don't submit A and B
concurrently, because if you do submit them concurrently, you cannot tell
whether A or B will arrive into the device first because they may go into
it via different hardware queues.


It depends on how these multiple queues are used. If each queue would 
e.g. be associated with a disjoint LBA range of the storage device then 
there wouldn't be a risk of request reordering due to using multiple 
hardware queues.


Bart.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SCSI mid layer and high IOPS capable devices

2012-12-14 Thread scameron
On Fri, Dec 14, 2012 at 05:15:37PM +0100, Bart Van Assche wrote:
> On 12/14/12 17:44, scame...@beardog.cce.hp.com wrote:
> >I expect the flash devices re-order requests as well, simply because
> >to feed requests to the things at a sufficient rate, you have to pump
> >requests into them concurrently on multiple hardware queues -- a single
> >cpu jamming requests into them as fast as it can is still not fast enough
> >to keep them busy.  Consequently, they *can't* care about ordering, as the
> >relative order requests on different hardware queues are submitted into 
> >them
> >is not even really controlled, so the OS *can't* count on concurrent 
> >requests
> >not to be essentially "re-ordered", just because of the nature of the way
> >requests get into the device.
> 
> Why should a flash device have to reorder write requests ? These devices 
> typically use a log-structured file system internally.

It's not so much that they are re-ordered as that there is no controlled
ordering to begin with because multiple cpus are submitting to multiple
hardware queues concurrently.  If you have 12 requests coming in on 12
cpus to 12 hardware queues to the device, it's going to be racy as to
which request is processed first by the device -- and this is fine, the
hardware queues are independent of one another and do not need to worry
about each other.  This is all to provide a means of getting enough commands
on the device to actually keep it busy.  A single cpu can't do it, the
device is too fast.  If you have ordering dependencies such that request
A must complete before request B completes, then don't submit A and B
concurrently, because if you do submit them concurrently, you cannot tell
whether A or B will arrive into the device first because they may go into
it via different hardware queues.

Note, in case it isn't obvious, the hardware queues I'm talking about here
are not the struct scsi_device, sdev->request_queue queues, they are
typically ring buffers in host memory from which the device DMAs 
commands/responses
to/from depending on if it's a submit queue or a completion queue and with
producer/consumer indexes one of which is in host memory and one of which
is a register on the device (which is which depends on the direction of the
queue, from device (pi = host memory, ci = device register), or to device
(pi = device register, ci = host memory))

-- steve
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 03/16] libfcoe: Save some memory and optimize name lookups

2012-12-14 Thread Love, Robert W
On Wed 12 Dec 2012 11:54:10 PM PST, Bart Van Assche wrote:
> On 12/13/12 00:22, Robert Love wrote:
>> @@ -210,25 +210,23 @@ static ssize_t
>> show_fcoe_fcf_device_##field(struct device *dev,\
>>   #define fcoe_enum_name_search(title, table_type, table)\
>>   static const char *get_fcoe_##title##_name(enum table_type
>> table_key)\
>>   {\
>> -int i;\
>> -char *name = NULL;\
>> -\
>> -for (i = 0; i < ARRAY_SIZE(table); i++) {\
>> -if (table[i].value == table_key) {\
>> -name = table[i].name;\
>> -break;\
>> -}\
>> -}\
>> -return name;\
>> +if (table_key >= ARRAY_SIZE(table))\
>> +return NULL;\
>> +return table[table_key];\
>>   }
>
> The old code was safe if table_key < 0 but the new code not. Can
> table_key be negative ?
>
>> +static char *fip_conn_type_names[] = {
>> +[ FIP_CONN_TYPE_UNKNOWN ] = "Unknown",
>> +[ FIP_CONN_TYPE_FABRIC ]  = "Fabric",
>> +[ FIP_CONN_TYPE_VN2VN ]   = "VN2VN",
>> +};
>
> A minor nit: indentation style is inconsistent here. Two elements are
> indented with a tab and another with eight spaces.
>
> Bart.

Thanks for the review and comments, Bart. I agree with both of your 
points.  I'll send an updated patch shortly. //Rob

Re: qla2xxx firmware

2012-12-14 Thread Chad Dupuis



On Fri, 14 Dec 2012, Xose Vazquez Perez wrote:


On 12/07/2012 08:05 PM, Xose Vazquez Perez wrote:


please qlogic guys, send latest fw to upstream linux-firmware.git


linux-firmware brings old releases:
File: ql2400_fw.bin
Version: 5.06.05 MID
File: ql2500_fw.bin
Version: 5.06.05 MIDQ

qlogic-ftp releases:
ql2400_fw.bin -- 5.08.00 MID
ql2500_fw.bin -- 5.08.00 MIDQ


btw,
these URIs should be fixed:
qla2xxx/Kconfig:ftp://ftp.qlogic.com/outgoing/linux/firmware/
qla2xxx/qla_init.c:#define QLA_FW_URL 
"ftp://ftp.qlogic.com/outgoing/linux/firmware/";

because ftp.qlogic.com is going to disappear, as stated in:
ftp://ftp.qlogic.com/IMPORTANT.THIS.FTP.SITE.TO.BE.SHUTDOWN

---cut---
QLogic Corporation FTP service - Access is monitored
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   - IMPORTANT NOTICE -
QLogic Corporation will be shutting down this public ftp site by end
of calendar year 2012.

All users must transition to our replacement service as follows:

QLogic Customers:  Driver downloads are available at
http://driverdownloads.qlogic.com

QLogic Business Partners: Please contact your QLogic counterpart for
assistance.

QLogic Employees: Please use the new Secure File Transfer service as
described in the following link.
http://helpdesk.qlogic.com/AddSolution.do?solID=19288

Please Contact ftp.h...@qlogic.com for further assistance
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
---end---




Hi Xose,

Thanks for the heads up.  We have a patch pending (but no submitted yet)
that will fix the FTP URIs.  We will also be send a pull request to
update the firmware soon.

Thanks,
Chad



This message and any attached documents contain information from QLogic 
Corporation or its wholly-owned subsidiaries that may be confidential. If you 
are not the intended recipient, you may not read, copy, distribute, or use this 
information. If you have received this transmission in error, please notify the 
sender immediately by reply e-mail and then delete this message.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: qla2xxx firmware

2012-12-14 Thread Xose Vazquez Perez
On 12/07/2012 08:05 PM, Xose Vazquez Perez wrote:

> please qlogic guys, send latest fw to upstream linux-firmware.git
> 
> 
> linux-firmware brings old releases:
> File: ql2400_fw.bin
> Version: 5.06.05 MID
> File: ql2500_fw.bin
> Version: 5.06.05 MIDQ
> 
> qlogic-ftp releases:
> ql2400_fw.bin -- 5.08.00 MID
> ql2500_fw.bin -- 5.08.00 MIDQ

btw,
these URIs should be fixed:
qla2xxx/Kconfig:ftp://ftp.qlogic.com/outgoing/linux/firmware/
qla2xxx/qla_init.c:#define QLA_FW_URL 
"ftp://ftp.qlogic.com/outgoing/linux/firmware/";

because ftp.qlogic.com is going to disappear, as stated in:
ftp://ftp.qlogic.com/IMPORTANT.THIS.FTP.SITE.TO.BE.SHUTDOWN

---cut---
QLogic Corporation FTP service - Access is monitored
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- IMPORTANT NOTICE -
QLogic Corporation will be shutting down this public ftp site by end 
of calendar year 2012.

All users must transition to our replacement service as follows:

QLogic Customers:  Driver downloads are available at
http://driverdownloads.qlogic.com

QLogic Business Partners: Please contact your QLogic counterpart for 
assistance.

QLogic Employees: Please use the new Secure File Transfer service as 
described in the following link. 
http://helpdesk.qlogic.com/AddSolution.do?solID=19288

Please Contact ftp.h...@qlogic.com for further assistance
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
---end---
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SCSI mid layer and high IOPS capable devices

2012-12-14 Thread Bart Van Assche

On 12/14/12 17:44, scame...@beardog.cce.hp.com wrote:

I expect the flash devices re-order requests as well, simply because
to feed requests to the things at a sufficient rate, you have to pump
requests into them concurrently on multiple hardware queues -- a single
cpu jamming requests into them as fast as it can is still not fast enough
to keep them busy.  Consequently, they *can't* care about ordering, as the
relative order requests on different hardware queues are submitted into them
is not even really controlled, so the OS *can't* count on concurrent requests
not to be essentially "re-ordered", just because of the nature of the way
requests get into the device.


Why should a flash device have to reorder write requests ? These devices 
typically use a log-structured file system internally.


Bart.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch,v3,repost 00/10] make I/O path allocations more numa-friendly

2012-12-14 Thread Jeff Moyer
James Bottomley  writes:

> On Mon, 2012-12-10 at 12:59 -0500, Jeff Moyer wrote:
>> Jeff Moyer  writes:
>> 
>> > Hi,
>> >
>> > This patch set makes memory allocations for data structures used in
>> > the I/O path more numa friendly by allocating them from the same numa
>> > node as the storage device.  I've only converted a handful of drivers
>> > at this point.  My testing is limited by the hardware I have on hand.
>> > Using these patches, I was able to max out the bandwidth of the storage
>> > controller when issuing I/O from any node on my 4 node system.  Without
>> > the patch, I/O from nodes remote to the storage device would suffer a
>> > penalty ranging from 6-12%.  Given my relatively low-end setup[1], I
>> > wouldn't be surprised if others could show a more significant performance
>> > advantage.
>> >
>> > This is a repost of the last posting.  The only changes are additional
>> > reviewed-by/acked-by tags.  I think this version is ready for inclusion.
>> > James, would you mind taking a look?
>> 
>> James?  Do you have any objections to including this for 3.8?
>
> Probably for 3.9 since the 3.8 merge window is upon us.

OK.

> Do we actually have any performance numbers from the big system people?
> That's really a must for this type of work.

I'm working on getting some numbers.

> It's missing acks from the affected drivers; that's not a show stopper
> but it would be better to have them.

Well, we could trim the driver list to those that have ACKs, but the
driver changes are trivial.

Thanks,
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SCSI mid layer and high IOPS capable devices

2012-12-14 Thread scameron
On Fri, Dec 14, 2012 at 10:44:34AM +0100, Bart Van Assche wrote:
> On 12/13/12 17:49, Christoph Hellwig wrote:
> >On Thu, Dec 13, 2012 at 05:47:14PM +0100, Bart Van Assche wrote:
> >> From my experience with block and SCSI drivers option (1) doesn't
> >>look attractive from a performance point of view. From what I have
> >>seen performance with QD=1 is several times lower than performance
> >>with QD > 1. But maybe I overlooked something ?
> >
> >What you might be missing is that at least on Linux no one who cares
> >about performance uses the Posix AIO inferface anyway, as the
> >implementation in glibc always has been horrible.  The Linux-native
> >aio interface or the various thread pool implementations don't imply
> >useless ordering and thus can be used to fill up large queues.
> 
> Some applications need write ordering without having a need for 
> enforcing durability as fsync() does [1]. What I'm wondering about is 
> whether an operating system kernel like the Linux kernel should penalize 
> application performance when using block drivers and storage hardware 
> that preserve the order of write requests because there exist other 
> drivers and storage devices that do not preserve the order of write 
> requests ?

Which devices don't re-order requests?  So far as I know every single
disk drive ever made that is capable of handling multiple requests will
also re-order requests as it sees fit.

I expect the flash devices re-order requests as well, simply because
to feed requests to the things at a sufficient rate, you have to pump
requests into them concurrently on multiple hardware queues -- a single
cpu jamming requests into them as fast as it can is still not fast enough
to keep them busy.  Consequently, they *can't* care about ordering, as the
relative order requests on different hardware queues are submitted into them
is not even really controlled, so the OS *can't* count on concurrent requests
not to be essentially "re-ordered", just because of the nature of the way
requests get into the device.

So I think the property that devices and drivers are free to reorder
concurrent requests is not going away.

-- steve

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SCSI mid layer and high IOPS capable devices

2012-12-14 Thread Bart Van Assche

On 12/13/12 17:49, Christoph Hellwig wrote:

On Thu, Dec 13, 2012 at 05:47:14PM +0100, Bart Van Assche wrote:

 From my experience with block and SCSI drivers option (1) doesn't
look attractive from a performance point of view. From what I have
seen performance with QD=1 is several times lower than performance
with QD > 1. But maybe I overlooked something ?


What you might be missing is that at least on Linux no one who cares
about performance uses the Posix AIO inferface anyway, as the
implementation in glibc always has been horrible.  The Linux-native
aio interface or the various thread pool implementations don't imply
useless ordering and thus can be used to fill up large queues.


Some applications need write ordering without having a need for 
enforcing durability as fsync() does [1]. What I'm wondering about is 
whether an operating system kernel like the Linux kernel should penalize 
application performance when using block drivers and storage hardware 
that preserve the order of write requests because there exist other 
drivers and storage devices that do not preserve the order of write 
requests ?


[1] Richard Hipp, Re: [sqlite] SQLite on flash (was: [PATCH 00/16] f2fs: 
introduce flash-friendly file system), October 10, 2012 
(http://www.mail-archive.com/sqlite-users@sqlite.org/msg73033.html).


Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html