Message ID | 20150415164437.GA17287@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Apr 15, 2015 at 9:44 AM, Christoph Hellwig <hch@infradead.org> wrote: > We only want to steer the I/O completion towards a queue, but don't > actually access any per-CPU data, so the raw_ version is fine to use > and avoids the warnings when using smp_processor_id(). > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reported-by: Andy Lutomirski <luto@kernel.org> > Tested-by: Andy Lutomirski <luto@kernel.org> > Acked-by: Sumit Saxena <sumit.saxena@avagotech.com> Cc: stable? > > diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c > index 675b5e7..5a0800d 100644 > --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c > +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c > @@ -1584,11 +1584,11 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, > fp_possible = io_info.fpOkForIo; > } > > - /* Use smp_processor_id() for now until cmd->request->cpu is CPU > + /* Use raw_smp_processor_id() for now until cmd->request->cpu is CPU > id by default, not CPU group id, otherwise all MSI-X queues won't > be utilized */ > cmd->request_desc->SCSIIO.MSIxIndex = instance->msix_vectors ? > - smp_processor_id() % instance->msix_vectors : 0; > + raw_smp_processor_id() % instance->msix_vectors : 0; > > if (fp_possible) { > megasas_set_pd_lba(io_request, scp->cmd_len, &io_info, scp, > @@ -1693,7 +1693,10 @@ megasas_build_dcdb_fusion(struct megasas_instance *instance, > << MR_RAID_CTX_RAID_FLAGS_IO_SUB_TYPE_SHIFT; > cmd->request_desc->SCSIIO.DevHandle = io_request->DevHandle; > cmd->request_desc->SCSIIO.MSIxIndex = > - instance->msix_vectors ? smp_processor_id() % instance->msix_vectors : 0; > + instance->msix_vectors ? > + raw_smp_processor_id() % > + instance->msix_vectors : > + 0; > os_timeout_value = scmd->request->timeout / HZ; > > if (instance->secure_jbod_support &&
On 04/15/2015 06:44 PM, Christoph Hellwig wrote: > We only want to steer the I/O completion towards a queue, but don't > actually access any per-CPU data, so the raw_ version is fine to use > and avoids the warnings when using smp_processor_id(). > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reported-by: Andy Lutomirski <luto@kernel.org> > Tested-by: Andy Lutomirski <luto@kernel.org> > Acked-by: Sumit Saxena <sumit.saxena@avagotech.com> > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 675b5e7..5a0800d 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -1584,11 +1584,11 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, fp_possible = io_info.fpOkForIo; } - /* Use smp_processor_id() for now until cmd->request->cpu is CPU + /* Use raw_smp_processor_id() for now until cmd->request->cpu is CPU id by default, not CPU group id, otherwise all MSI-X queues won't be utilized */ cmd->request_desc->SCSIIO.MSIxIndex = instance->msix_vectors ? - smp_processor_id() % instance->msix_vectors : 0; + raw_smp_processor_id() % instance->msix_vectors : 0; if (fp_possible) { megasas_set_pd_lba(io_request, scp->cmd_len, &io_info, scp, @@ -1693,7 +1693,10 @@ megasas_build_dcdb_fusion(struct megasas_instance *instance, << MR_RAID_CTX_RAID_FLAGS_IO_SUB_TYPE_SHIFT; cmd->request_desc->SCSIIO.DevHandle = io_request->DevHandle; cmd->request_desc->SCSIIO.MSIxIndex = - instance->msix_vectors ? smp_processor_id() % instance->msix_vectors : 0; + instance->msix_vectors ? + raw_smp_processor_id() % + instance->msix_vectors : + 0; os_timeout_value = scmd->request->timeout / HZ; if (instance->secure_jbod_support &&