[PATCH v10 00/13] blkcg:Support to track FC storage blk io traffic

Muneendra
2021-04-28T05:35:47Z

This Patch added a unique application identifier i.e
app_id knob to blkcg which allows identification of traffic
sources at an individual cgroup based Applications
(ex:virtual machine (VM))level in both host and
fabric infrastructure.

Added a new sysfs attribute appid_store to set the application identfier
in the blkcg associted with cgroup id under
/sys/class/fc/fc_udev_device/*

With this new interface the user can set the application identfier
in the blkcg associted with cgroup id.

This capability can be utilized by multiple block transport infrastructure
like fc,iscsi,roce.

Existing FC fabric will use this feature and the description of
the use case is below.

Various virtualization technologies used in Fibre Channel
SAN deployments have created the opportunity to identify
and associate traffic with specific virtualized applications.
The concepts behind the T11 Application Services standard is
to provide the general mechanisms needed to identify
virtualized services.
It enables the Fabric and the storage targets to
identify, monitor, and handle FC traffic
based on vm tags by inserting application specific identification
into the FC frame.

The patches were cut against 5.13/scsi-queue tree

v10:
Fixed the spelling mistakes and function name corrections
Removed the redundant code

v9:
Addressed the issues reported by kernel test robot
Replaced lpfc_get_vmid_from_hashtable with the
generic kernel based hashtable (include/linux/hashtable.h)
and made the changes in the code accordingly.
Addressed the locking issue and also merged few patches

v8:
Modified the structure member,log messages and function declarations
Added proper error codes and return values

v7:
Modified the Kconfig comments

v6:
Addressed the issues reported by kernel test robot
Modified the Kconfig files as per standard

v5:
Renamed the function cgroup_get_from_kernfs_id to
cgroup_get_from_id.

Moved the input validation at the beginning of the function in
Renamed the arguments appropriatley.

Changed Return code to non-numeric/SymbolChanged Return code
to non-numeric/Symbol

Modified the comments.

v4:
Addressed the error reported by kernel test robot

v3:
removed RFC.

Renamed the functions and app_id to more specific
Addressed the reference leaks in blkcg_set_app_identifier
Added a new config BLK_CGROUP_FC_APPID and made changes to
select the same under SCSI_FC_ATTRS

V2:
renamed app_identifier to app_id.
removed the sysfs interface blkio.app_identifie under
/sys/fs/cgroup/blkio
Ported the patch on top of 5.10/scsi-queue.
Removed redundant code due to changes since last submit.
Added a fix for issuing QFPA command.

Gaurav Srivastava (10):
lpfc: vmid: Add the datastructure for supporting VMID in lpfc
lpfc: vmid: VMID params initialization
lpfc: vmid: Add support for vmid in mailbox command, does vmid
resource allocation and vmid cleanup
lpfc: vmid: Implements ELS commands for appid patch
lpfc: vmid: Functions to manage vmids
lpfc: vmid: Implements CT commands for appid.
lpfc: vmid: Appends the vmid in the wqe before sending
lpfc: vmid: Timeout implementation for vmid
lpfc: vmid: Adding qfpa and vmid timeout check in worker thread
lpfc: vmid: Introducing vmid in io path.

Muneendra (3):
cgroup: Added cgroup_get_from_id
blkcg: Added a app identifier support for blkcg
nvme: Added a newsysfs attribute appid_store

block/Kconfig | 9 +
drivers/nvme/host/fc.c | 73 +++++-
drivers/scsi/Kconfig | 13 ++
drivers/scsi/lpfc/lpfc.h | 122 +++++++++++
drivers/scsi/lpfc/lpfc_attr.c | 48 ++++
drivers/scsi/lpfc/lpfc_crtn.h | 11 +
drivers/scsi/lpfc/lpfc_ct.c | 255 +++++++++++++++++++++
drivers/scsi/lpfc/lpfc_disc.h | 1 +
drivers/scsi/lpfc/lpfc_els.c | 366 ++++++++++++++++++++++++++++++-
drivers/scsi/lpfc/lpfc_hbadisc.c | 148 +++++++++++++
drivers/scsi/lpfc/lpfc_hw.h | 124 ++++++++++-
drivers/scsi/lpfc/lpfc_hw4.h | 12 +
drivers/scsi/lpfc/lpfc_init.c | 104 +++++++++
drivers/scsi/lpfc/lpfc_mbox.c | 6 +
drivers/scsi/lpfc/lpfc_scsi.c | 321 +++++++++++++++++++++++++++
drivers/scsi/lpfc/lpfc_sli.c | 23 ++
drivers/scsi/lpfc/lpfc_sli.h | 8 +
include/linux/blk-cgroup.h | 56 +++++
include/linux/cgroup.h | 6 +
kernel/cgroup/cgroup.c | 26 +++
20 files changed, 1723 insertions(+), 9 deletions(-)

--
2.26.2