be2iscsi: Fix IOPOLL implementation

OS not responding when running 2 port traffic on 72 CPUs system.

be2iscsi IRQs gets affined to CPU0 when irqbalancer is disabled.
be_iopoll processing completions in BLOCK_IOPOLL_SOFTIRQ hogged CPU0.

1. Use budget to exit the polling loop. beiscsi_process_cq didn't honour
   it.
2. Rearming of EQ is done only after iopoll completes.

[mkp: Fixed up blk_iopoll -> irq_poll transition]

Signed-off-by: Jitendra Bhivare <jitendra.bhivare@avagotech.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Jitendra Bhivare
2016-01-20 14:10:56 +05:30
committed by Martin K. Petersen
szülő 23d7ccf134
commit 1094cf68e8
4 fájl változott, egészen pontosan 52 új sor hozzáadva és 42 régi sor törölve

Fájl megtekintése

@@ -546,7 +546,7 @@ int beiscsi_process_mcc(struct beiscsi_hba *phba)
}
if (num)
hwi_ring_cq_db(phba, phba->ctrl.mcc_obj.cq.id, num, 1, 0);
hwi_ring_cq_db(phba, phba->ctrl.mcc_obj.cq.id, num, 1);
spin_unlock_bh(&phba->ctrl.mcc_cq_lock);
return status;