Re: [RFC 3/6] qedi: Add QLogic FastLinQ offload iSCSI driver framework.
From: Rangankar, Manish <hidden>
Date: 2016-10-23 14:04:58
Also in:
linux-scsi
On 19/10/16 3:32 PM, "Johannes Thumshirn" [off-list ref] wrote:
On Wed, Oct 19, 2016 at 01:01:10AM -0400, manish.rangankar@cavium.com wrote:quoted
From: Manish Rangankar <redacted> 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 <redacted> Signed-off-by: Adheer Chandravanshi <redacted> Signed-off-by: Chad Dupuis <redacted> Signed-off-by: Saurav Kashyap <redacted> Signed-off-by: Arun Easi <redacted> Signed-off-by: Manish Rangankar <redacted> ---[...]quoted
+/* 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.