Message ID | 20150408185138.GA32580@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Apr 8, 2015 at 11:51 AM, Christoph Hellwig <hch@infradead.org> wrote: > On Wed, Apr 08, 2015 at 10:59:36AM -0700, Andy Lutomirski wrote: >> This is a regression somewhere between 3.15 and 3.19.3. Let me know >> if more diagnostics would be helpful. > > Try this patch: > > 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 && I wrote an effectively identical patch (differed in whitespace and formatting), and it seems to work. Tested-by: Andy Lutomirski <luto@kernel.org> --Andy
>-----Original Message----- >From: Andy Lutomirski [mailto:luto@amacapital.net] >Sent: Thursday, April 09, 2015 12:45 AM >To: Christoph Hellwig >Cc: Kashyap Desai; Sumit Saxena; Uday Lingala; >megaraidlinux.pdl@avagotech.com; Linux SCSI List >Subject: Re: smp_processor_id warning in megasas driver on 3.19.3 > >On Wed, Apr 8, 2015 at 11:51 AM, Christoph Hellwig <hch@infradead.org> >wrote: >> On Wed, Apr 08, 2015 at 10:59:36AM -0700, Andy Lutomirski wrote: >>> This is a regression somewhere between 3.15 and 3.19.3. Let me know >>> if more diagnostics would be helpful. >> >> Try this patch: >> >> 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 && > >I wrote an effectively identical patch (differed in whitespace and >formatting), >and it seems to work. Acked-by: Sumit Saxena <sumit.saxena@avagotech.com> > >Tested-by: Andy Lutomirski <luto@kernel.org> > >--Andy > >-- >Andy Lutomirski >AMA Capital Management, LLC -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 &&