diff mbox series

[net-next] devlink: report maximum number of snapshots with regions

Message ID 20210930212104.1674017-1-jacob.e.keller@intel.com (mailing list archive)
State Accepted
Commit a70e3f024d5f4ec7edb17ab5d927eb55397f1d15
Delegated to: Netdev Maintainers
Headers show
Series [net-next] devlink: report maximum number of snapshots with regions | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net-next
netdev/subject_prefix success Link
netdev/cc_maintainers fail 5 maintainers not CCed: kuba@kernel.org jiri@nvidia.com linux-doc@vger.kernel.org corbet@lwn.net davem@davemloft.net
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 362 this patch: 362
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 39 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 507 this patch: 507
netdev/header_inline success Link

Commit Message

Jacob Keller Sept. 30, 2021, 9:21 p.m. UTC
Each region has an independently configurable number of maximum
snapshots. This information is not reported to userspace, making it not
very discoverable. Fix this by adding a new
DEVLINK_ATTR_REGION_MAX_SNAPSHOST attribute which is used to report this
maximum.

Ex:

  $devlink region
  pci/0000:af:00.0/nvm-flash: size 10485760 snapshot [] max 1
  pci/0000:af:00.0/device-caps: size 4096 snapshot [] max 10
  pci/0000:af:00.1/nvm-flash: size 10485760 snapshot [] max 1
  pci/0000:af:00.1/device-caps: size 4096 snapshot [] max 10

This information enables users to understand why a new region command
may fail due to having too many existing snapshots.

Reported-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
I realized while explaining a new devlink region that there is no mechanism
to view the maximum snapshot count for a given region without analyzing the
code for a driver. This change fixes that.

 Documentation/networking/devlink/devlink-region.rst | 4 ++--
 Documentation/networking/devlink/ice.rst            | 4 ++++
 include/uapi/linux/devlink.h                        | 2 ++
 net/core/devlink.c                                  | 5 +++++
 4 files changed, 13 insertions(+), 2 deletions(-)


base-commit: b05173028cc52384be42dcf81abdb4133caccfa5

Comments

Jakub Kicinski Oct. 1, 2021, 12:05 a.m. UTC | #1
On Thu, 30 Sep 2021 14:21:04 -0700 Jacob Keller wrote:
> Each region has an independently configurable number of maximum
> snapshots. This information is not reported to userspace, making it not
> very discoverable. Fix this by adding a new
> DEVLINK_ATTR_REGION_MAX_SNAPSHOST attribute which is used to report this
> maximum.
> 
> Ex:
> 
>   $devlink region
>   pci/0000:af:00.0/nvm-flash: size 10485760 snapshot [] max 1
>   pci/0000:af:00.0/device-caps: size 4096 snapshot [] max 10
>   pci/0000:af:00.1/nvm-flash: size 10485760 snapshot [] max 1
>   pci/0000:af:00.1/device-caps: size 4096 snapshot [] max 10
> 
> This information enables users to understand why a new region command
> may fail due to having too many existing snapshots.
> 
> Reported-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>

Acked-by: Jakub Kicinski <kuba@kernel.org>
patchwork-bot+netdevbpf@kernel.org Oct. 1, 2021, 1:50 p.m. UTC | #2
Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Thu, 30 Sep 2021 14:21:04 -0700 you wrote:
> Each region has an independently configurable number of maximum
> snapshots. This information is not reported to userspace, making it not
> very discoverable. Fix this by adding a new
> DEVLINK_ATTR_REGION_MAX_SNAPSHOST attribute which is used to report this
> maximum.
> 
> Ex:
> 
> [...]

Here is the summary with links:
  - [net-next] devlink: report maximum number of snapshots with regions
    https://git.kernel.org/netdev/net-next/c/a70e3f024d5f

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/Documentation/networking/devlink/devlink-region.rst b/Documentation/networking/devlink/devlink-region.rst
index 58fe95e9a49d..f06dca9a1eb6 100644
--- a/Documentation/networking/devlink/devlink-region.rst
+++ b/Documentation/networking/devlink/devlink-region.rst
@@ -44,8 +44,8 @@  example usage
 
     # Show all of the exposed regions with region sizes:
     $ devlink region show
-    pci/0000:00:05.0/cr-space: size 1048576 snapshot [1 2]
-    pci/0000:00:05.0/fw-health: size 64 snapshot [1 2]
+    pci/0000:00:05.0/cr-space: size 1048576 snapshot [1 2] max 8
+    pci/0000:00:05.0/fw-health: size 64 snapshot [1 2] max 8
 
     # Delete a snapshot using:
     $ devlink region del pci/0000:00:05.0/cr-space snapshot 1
diff --git a/Documentation/networking/devlink/ice.rst b/Documentation/networking/devlink/ice.rst
index a432dc419fa4..32aea1f7d7f7 100644
--- a/Documentation/networking/devlink/ice.rst
+++ b/Documentation/networking/devlink/ice.rst
@@ -141,6 +141,10 @@  Users can request an immediate capture of a snapshot via the
 
 .. code:: shell
 
+    $ devlink region show
+    pci/0000:01:00.0/nvm-flash: size 10485760 snapshot [] max 1
+    pci/0000:01:00.0/device-caps: size 4096 snapshot [] max 10
+
     $ devlink region new pci/0000:01:00.0/nvm-flash snapshot 1
     $ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1
 
diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h
index 32f53a0069d6..b897b80770f6 100644
--- a/include/uapi/linux/devlink.h
+++ b/include/uapi/linux/devlink.h
@@ -551,6 +551,8 @@  enum devlink_attr {
 	DEVLINK_ATTR_RATE_NODE_NAME,		/* string */
 	DEVLINK_ATTR_RATE_PARENT_NODE_NAME,	/* string */
 
+	DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,	/* u32 */
+
 	/* add new attributes above here, update the policy in devlink.c */
 
 	__DEVLINK_ATTR_MAX,
diff --git a/net/core/devlink.c b/net/core/devlink.c
index b64303085d0e..4917112406a0 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -5078,6 +5078,11 @@  static int devlink_nl_region_fill(struct sk_buff *msg, struct devlink *devlink,
 	if (err)
 		goto nla_put_failure;
 
+	err = nla_put_u32(msg, DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,
+			  region->max_snapshots);
+	if (err)
+		goto nla_put_failure;
+
 	err = devlink_nl_region_snapshots_id_put(msg, devlink, region);
 	if (err)
 		goto nla_put_failure;