-----Original Message----- From: Mike Christie [mailto:michaelc@xxxxxxxxxxx] Sent: Sunday, March 30, 2014 10:25 PM To: Jayamohan Kallickal Cc: jbottomley@xxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; Jayamohan Kallickal; Minh Duc Tran; Sony John-N Subject: Re: [PATCH 2/6] be2iscsi: relinquishing control after processing 512 CQE On 03/27/2014 11:39 AM, Jayamohan Kallickal wrote: > @@ -2323,14 +2319,33 @@ void beiscsi_process_all_cqs(struct > work_struct *work) > > static int be_iopoll(struct blk_iopoll *iop, int budget) { > - unsigned int ret; > + unsigned int ret, num_eq_processed; > struct beiscsi_hba *phba; > struct be_eq_obj *pbe_eq; > + struct be_eq_entry *eqe = NULL; > + struct be_queue_info *eq; > > + num_eq_processed = 0; > pbe_eq = container_of(iop, struct be_eq_obj, iopoll); > + phba = pbe_eq->phba; > + eq = &pbe_eq->q; > + eqe = queue_tail_node(eq); > + > + hwi_ring_eq_db(phba, eq->id, 1, num_eq_processed, 0, 1); >Is this right? num_eq_processed will be 0 above. Should this be moved down below to after num_eq_processed has been incremented? I am unarming the interrupts so that we are not interrupted while in be_iopoll. So , this is fine > + > + while (eqe->dw[offsetof(struct amap_eq_entry, valid) / 32] > + & EQE_VALID_MASK) { > + > + AMAP_SET_BITS(struct amap_eq_entry, valid, eqe, 0); > + queue_tail_inc(eq); > + eqe = queue_tail_node(eq); > + num_eq_processed++; > + } -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html