Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[watermarkstat] Fix CLI script for unconfigured PG counters #2239

Merged
merged 1 commit into from
Jul 28, 2022

Conversation

nazariig
Copy link
Collaborator

@nazariig nazariig commented Jun 28, 2022

commit 409da5ff87cb8864cd41c7b23e62ad4849ff5037
Author: Shlomi Bitton <shlomibi@nvidia.com>
Date:   Tue Jun 14 16:17:20 2022 +0000

Fix watermarkstat CLI script.
Since PG/Queue counters are created only if they are configured in the switch, it is not enough to relay only on the first entry in the DB.
We need to go over all configured counters, check what is the max configured, and build the table accordingly.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>

Signed-off-by: Nazarii Hnydyn nazariig@nvidia.com

Propagating #2220 with resolved review comments

What I did

Since PG counters are created only if they are configured in the switch, it is not enough to relay only on the first entry in the DB when building the output table of watermarkstat script.
We need to go over all configured counters, check what is the max configured, and build the table accordingly.

How I did it

Iterate all configured PG buffers for all ports and find the max index.
Build the output table according to the max index.

How to verify it

Run test "iface_namingmode/test_iface_namingmode.py" including this PR: sonic-net/sonic-swss#2143 and observe it passes.

Previous command output (if the output of a command-line utility has changed)

  • N/A

New command output (if the output of a command-line utility has changed)

  • N/A

    commit 409da5f
    Author: Shlomi Bitton <shlomibi@nvidia.com>
    Date:   Tue Jun 14 16:17:20 2022 +0000

    Fix watermarkstat CLI script.
    Since PG/Queue counters are created only if they are configured in the switch, it is not enough to relay only on the first entry in the DB.
    We need to go over all configured counters, check what is the max configured, and build the table accordingly.

    Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
@nazariig
Copy link
Collaborator Author

nazariig commented Jul 4, 2022

@neethajohn can you please review?

@liat-grozovik
Copy link
Collaborator

@neethajohn could you please help to review and signoff?

@yxieca
Copy link
Contributor

yxieca commented Jul 28, 2022

@neethajohn can you review this change?

Copy link
Contributor

@developfast developfast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm! @neethajohn

@neethajohn neethajohn merged commit 6de18a1 into sonic-net:master Jul 28, 2022
yxieca pushed a commit that referenced this pull request Aug 8, 2022
Signed-off-by: Nazarii Hnydyn nazariig@nvidia.com

Propagating #2220 with resolved review comments

What I did
Since PG counters are created only if they are configured in the switch, it is not enough to relay only on the first entry in the DB when building the output table of watermarkstat script.
We need to go over all configured counters, check what is the max configured, and build the table accordingly.

How I did it
Iterate all configured PG buffers for all ports and find the max index.
Build the output table according to the max index.

How to verify it
Run test "iface_namingmode/test_iface_namingmode.py" including this PR: sonic-net/sonic-swss#2143 and observe it passes.
dprital added a commit to dprital/sonic-buildimage that referenced this pull request Aug 9, 2022
Update sonic-utilities submodule pointer to include the following:
* Fix GCU bug when backend service modifying config ([sonic-net#2295](sonic-net/sonic-utilities#2295))
* Fix issues for sonic_installer upgrade-docker and sonic_installer rollback-docker ([sonic-net#2278](sonic-net/sonic-utilities#2278))
* [crm] add checking for CRM interval range ([sonic-net#2293](sonic-net/sonic-utilities#2293))
* Fix the issue that sonic_platform is not installed on vs image ([sonic-net#2300](sonic-net/sonic-utilities#2300))
* Add FEC correctable and uncorrectable port stats ([sonic-net#2027](sonic-net/sonic-utilities#2027))
* Add CLI to configure YANG config validation ([sonic-net#2147](sonic-net/sonic-utilities#2147))
* Add override testcase to verify removal ([sonic-net#2288](sonic-net/sonic-utilities#2288))
* Fix version in db_migrator  for  ([sonic-net#2289](sonic-net/sonic-utilities#2289))
* [intfutil] Check whether the FEC mode is supported on the platform before configuring it to CONFIG_DB ([sonic-net#2223](sonic-net/sonic-utilities#2223))
* Transfer organization from Azure to sonic-net ([sonic-net#2284](sonic-net/sonic-utilities#2284))
* [watermarkstat] Fix CLI script for unconfigured PG counters ([sonic-net#2239](sonic-net/sonic-utilities#2239))
* Improve the way to check port type of RJ45 port ([sonic-net#2249](sonic-net/sonic-utilities#2249))

Signed-off-by: dprital <drorp@nvidia.com>
liat-grozovik pushed a commit to sonic-net/sonic-swss that referenced this pull request Aug 25, 2022
…r queue/pg counters (#2360)

Propagating #2143 with resolved merge conflicts
Depends on: sonic-net/sonic-utilities#2239

- What I did
Currently in SONiC all ports queue and pg counters are created by default with the max possible amount of counters.
This feature change this behavior to poll only configured counters provided by the config DB BUFFER_PG and BUFFER_QUEUE tables.
If no tables are present in the DB, no counters will be created for ports.
Filter the unwanted queues/pgs returned by SAI API calls and skip the creation of these queue/pg counters.
Also allow creating/removing counters on runtime if buffer PG/Queue is configured or removed.

- Why I did it
Improve performance by filtering unconfigured queue/pg counters on init.

- How I verified it
Check after enabling the counters, if configured counters created in Counters DB according to the configurations.
Add/Remove buffer PG/Queue configurations and observe the corresponding counters created/removed accordingly.
New UT added to verify this flow.

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
preetham-singh pushed a commit to preetham-singh/sonic-utilities that referenced this pull request Nov 21, 2022
…t#2239)

Signed-off-by: Nazarii Hnydyn nazariig@nvidia.com

Propagating sonic-net#2220 with resolved review comments

What I did
Since PG counters are created only if they are configured in the switch, it is not enough to relay only on the first entry in the DB when building the output table of watermarkstat script.
We need to go over all configured counters, check what is the max configured, and build the table accordingly.

How I did it
Iterate all configured PG buffers for all ports and find the max index.
Build the output table according to the max index.

How to verify it
Run test "iface_namingmode/test_iface_namingmode.py" including this PR: sonic-net/sonic-swss#2143 and observe it passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants