[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <D432C019.34346%manish.rangankar@cavium.com>
Date: Sun, 23 Oct 2016 14:04:55 +0000
From: "Rangankar, Manish" <Manish.Rangankar@...ium.com>
To: Johannes Thumshirn <jthumshirn@...e.de>
CC: "lduncan@...e.com" <lduncan@...e.com>,
"cleech@...hat.com" <cleech@...hat.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"jejb@...ux.vnet.ibm.com" <jejb@...ux.vnet.ibm.com>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"Mintz, Yuval" <Yuval.Mintz@...ium.com>,
"Dept-Eng QLogic Storage Upstream"
<QLogic-Storage-Upstream@...ium.com>,
"Javali, Nilesh" <Nilesh.Javali@...ium.com>,
Adheer Chandravanshi <adheer.chandravanshi@...gic.com>,
"Dupuis, Chad" <Chad.Dupuis@...ium.com>,
"Kashyap, Saurav" <Saurav.Kashyap@...ium.com>,
"Easi, Arun" <Arun.Easi@...ium.com>
Subject: Re: [RFC 3/6] qedi: Add QLogic FastLinQ offload iSCSI driver
framework.
On 19/10/16 3:32 PM, "Johannes Thumshirn" <jthumshirn@...e.de> wrote:
>On Wed, Oct 19, 2016 at 01:01:10AM -0400, manish.rangankar@...ium.com
>wrote:
>> From: Manish Rangankar <manish.rangankar@...ium.com>
>>
>> The QLogic FastLinQ Driver for iSCSI (qedi) is the iSCSI specific module
>> for 41000 Series Converged Network Adapters by QLogic.
>>
>> This patch consists of following changes:
>> - MAINTAINERS Makefile and Kconfig changes for qedi,
>> - PCI driver registration,
>> - iSCSI host level initialization,
>> - Debugfs and log level infrastructure.
>>
>> Signed-off-by: Nilesh Javali <nilesh.javali@...ium.com>
>> Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@...gic.com>
>> Signed-off-by: Chad Dupuis <chad.dupuis@...ium.com>
>> Signed-off-by: Saurav Kashyap <saurav.kashyap@...ium.com>
>> Signed-off-by: Arun Easi <arun.easi@...ium.com>
>> Signed-off-by: Manish Rangankar <manish.rangankar@...ium.com>
>> ---
>
>[...]
>
>> +/* MSI-X fastpath handler code */
>> +static irqreturn_t qedi_msix_handler(int irq, void *dev_id)
>> +{
>> + struct qedi_fastpath *fp = dev_id;
>> + struct qedi_ctx *qedi = fp->qedi;
>> + bool wake_io_thread = true;
>> +
>> + qed_sb_ack(fp->sb_info, IGU_INT_DISABLE, 0);
>> +
>> +process_again:
>> + wake_io_thread = qedi_process_completions(fp);
>> + if (wake_io_thread) {
>> + QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_DISC,
>> + "process already running\n");
>> + }
>> +
>> + if (qedi_fp_has_work(fp) == 0)
>> + qed_sb_update_sb_idx(fp->sb_info);
>> +
>> + /* Check for more work */
>> + rmb();
>> +
>> + if (qedi_fp_has_work(fp) == 0)
>> + qed_sb_ack(fp->sb_info, IGU_INT_ENABLE, 1);
>> + else
>> + goto process_again;
>> +
>> + return IRQ_HANDLED;
>> +}
>
>You might want to consider workqueues here.
If there is no serious objection with current per-cpu threads
implementation
then we will like to do workqueue changes just after first submission.
This is because,
for this change we have go through complete validation cycle on our part.
Thanks,
Manish R.
Powered by blists - more mailing lists