RE: [PATCH 2/6] be2iscsi: relinquishing control after processing 512 CQE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




-----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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux