From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752134AbZHRXWh (ORCPT ); Tue, 18 Aug 2009 19:22:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751454AbZHRXWh (ORCPT ); Tue, 18 Aug 2009 19:22:37 -0400 Received: from smtp102.sbc.mail.gq1.yahoo.com ([67.195.15.61]:33955 "HELO smtp102.sbc.mail.gq1.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751245AbZHRXWg (ORCPT ); Tue, 18 Aug 2009 19:22:36 -0400 X-Yahoo-SMTP: RrAacJSswBBjW0Obe5dhTHj7mfiuboERhd4hX4HvWHq2RmBoxiTUVqFaT6p3 X-YMail-OSG: Nvc0lV0VM1mYkpGLmrFf6vrCySISTbYjFNPLeGCVlsfCVMFdhLnmLeNdtmx.Yv7S0HhqzERK9y5XwO1tbjJCFClSBkzB7xVPHX1_Y_9SC6R.xB4j8JQUzHyRtpEqfVh8XB7J8x21F.8KaXeOPS8YQqrdj7g2peiLqu.XSf5BBrUr9xUNLohSRi2hqKSF4plu3byDV6xVQWBum3XAOodgDIwZPUbhd9UF67rQ6X9zCmsgJaxvOo2GouJ9q.JYd5qxaTcJl0Ux4cZCG0t93vewqgd4D_7vHHIik_VG.PkS.HWatI2RKrg0c0O1xfJcplPk7zvSfa2BeX3Gp596lMEqTORSdexY0_VBq8ZPDQ.dQg-- X-Yahoo-Newman-Property: ymail-3 Subject: [PATCH 3/4] [LIO-Target]: Add ALUA Active/NonOptimized state check From: "Nicholas A. Bellinger" To: LKML , linux-scsi Cc: Douglas Gilbert , FUJITA Tomonori , Mike Christie , James Bottomley , Andrew Morton , "H. Peter Anvin" , Alasdair G Kergon , Joel Becker , "Martin K. Petersen" , Florian Haas , Philipp Reisner Content-Type: text/plain Date: Tue, 18 Aug 2009 16:15:55 -0700 Message-Id: <1250637355.27590.68.camel@haakon2.linux-iscsi.org> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Greetings, This patch adds a call to target_core_mod symbol core_alua_check_nonop_delay() in iscsi_handle_scsi_cmd(), which can optionally call msleep_interruptible() for ALUA target port group members currently in the Active/NonOptimized primary access state to allow schedule() to be run for real time iSCSI traffic shaping using SPC-4 ALUA primitives. The millisecond sleep interval is changed on a per ALUA target port group basis in target_core_mod configfs at /sys/kernel/config/target/core/$HBA/$DEV/alua/$TG_PT_GP_NAME/nonop_delay_msecs which will update the timeout for all members of the ALUA target port group using generic target_core_mod infrastructure. Signed-off-by: Nicholas A. Bellinger --- drivers/lio-core/iscsi_target.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/drivers/lio-core/iscsi_target.c b/drivers/lio-core/iscsi_target.c index 3b1e3b7..5d00473 100644 --- a/drivers/lio-core/iscsi_target.c +++ b/drivers/lio-core/iscsi_target.c @@ -57,6 +57,7 @@ #include #include #include +#include #include #include #include @@ -1571,7 +1572,11 @@ build_list: attach_cmd: iscsi_attach_cmd_to_queue(conn, cmd); - + /* + * Check if we need to delay processing because of ALUA + * Active/NonOptimized primary access state.. + */ + core_alua_check_nonop_delay(SE_CMD(cmd)); /* * Check the CmdSN against ExpCmdSN/MaxCmdSN here if * the Immediate Bit is not set, and no Immediate -- 1.5.4.1