Repository: riscv-non-isa/riscv-rpmi
Pull request #95: Update voltage `number of array` description
Author: login: yeongjoshua
Created: 2025-03-11T03:36:27Z | Merged: 2025-03-13T08:54:03Z

@pathakraul @lftan 


Diff:
diff --git a/src/srvgrp-clock.adoc b/src/srvgrp-clock.adoc
index 027eacf..48463fe 100644
--- a/src/srvgrp-clock.adoc
+++ b/src/srvgrp-clock.adoc
@@ -149,13 +149,13 @@ range format for clock rates.
 A clock may also support clock rates which can be represented by multiple
 linear ranges. For example,
 ```c
-[clock_rate_min0, clock_rate_max0, clock_rate_step0],
-[clock_rate_min1, clock_rate_max1, clock_rate_step1], 
+[clock_rate_min1, clock_rate_max1, clock_rate_step1],
+[clock_rate_min2, clock_rate_max2, clock_rate_step2],
  ...,
 [clock_rate_minN, clock_rate_maxN, clock_rate_stepN]
 ```
 The linear ranges must be packed sequentially such that
-`clock_rate_max0 < clock_rate_min1`, `clock_rate_max1 < clock_rate_min2` and
+`clock_rate_max1 < clock_rate_min2`, `clock_rate_max2 < clock_rate_min3` and
 so on.
 
 [#clock-notifications]
diff --git a/src/srvgrp-performance.adoc b/src/srvgrp-performance.adoc
index dc79c99..ca56df0 100644
--- a/src/srvgrp-performance.adoc
+++ b/src/srvgrp-performance.adoc
@@ -622,7 +622,7 @@ levels.
 | Number of levels returned (number of arrays).
 
 | 4
-| LEVEL[N]
+| LEVEL[]
 | uint32[4]
 | List of performance levels attributes. +
 Refer to <<section-perf-attribute>> for the complete structure of performance
diff --git a/src/srvgrp-voltage.adoc b/src/srvgrp-voltage.adoc
index 749a316..c77a9aa 100644
--- a/src/srvgrp-voltage.adoc
+++ b/src/srvgrp-voltage.adoc
@@ -88,14 +88,25 @@ voltage1 < voltage2 < voltage3 < ... < voltageN
 | Discrete voltage level in microvolts (uV).
 |===
 
-===== Linear Format
+===== Linear Range Format
 A linear range of voltage levels with a constant step size. The following table
-shows the structure of the linear voltage format.
+shows the structure of the linear range voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear range format can be supported by having multiple `linear range` tuple
+arranged in an continuous array format.
+```c
+[voltage_min1, voltage_max1, voltage_step1],
+[voltage_min2, voltage_max2, voltage_step2],
+...
+[voltage_minN, voltage_maxN, voltage_stepN],
+```
+The format must be packed sequentially such that voltage_max1 < voltage_min2,
+voltage_max2 < voltage_min3 and so on.
+
 [cols="1,2,5" width=100%, align="center", options="header"]
 |===
 | Word
@@ -244,11 +255,12 @@ system.
 Each domain may support multiple voltage levels, which are permitted by the domain
 for operation. The number of levels indicates the total count of voltage levels
 supported within a voltage domain. Transition latency denotes the maximum time
-required for the voltage to stabilize upon a change in the regulator. Depending
-on the hardware, voltage levels can be of various formats, and the current
-service supports discrete and linear formats. Each domain can support only one
-voltage level format. Additional voltage formats can be accommodated in the
-future if required.
+required for the voltage to stabilize upon a change in the regulator. The `FLAGS`
+field encodes the voltage format supported by the hardware, including discrete
+and linear range formats." The `NUM_LEVELS` field returns the number of discrete
+voltage in case discrete format and number of linear range tuple in linear range
+voltage format. Each domain can support only one voltage level format. Additional
+voltage formats can be accommodated in the future if required.
 
 [#table_voltage_getdomainattrs_request_data]
 .Request Data
@@ -306,8 +318,8 @@ future if required.
 ! Voltage format. +
 Refer to <<voltage-level-format-section>> for more details.
 ----
-0b000: Discrete voltage.
-0b001: Linear.
+0b000: Discrete format.
+0b001: Linear range format.
 0b010 - 0b111: Reserved.
 ----
 
@@ -324,7 +336,7 @@ supported voltage range.
 | NUM_LEVELS
 | uint32
 | Number of voltage levels (number of arrays) supported by the domain. Each
-linear format voltage level represents 1 voltage level.
+linear range format voltage level represents 1 voltage level.
 
 | 3
 | TRANS_LATENCY
@@ -368,7 +380,8 @@ calls may be necessary to retrieve all the voltage levels.
 | 1
 | VOLTAGE_LEVEL_INDEX
 | uint32
-| Voltage level index.
+| The index of discrete voltage if the format is discrete, or index of linear
+range tuple if the format is linear range.
 |===
 
 [#table_voltage_getdomainlevels_response_data]
@@ -408,17 +421,20 @@ calls may be necessary to retrieve all the voltage levels.
 | 2
 | REMAINING
 | uint32
-| Remaining number of voltage levels (number of arrays).
+| The remaining number of discrete voltage if the format is discrete type, or
+number of linear range tuple if the format is linear range.
 
 | 3
 | RETURNED
 | uint32
-| Number of voltage levels (number of arrays) returned in this request.
+| The number of discrete voltage levels returned if the format is discrete type,
+or the number of linear range tuple if the format is linear range.
 
 | 4
-| VOLTAGE_LEVEL[N]
+| VOLTAGE_LEVEL[]
 | uint32[]
 | Voltage levels. +
+The voltage format data structure and its packing is according to the supported format.
 Refer to <<voltage-level-format-section>> for more details.
 
 |===


Reviews:
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T06:25:02Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T06:26:50Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T06:28:19Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T06:29:14Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T06:30:31Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T11:53:41Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T11:54:25Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T11:55:33Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-11T12:01:09Z
user: login: yeongjoshua
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-12T02:33:43Z
user: login: yeongjoshua
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-12T02:45:03Z
user: login: yeongjoshua
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-12T02:45:51Z
user: login: yeongjoshua
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-12T02:46:06Z
user: login: yeongjoshua
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-12T02:47:39Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:31:33Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:32:02Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:33:27Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:34:02Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:35:04Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:35:36Z
user: login: lftan
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:44:01Z
user: login: pathakraul
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-12T06:47:23Z
user: login: yeongjoshua
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-13T02:21:30Z

Review comments:
diff_hunk: @@ -244,11 +255,12 @@ system.
 Each domain may support multiple voltage levels, which are permitted by the domain
 for operation. The number of levels indicates the total count of voltage levels
 supported within a voltage domain. Transition latency denotes the maximum time
-required for the voltage to stabilize upon a change in the regulator. Depending
-on the hardware, voltage levels can be of various formats, and the current
-service supports discrete and linear formats. Each domain can support only one
-voltage level format. Additional voltage formats can be accommodated in the
-future if required.
+required for the voltage to stabilize upon a change in the regulator. The `FLAGS`
+field encodes voltage format that is supported by the hardware, discrete and
+linear formats. The `NUM_LEVELS` field returns the number of discrete voltage
+in case discrete format and number of linear voltage paired in linear voltage
path: src/srvgrp-voltage.adoc
user: login: lftan
body: ".... the number of linear voltage pairs in the linear voltage format."
created_at: 2025-03-11T06:25:02Z
author_association: COLLABORATOR
diff_hunk: @@ -244,11 +255,12 @@ system.
 Each domain may support multiple voltage levels, which are permitted by the domain
 for operation. The number of levels indicates the total count of voltage levels
 supported within a voltage domain. Transition latency denotes the maximum time
-required for the voltage to stabilize upon a change in the regulator. Depending
-on the hardware, voltage levels can be of various formats, and the current
-service supports discrete and linear formats. Each domain can support only one
-voltage level format. Additional voltage formats can be accommodated in the
-future if required.
+required for the voltage to stabilize upon a change in the regulator. The `FLAGS`
path: src/srvgrp-voltage.adoc
user: login: lftan
body: "The `FLAGS` field encodes the voltage format supported by the hardware, including discrete and linear formats."
created_at: 2025-03-11T06:26:50Z
author_association: COLLABORATOR
diff_hunk: @@ -368,7 +380,8 @@ calls may be necessary to retrieve all the voltage levels.
 | 1
 | VOLTAGE_LEVEL_INDEX
 | uint32
-| Voltage level index.
+| The index of discrete voltage if the format is discrete, or index of linear
path: src/srvgrp-voltage.adoc
user: login: lftan
body: The index of the discrete voltage if the format is discrete, or the index of the linear-formatted pair if the format is linear.
created_at: 2025-03-11T06:28:19Z
author_association: COLLABORATOR
diff_hunk: @@ -408,17 +421,20 @@ calls may be necessary to retrieve all the voltage levels.
 | 2
 | REMAINING
 | uint32
-| Remaining number of voltage levels (number of arrays).
+| The remaining number of discrete voltage if the format is discrete type, or
path: src/srvgrp-voltage.adoc
user: login: lftan
body: The remaining number of discrete voltage levels if the format is discrete, or the number of linear-formatted pairs if the format is linear.
created_at: 2025-03-11T06:29:14Z
author_association: COLLABORATOR
diff_hunk: @@ -408,17 +421,20 @@ calls may be necessary to retrieve all the voltage levels.
 | 2
 | REMAINING
 | uint32
-| Remaining number of voltage levels (number of arrays).
+| The remaining number of discrete voltage if the format is discrete type, or
+number of linear formatted paired if the format is linear.
 
 | 3
 | RETURNED
 | uint32
-| Number of voltage levels (number of arrays) returned in this request.
+| The number of discrete voltage returned if the format is discrete type, or
path: src/srvgrp-voltage.adoc
user: login: lftan
body: The number of discrete voltage levels returned if the format is discrete, or the number of linear-formatted pairs if the format is linear.
created_at: 2025-03-11T06:30:30Z
author_association: COLLABORATOR
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
+arranged in an continuous array format.
+```c
+[voltage_min0, voltage_max0, voltage_step0],
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: Its not a big deal but i think we should start the index here from 1 to keep in sync with index in Discrete format. Or change from 0 to N-1 here and also in Discrete format representation. But (N-1) might not look good so from 1 to N is my preference. 
Let me know if you think we should do 0 to N-1. I will do the same for Clock
created_at: 2025-03-11T11:53:41Z
author_association: COLLABORATOR
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: "paired" word does not makes sense here
created_at: 2025-03-11T11:54:25Z
author_association: COLLABORATOR
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: One option is "having multiple linear ranges arranged in an ..."
created_at: 2025-03-11T11:55:32Z
author_association: COLLABORATOR
diff_hunk: @@ -408,17 +421,20 @@ calls may be necessary to retrieve all the voltage levels.
 | 2
 | REMAINING
 | uint32
-| Remaining number of voltage levels (number of arrays).
+| The remaining number of discrete voltage if the format is discrete type, or
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: who not simply call "linear-formatted pairs" as "linear range" which it actually is. How a linear range is called a pair? linear range is a tuple or array of 3 items?

This comment applies to other places too
created_at: 2025-03-11T12:01:09Z
author_association: COLLABORATOR
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
+arranged in an continuous array format.
+```c
+[voltage_min0, voltage_max0, voltage_step0],
path: src/srvgrp-voltage.adoc
user: login: yeongjoshua
body: all good, i will change mine to 1 to N and will submit change for clock too
created_at: 2025-03-12T02:33:43Z
author_association: NONE
diff_hunk: @@ -244,11 +255,12 @@ system.
 Each domain may support multiple voltage levels, which are permitted by the domain
 for operation. The number of levels indicates the total count of voltage levels
 supported within a voltage domain. Transition latency denotes the maximum time
-required for the voltage to stabilize upon a change in the regulator. Depending
-on the hardware, voltage levels can be of various formats, and the current
-service supports discrete and linear formats. Each domain can support only one
-voltage level format. Additional voltage formats can be accommodated in the
-future if required.
+required for the voltage to stabilize upon a change in the regulator. The `FLAGS`
+field encodes voltage format that is supported by the hardware, discrete and
+linear formats. The `NUM_LEVELS` field returns the number of discrete voltage
+in case discrete format and number of linear voltage paired in linear voltage
path: src/srvgrp-voltage.adoc
user: login: yeongjoshua
body: I updated the `linear paired` keyword with `linear range` instead
created_at: 2025-03-12T02:45:02Z
author_association: NONE
diff_hunk: @@ -368,7 +380,8 @@ calls may be necessary to retrieve all the voltage levels.
 | 1
 | VOLTAGE_LEVEL_INDEX
 | uint32
-| Voltage level index.
+| The index of discrete voltage if the format is discrete, or index of linear
path: src/srvgrp-voltage.adoc
user: login: yeongjoshua
body: I updated the linear paired keyword with linear range instead
created_at: 2025-03-12T02:45:50Z
author_association: NONE
diff_hunk: @@ -408,17 +421,20 @@ calls may be necessary to retrieve all the voltage levels.
 | 2
 | REMAINING
 | uint32
-| Remaining number of voltage levels (number of arrays).
+| The remaining number of discrete voltage if the format is discrete type, or
path: src/srvgrp-voltage.adoc
user: login: yeongjoshua
body: Updated with linear range
created_at: 2025-03-12T02:46:06Z
author_association: NONE
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
path: src/srvgrp-voltage.adoc
user: login: yeongjoshua
body: I updated to...

Multi-linear range format can be supported by having multiple `linear range` tuple
arranged in an continuous array format.
created_at: 2025-03-12T02:47:39Z
author_association: NONE
diff_hunk: @@ -88,14 +88,25 @@ voltage1 < voltage2 < voltage3 < ... < voltageN
 | Discrete voltage level in microvolts (uV).
 |===
 
-===== Linear Format
+===== Linear Range Format
 A linear range of voltage levels with a constant step size. The following table
-shows the structure of the linear voltage format.
+shows the structure of the linear range voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear range format can be supported by having multiple `linear range` tuple
+arranged in an continuous array format.
+```c
+[voltage_min1, voltage_max1, voltage_step1],
path: src/srvgrp-voltage.adoc
user: login: lftan
body: start from index 1, not 0?
created_at: 2025-03-12T06:31:33Z
author_association: COLLABORATOR
diff_hunk: @@ -244,11 +255,12 @@ system.
 Each domain may support multiple voltage levels, which are permitted by the domain
 for operation. The number of levels indicates the total count of voltage levels
 supported within a voltage domain. Transition latency denotes the maximum time
-required for the voltage to stabilize upon a change in the regulator. Depending
-on the hardware, voltage levels can be of various formats, and the current
-service supports discrete and linear formats. Each domain can support only one
-voltage level format. Additional voltage formats can be accommodated in the
-future if required.
+required for the voltage to stabilize upon a change in the regulator. The `FLAGS`
+field  encodes the voltage format supported by the hardware, including discrete
path: src/srvgrp-voltage.adoc
user: login: lftan
body: extra space between "field  encodes"?
created_at: 2025-03-12T06:32:02Z
author_association: COLLABORATOR
diff_hunk: @@ -88,14 +88,25 @@ voltage1 < voltage2 < voltage3 < ... < voltageN
 | Discrete voltage level in microvolts (uV).
 |===
 
-===== Linear Format
+===== Linear Range Format
 A linear range of voltage levels with a constant step size. The following table
-shows the structure of the linear voltage format.
+shows the structure of the linear range voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear range format can be supported by having multiple `linear range` tuple
+arranged in an continuous array format.
+```c
+[voltage_min1, voltage_max1, voltage_step1],
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: Its just for representation, the index in code will be from 0 only
created_at: 2025-03-12T06:33:27Z
author_association: COLLABORATOR
diff_hunk: @@ -149,13 +149,13 @@ range format for clock rates.
 A clock may also support clock rates which can be represented by multiple
 linear ranges. For example,
 ```c
-[clock_rate_min0, clock_rate_max0, clock_rate_step0],
-[clock_rate_min1, clock_rate_max1, clock_rate_step1], 
+[clock_rate_min1, clock_rate_max1, clock_rate_step1],
path: src/srvgrp-clock.adoc
user: login: lftan
body: start from index 1?
created_at: 2025-03-12T06:34:02Z
author_association: COLLABORATOR
diff_hunk: @@ -88,14 +88,25 @@ voltage1 < voltage2 < voltage3 < ... < voltageN
 | Discrete voltage level in microvolts (uV).
 |===
 
-===== Linear Format
+===== Linear Range Format
 A linear range of voltage levels with a constant step size. The following table
-shows the structure of the linear voltage format.
+shows the structure of the linear range voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear range format can be supported by having multiple `linear range` tuple
+arranged in an continuous array format.
+```c
+[voltage_min1, voltage_max1, voltage_step1],
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: Its a choice between `voltage_minN` and `voltage_minN-1  or voltage_min(N-1)`. Just for representation of range  
created_at: 2025-03-12T06:35:04Z
author_association: COLLABORATOR
diff_hunk: @@ -88,14 +88,25 @@ voltage1 < voltage2 < voltage3 < ... < voltageN
 | Discrete voltage level in microvolts (uV).
 |===
 
-===== Linear Format
+===== Linear Range Format
 A linear range of voltage levels with a constant step size. The following table
-shows the structure of the linear voltage format.
+shows the structure of the linear range voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear range format can be supported by having multiple `linear range` tuple
+arranged in an continuous array format.
+```c
+[voltage_min1, voltage_max1, voltage_step1],
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: same for clock
created_at: 2025-03-12T06:35:36Z
author_association: COLLABORATOR
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
+arranged in an continuous array format.
+```c
+[voltage_min0, voltage_max0, voltage_step0],
path: src/srvgrp-voltage.adoc
user: login: lftan
body: Since our index start from 0, so should do 0 to N-1.
created_at: 2025-03-12T06:44:01Z
author_association: COLLABORATOR
diff_hunk: @@ -93,9 +93,20 @@ A linear range of voltage levels with a constant step size. The following table
 shows the structure of the linear voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear format can be supported by having multiple linear formatted paired
+arranged in an continuous array format.
+```c
+[voltage_min0, voltage_max0, voltage_step0],
path: src/srvgrp-voltage.adoc
user: login: pathakraul
body: No problem, just keep the same everywhere 
created_at: 2025-03-12T06:47:22Z
author_association: COLLABORATOR
diff_hunk: @@ -88,14 +88,25 @@ voltage1 < voltage2 < voltage3 < ... < voltageN
 | Discrete voltage level in microvolts (uV).
 |===
 
-===== Linear Format
+===== Linear Range Format
 A linear range of voltage levels with a constant step size. The following table
-shows the structure of the linear voltage format.
+shows the structure of the linear range voltage format.
 
 ```c
-[voltage_minimum, voltage_maximum, voltage_step]
+[voltage_min, voltage_max, voltage_step]
 ```
 
+Multi-linear range format can be supported by having multiple `linear range` tuple
+arranged in an continuous array format.
+```c
+[voltage_min1, voltage_max1, voltage_step1],
path: src/srvgrp-voltage.adoc
user: login: yeongjoshua
body: I leave the patch to start the index from 1 to N for the patch, can change if we want to make it starts at 0 ?
@pathakraul @lftan 
created_at: 2025-03-13T02:21:30Z
author_association: NONE

PR comments:
user: login: pathakraul
created_at: 2025-03-12T03:02:52Z
body: Looks good to me
author_association: COLLABORATOR
user: login: pathakraul
created_at: 2025-03-13T08:53:58Z
body: I am merging this MR, the index change i will submit since i have to update MSI related changes due to ARC feedback
author_association: COLLABORATOR