-----Original Message-----
From: Mike Christie [mailto:[email protected]]
Sent: Saturday, February 01, 2014 2:47 PM
To: Jayamohan Kallickal
Cc: [email protected]; [email protected]; Jayamohan Kallickal;
Sony John-N
Subject: Re: [PATCH 3/8] be2iscsi : Fix IRQ_Affinity support in driver.
On 01/29/2014 01:16 AM, Jayamohan Kallickal wrote:
> +
> + if (msix_vec) {
> + if (cpu_online(cpu_index))
> + cpumask_set_cpu(cpu_index,
> + &phba->msix_cpu_map[
> + cpu_index].affinity_mask);
> + else
> + cpumask_copy(&phba->msix_cpu_map[
> + cpu_index].affinity_mask,
> + cpu_online_mask);
> +
I think this code works, but I am not sure if this what you wanted to do.
It seems we set num_cpus in find_num_cpus. It can be the number of online or
some driver limited value. We then loop for (i = 0; i < num_cpus i++). Above,
then if the cpu is not online then you just set it to the online cpu mask
instead of a specific cpu.
Is it possible num_cpus can be 7, but it is possible the online cpus are
0 to 5 and 8. So, when you loop the last vec is set to all online cpus instead
of 8 when it is possible to set it to a specific cpu?
Do you want to be doing a for_each_online_cpu to loop instead?
Yes, the original code could have the behavior you had explained.
I want to rewrite that portion and will send this as as part of the next
patchset.
For now, I want to withdraw this patch i.e PATCH 3/8.
Thanks
Jay
--l
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html