Message ID | 1604895845-2587-10-git-send-email-muneendra.kumar@broadcom.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | blkcg:Support to track FC storage blk io traffic | expand |
On 11/9/20 5:23 AM, Muneendra wrote: > From: Gaurav Srivastava <gaurav.srivastava@broadcom.com> > > This patch initializes the VMID parameters like the type of vmid, max > number of vmids supported and timeout value for the vmid registration > based on the user input. > > Signed-off-by: Gaurav Srivastava <gaurav.srivastava@broadcom.com> > Signed-off-by: James Smart <jsmart2021@gmail.com> > > --- > v4: > No change > > v3: > No change > > v2: > Ported the patch on top of 5.10/scsi-queue > --- > drivers/scsi/lpfc/lpfc_attr.c | 47 +++++++++++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c > index e94eac194676..e73997bce65c 100644 > --- a/drivers/scsi/lpfc/lpfc_attr.c > +++ b/drivers/scsi/lpfc/lpfc_attr.c > @@ -6138,6 +6138,44 @@ LPFC_BBCR_ATTR_RW(enable_bbcr, 1, 0, 1, "Enable BBC Recovery"); > */ > LPFC_ATTR_RW(enable_dpp, 1, 0, 1, "Enable Direct Packet Push"); > > +/* > + * lpfc_max_vmid: Maximum number of VMs to be tagged. This is valid only if > + * either vmid_app_header or vmid_priority_tagging is enabled. > + * 4 - 255 = vmid support enabled for 4-255 VMs > + * Value range is [4,255]. > + */ > +LPFC_ATTR_RW(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID, > + "Maximum number of VMs supported"); > + > +/* > + * lpfc_vmid_inactivity_timeout: Inactivity timeout duration in hours > + * 0 = Timeout is disabled > + * Value range is [0,24]. > + */ > +LPFC_ATTR_RW(vmid_inactivity_timeout, 4, 0, 24, > + "Inactivity timeout in hours"); > + > +/* > + * lpfc_vmid_app_header: Enable App Header VMID support > + * 0 = Support is disabled (default) > + * 1 = Support is enabled > + * Value range is [0,1]. > + */ > +LPFC_ATTR_RW(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE, > + LPFC_VMID_APP_HEADER_DISABLE, LPFC_VMID_APP_HEADER_ENABLE, > + "Enable App Header VMID support"); > + > +/* > + * lpfc_vmid_priority_tagging: Enable Priority Tagging VMID support > + * 0 = Support is disabled (default) > + * 1 = Support is enabled > + * Value range is [0,1].. > + */ > +LPFC_ATTR_RW(vmid_priority_tagging, LPFC_VMID_PRIO_TAG_DISABLE, > + LPFC_VMID_PRIO_TAG_DISABLE, > + LPFC_VMID_PRIO_TAG_ALL_TARGETS, > + "Enable Priority Tagging VMID support"); > + > struct device_attribute *lpfc_hba_attrs[] = { > &dev_attr_nvme_info, > &dev_attr_scsi_stat, > @@ -6255,6 +6293,10 @@ struct device_attribute *lpfc_hba_attrs[] = { > &dev_attr_lpfc_ras_fwlog_func, > &dev_attr_lpfc_enable_bbcr, > &dev_attr_lpfc_enable_dpp, > + &dev_attr_lpfc_max_vmid, > + &dev_attr_lpfc_vmid_inactivity_timeout, > + &dev_attr_lpfc_vmid_app_header, > + &dev_attr_lpfc_vmid_priority_tagging, > NULL, > }; > > @@ -7314,6 +7356,11 @@ lpfc_get_cfgparam(struct lpfc_hba *phba) > lpfc_enable_hba_heartbeat_init(phba, lpfc_enable_hba_heartbeat); > > lpfc_EnableXLane_init(phba, lpfc_EnableXLane); > + /* VMID Inits */ > + lpfc_max_vmid_init(phba, lpfc_max_vmid); > + lpfc_vmid_inactivity_timeout_init(phba, lpfc_vmid_inactivity_timeout); > + lpfc_vmid_app_header_init(phba, lpfc_vmid_app_header); > + lpfc_vmid_priority_tagging_init(phba, lpfc_vmid_priority_tagging); > if (phba->sli_rev != LPFC_SLI_REV4) > phba->cfg_EnableXLane = 0; > lpfc_XLanePriority_init(phba, lpfc_XLanePriority); > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index e94eac194676..e73997bce65c 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c @@ -6138,6 +6138,44 @@ LPFC_BBCR_ATTR_RW(enable_bbcr, 1, 0, 1, "Enable BBC Recovery"); */ LPFC_ATTR_RW(enable_dpp, 1, 0, 1, "Enable Direct Packet Push"); +/* + * lpfc_max_vmid: Maximum number of VMs to be tagged. This is valid only if + * either vmid_app_header or vmid_priority_tagging is enabled. + * 4 - 255 = vmid support enabled for 4-255 VMs + * Value range is [4,255]. + */ +LPFC_ATTR_RW(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID, + "Maximum number of VMs supported"); + +/* + * lpfc_vmid_inactivity_timeout: Inactivity timeout duration in hours + * 0 = Timeout is disabled + * Value range is [0,24]. + */ +LPFC_ATTR_RW(vmid_inactivity_timeout, 4, 0, 24, + "Inactivity timeout in hours"); + +/* + * lpfc_vmid_app_header: Enable App Header VMID support + * 0 = Support is disabled (default) + * 1 = Support is enabled + * Value range is [0,1]. + */ +LPFC_ATTR_RW(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE, + LPFC_VMID_APP_HEADER_DISABLE, LPFC_VMID_APP_HEADER_ENABLE, + "Enable App Header VMID support"); + +/* + * lpfc_vmid_priority_tagging: Enable Priority Tagging VMID support + * 0 = Support is disabled (default) + * 1 = Support is enabled + * Value range is [0,1].. + */ +LPFC_ATTR_RW(vmid_priority_tagging, LPFC_VMID_PRIO_TAG_DISABLE, + LPFC_VMID_PRIO_TAG_DISABLE, + LPFC_VMID_PRIO_TAG_ALL_TARGETS, + "Enable Priority Tagging VMID support"); + struct device_attribute *lpfc_hba_attrs[] = { &dev_attr_nvme_info, &dev_attr_scsi_stat, @@ -6255,6 +6293,10 @@ struct device_attribute *lpfc_hba_attrs[] = { &dev_attr_lpfc_ras_fwlog_func, &dev_attr_lpfc_enable_bbcr, &dev_attr_lpfc_enable_dpp, + &dev_attr_lpfc_max_vmid, + &dev_attr_lpfc_vmid_inactivity_timeout, + &dev_attr_lpfc_vmid_app_header, + &dev_attr_lpfc_vmid_priority_tagging, NULL, }; @@ -7314,6 +7356,11 @@ lpfc_get_cfgparam(struct lpfc_hba *phba) lpfc_enable_hba_heartbeat_init(phba, lpfc_enable_hba_heartbeat); lpfc_EnableXLane_init(phba, lpfc_EnableXLane); + /* VMID Inits */ + lpfc_max_vmid_init(phba, lpfc_max_vmid); + lpfc_vmid_inactivity_timeout_init(phba, lpfc_vmid_inactivity_timeout); + lpfc_vmid_app_header_init(phba, lpfc_vmid_app_header); + lpfc_vmid_priority_tagging_init(phba, lpfc_vmid_priority_tagging); if (phba->sli_rev != LPFC_SLI_REV4) phba->cfg_EnableXLane = 0; lpfc_XLanePriority_init(phba, lpfc_XLanePriority);