mbox series

[v8,00/16] blkcg:Support to track FC storage blk io traffic

Message ID 1614835646-16217-1-git-send-email-muneendra.kumar@broadcom.com
Headers show
Series blkcg:Support to track FC storage blk io traffic | expand

Message

Muneendra Kumar March 4, 2021, 5:27 a.m. UTC
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.12/scsi-queue tree

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 (12):
  lpfc: vmid: Add the datastructure for supporting VMID in lpfc
  lpfc: vmid: Supplementary data structures for vmid and APIs
  lpfc: vmid: Forward declarations for APIs
  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 (4):
  cgroup: Added cgroup_get_from_id
  blkcg: Added a app identifier support for blkcg
  nvme: Added a newsysfs attribute appid_store
  scsi: Made changes in Kconfig to select BLK_CGROUP_FC_APPID

 block/Kconfig                    |   9 +
 drivers/nvme/host/fc.c           |  73 ++++++-
 drivers/scsi/Kconfig             |  13 ++
 drivers/scsi/lpfc/lpfc.h         | 121 ++++++++++
 drivers/scsi/lpfc/lpfc_attr.c    |  47 ++++
 drivers/scsi/lpfc/lpfc_crtn.h    |  11 +
 drivers/scsi/lpfc/lpfc_ct.c      | 249 ++++++++++++++++++++-
 drivers/scsi/lpfc/lpfc_disc.h    |   1 +
 drivers/scsi/lpfc/lpfc_els.c     | 364 ++++++++++++++++++++++++++++++-
 drivers/scsi/lpfc/lpfc_hbadisc.c | 153 +++++++++++++
 drivers/scsi/lpfc/lpfc_hw.h      | 124 ++++++++++-
 drivers/scsi/lpfc/lpfc_hw4.h     |  12 +
 drivers/scsi/lpfc/lpfc_init.c    | 106 +++++++++
 drivers/scsi/lpfc/lpfc_mbox.c    |   6 +
 drivers/scsi/lpfc/lpfc_scsi.c    | 337 ++++++++++++++++++++++++++++
 drivers/scsi/lpfc/lpfc_sli.c     |  63 ++++++
 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, 1775 insertions(+), 10 deletions(-)

Comments

Hannes Reinecke March 11, 2021, 3:33 p.m. UTC | #1
On 3/4/21 6:27 AM, Muneendra wrote:
> 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.12/scsi-queue tree

> 

> 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 (12):

>    lpfc: vmid: Add the datastructure for supporting VMID in lpfc

>    lpfc: vmid: Supplementary data structures for vmid and APIs

>    lpfc: vmid: Forward declarations for APIs

>    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 (4):

>    cgroup: Added cgroup_get_from_id

>    blkcg: Added a app identifier support for blkcg

>    nvme: Added a newsysfs attribute appid_store

>    scsi: Made changes in Kconfig to select BLK_CGROUP_FC_APPID

> 

>   block/Kconfig                    |   9 +

>   drivers/nvme/host/fc.c           |  73 ++++++-

>   drivers/scsi/Kconfig             |  13 ++

>   drivers/scsi/lpfc/lpfc.h         | 121 ++++++++++

>   drivers/scsi/lpfc/lpfc_attr.c    |  47 ++++

>   drivers/scsi/lpfc/lpfc_crtn.h    |  11 +

>   drivers/scsi/lpfc/lpfc_ct.c      | 249 ++++++++++++++++++++-

>   drivers/scsi/lpfc/lpfc_disc.h    |   1 +

>   drivers/scsi/lpfc/lpfc_els.c     | 364 ++++++++++++++++++++++++++++++-

>   drivers/scsi/lpfc/lpfc_hbadisc.c | 153 +++++++++++++

>   drivers/scsi/lpfc/lpfc_hw.h      | 124 ++++++++++-

>   drivers/scsi/lpfc/lpfc_hw4.h     |  12 +

>   drivers/scsi/lpfc/lpfc_init.c    | 106 +++++++++

>   drivers/scsi/lpfc/lpfc_mbox.c    |   6 +

>   drivers/scsi/lpfc/lpfc_scsi.c    | 337 ++++++++++++++++++++++++++++

>   drivers/scsi/lpfc/lpfc_sli.c     |  63 ++++++

>   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, 1775 insertions(+), 10 deletions(-)

> 

Hmm. Can you please include the existing 'Reviewed-by' tags?
It's getting really hard to figure out which patches I've already 
reviewed and which needs an additional review.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer