-----Original Message-----
From: Mike Christie [mailto:micha...@cs.wisc.edu] 
Sent: Sunday, March 30, 2014 10:25 PM
To: Jayamohan Kallickal
Cc: jbottom...@parallels.com; linux-scsi@vger.kernel.org; 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to