[PATCH platform-next v2 1/2] [PATCH platform-next 1/2] platform_data/mlxreg: Add fields for interrupt storm handling

Ciju Rajan K posted 2 patches 1 week, 1 day ago
[PATCH platform-next v2 1/2] [PATCH platform-next 1/2] platform_data/mlxreg: Add fields for interrupt storm handling
Posted by Ciju Rajan K 1 week, 1 day ago
Add fields for interrupt storm handling.
Extend structure mlxreg_core_data with the following fields:
 'wmark_cntr'   - interrupt storm counter.
 'wmark_window' - time window to count interrupts to check for storm.

Extend structure mlxreg_core_item with the following field:
 'storming_bits' - interrupt storming bits mask.

Reviewed-by: Vadim Pasternak <vadimp@nvidia.com>
Signed-off-by: Ciju Rajan K <crajank@nvidia.com>
---
 include/linux/platform_data/mlxreg.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/include/linux/platform_data/mlxreg.h b/include/linux/platform_data/mlxreg.h
index f6cca7a035c7..453c8dfd7eb9 100644
--- a/include/linux/platform_data/mlxreg.h
+++ b/include/linux/platform_data/mlxreg.h
@@ -131,6 +131,8 @@ struct mlxreg_hotplug_device {
  * @regnum: number of registers occupied by multi-register attribute;
  * @slot: slot number, at which device is located;
  * @secured: if set indicates that entry access is secured;
+ * @wmark_cntr: interrupt storm counter;
+ * @wmark_window: time window to count interrupts to check for storm;
  */
 struct mlxreg_core_data {
 	char label[MLXREG_CORE_LABEL_MAX_SIZE];
@@ -151,6 +153,8 @@ struct mlxreg_core_data {
 	u8 regnum;
 	u8 slot;
 	u8 secured;
+	unsigned int wmark_cntr;
+	unsigned long wmark_window;
 };
 
 /**
@@ -167,6 +171,7 @@ struct mlxreg_core_data {
  * @ind: element's index inside the group;
  * @inversed: if 0: 0 for signal status is OK, if 1 - 1 is OK;
  * @health: true if device has health indication, false in other case;
+ * @storming_bits: interrupt storming bits mask;
  */
 struct mlxreg_core_item {
 	struct mlxreg_core_data *data;
@@ -180,6 +185,7 @@ struct mlxreg_core_item {
 	u8 ind;
 	u8 inversed;
 	u8 health;
+	u32 storming_bits;
 };
 
 /**
-- 
2.47.2
Re: [PATCH platform-next v2 1/2] [PATCH platform-next 1/2] platform_data/mlxreg: Add fields for interrupt storm handling
Posted by Ilpo Järvinen 1 week, 1 day ago
On Tue, 23 Sep 2025, Ciju Rajan K wrote:

> Add fields for interrupt storm handling.
> Extend structure mlxreg_core_data with the following fields:
>  'wmark_cntr'   - interrupt storm counter.
>  'wmark_window' - time window to count interrupts to check for storm.
> 
> Extend structure mlxreg_core_item with the following field:
>  'storming_bits' - interrupt storming bits mask.
> 
> Reviewed-by: Vadim Pasternak <vadimp@nvidia.com>
> Signed-off-by: Ciju Rajan K <crajank@nvidia.com>
> ---
>  include/linux/platform_data/mlxreg.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/include/linux/platform_data/mlxreg.h b/include/linux/platform_data/mlxreg.h
> index f6cca7a035c7..453c8dfd7eb9 100644
> --- a/include/linux/platform_data/mlxreg.h
> +++ b/include/linux/platform_data/mlxreg.h
> @@ -131,6 +131,8 @@ struct mlxreg_hotplug_device {
>   * @regnum: number of registers occupied by multi-register attribute;
>   * @slot: slot number, at which device is located;
>   * @secured: if set indicates that entry access is secured;
> + * @wmark_cntr: interrupt storm counter;
> + * @wmark_window: time window to count interrupts to check for storm;
>   */
>  struct mlxreg_core_data {
>  	char label[MLXREG_CORE_LABEL_MAX_SIZE];
> @@ -151,6 +153,8 @@ struct mlxreg_core_data {
>  	u8 regnum;
>  	u8 slot;
>  	u8 secured;
> +	unsigned int wmark_cntr;
> +	unsigned long wmark_window;
>  };
>  
>  /**
> @@ -167,6 +171,7 @@ struct mlxreg_core_data {
>   * @ind: element's index inside the group;
>   * @inversed: if 0: 0 for signal status is OK, if 1 - 1 is OK;
>   * @health: true if device has health indication, false in other case;
> + * @storming_bits: interrupt storming bits mask;
>   */
>  struct mlxreg_core_item {
>  	struct mlxreg_core_data *data;
> @@ -180,6 +185,7 @@ struct mlxreg_core_item {
>  	u8 ind;
>  	u8 inversed;
>  	u8 health;
> +	u32 storming_bits;
>  };
>  
>  /**
> 

I don't know what's the benefit of having this as a separate patch, the 
fields are getting used in patch 2 so it would feel natural to introduce 
them there so the entire change would end up into the same commit.

-- 
 i.