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

[flex-counters] Delay flex counters stats init for faster boot time #1803

Merged
merged 4 commits into from
Jul 1, 2021
Merged

[flex-counters] Delay flex counters stats init for faster boot time #1803

merged 4 commits into from
Jul 1, 2021

Conversation

shlomibitton
Copy link
Contributor

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

What I did
Update flex counters DB with counters stats only when counters are enabled.
As long as the polling counters are not enabled, flex counters information will stored internally on PortsOrch.

Why I did it
Creating flex counters objects on the DB will trigger 'SYNCD' to access the HW for query statistics capabilities.
This HW access takes time and will be better to finish boot before doing this (mainly for fast-reboot but good to have in general).
The flex counters are not crucial at boot time, we can delay it to the end of the boot process.

How I verified it
Reboot a switch and observer the flex counters DB populated after counters are enabled.

Details if related

Add flex counters unit-test

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
@yxieca
Copy link
Contributor

yxieca commented Jun 29, 2021

Please add unit test to guarantee that only PHY port will be added to the query list.

@shlomibitton
Copy link
Contributor Author

Please add unit test to guarantee that only PHY port will be added to the query list.

@yxieca there is a check to verify the port ID on the DB is not 0x0, from my testing PortChannels and CPU port are with this ID.
please check
https://github.com/Azure/sonic-swss/pull/1803/files#diff-574b26154866415f530c54dd5bc0feb404cbd5b121fd12c043057cf7b6b42b4cR107

@yxieca yxieca merged commit a39673d into sonic-net:master Jul 1, 2021
qiluo-msft pushed a commit to sonic-net/sonic-buildimage that referenced this pull request Jul 5, 2021
[flex-counters] Delay flex counters stats init for faster boot time (sonic-net/sonic-swss#1803)
[mirror] Detach session dst ip from route orch LPM calculation regardless of session status at session CONFIG DB removal (sonic-net/sonic-swss#1800)
[Dynamic Buffer Calc] Support dynamic buffer calculation on top of port auto negotiation (sonic-net/sonic-swss#1762)
[neighorch] VOQ encap index change handling (sonic-net/sonic-swss#1729)
[neighorch] Mac for voq neighbors in VS platforms (sonic-net/sonic-swss#1724)
[acl mirror action] Mirror session ref count fix at acl rule attachment (sonic-net/sonic-swss#1761)
@shlomibitton shlomibitton deleted the delay_flex_counters_master branch July 27, 2021 16:32
judyjoseph pushed a commit to sonic-net/sonic-buildimage that referenced this pull request Aug 7, 2021
[flex-counters] Delay flex counters stats init for faster boot time (sonic-net/sonic-swss#1803)
[mirror] Detach session dst ip from route orch LPM calculation regardless of session status at session CONFIG DB removal (sonic-net/sonic-swss#1800)
[Dynamic Buffer Calc] Support dynamic buffer calculation on top of port auto negotiation (sonic-net/sonic-swss#1762)
[neighorch] VOQ encap index change handling (sonic-net/sonic-swss#1729)
[neighorch] Mac for voq neighbors in VS platforms (sonic-net/sonic-swss#1724)
[acl mirror action] Mirror session ref count fix at acl rule attachment (sonic-net/sonic-swss#1761)
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
[flex-counters] Delay flex counters stats init for faster boot time (sonic-net/sonic-swss#1803)
[mirror] Detach session dst ip from route orch LPM calculation regardless of session status at session CONFIG DB removal (sonic-net/sonic-swss#1800)
[Dynamic Buffer Calc] Support dynamic buffer calculation on top of port auto negotiation (sonic-net/sonic-swss#1762)
[neighorch] VOQ encap index change handling (sonic-net/sonic-swss#1729)
[neighorch] Mac for voq neighbors in VS platforms (sonic-net/sonic-swss#1724)
[acl mirror action] Mirror session ref count fix at acl rule attachment (sonic-net/sonic-swss#1761)
judyjoseph pushed a commit that referenced this pull request Aug 10, 2021
…1803)

What I did
Update flex counters DB with counters stats only when counters are enabled.
As long as the polling counters are not enabled, flex counters information will stored internally on PortsOrch.

Why I did it
Creating flex counters objects on the DB will trigger 'SYNCD' to access the HW for query statistics capabilities.
This HW access takes time and will be better to finish boot before doing this (mainly for fast-reboot but good to have in general).
The flex counters are not crucial at boot time, we can delay it to the end of the boot process.

How I verified it
Reboot a switch and observer the flex counters DB populated after counters are enabled.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
qiluo-msft pushed a commit to sonic-net/sonic-mgmt that referenced this pull request Aug 16, 2021
…hange (#3903)

### Approach
#### What is the motivation for this PR?
Following PR's:
sonic-net/sonic-swss#1803
sonic-net/sonic-swss#1804
Flex counters are delayed and these tests are failing as a result of missing information on the DUT.
This PR is to wait until all counters are enabled before running the test.
Timeout value chosen by the delay script which can be found here:
https://github.com/Azure/sonic-buildimage/blob/master/dockers/docker-orchagent/enable_counters.py

#### How did you do it?
Wait until all counters are enabled before running the tests.

#### How did you verify/test it?
Run the tests with this change.
vmittal-msft pushed a commit to vmittal-msft/sonic-mgmt that referenced this pull request Sep 28, 2021
…hange (sonic-net#3903)

### Approach
#### What is the motivation for this PR?
Following PR's:
sonic-net/sonic-swss#1803
sonic-net/sonic-swss#1804
Flex counters are delayed and these tests are failing as a result of missing information on the DUT.
This PR is to wait until all counters are enabled before running the test.
Timeout value chosen by the delay script which can be found here:
https://github.com/Azure/sonic-buildimage/blob/master/dockers/docker-orchagent/enable_counters.py

#### How did you do it?
Wait until all counters are enabled before running the tests.

#### How did you verify/test it?
Run the tests with this change.
raphaelt-nvidia pushed a commit to raphaelt-nvidia/sonic-swss that referenced this pull request Oct 5, 2021
…onic-net#1803)

What I did
Update flex counters DB with counters stats only when counters are enabled.
As long as the polling counters are not enabled, flex counters information will stored internally on PortsOrch.

Why I did it
Creating flex counters objects on the DB will trigger 'SYNCD' to access the HW for query statistics capabilities.
This HW access takes time and will be better to finish boot before doing this (mainly for fast-reboot but good to have in general).
The flex counters are not crucial at boot time, we can delay it to the end of the boot process.

How I verified it
Reboot a switch and observer the flex counters DB populated after counters are enabled.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
EdenGri pushed a commit to EdenGri/sonic-swss that referenced this pull request Feb 28, 2022
…1803)

Signed-off-by: Stepan Blyschak stepanb@nvidia.com

What I did
Implemented feature table update on package upgrade.
It could be that upgraded package includes timer service when old one does not.

How I did it
Upgrade logic added in manager.py
Use ConfigDBConnector for config modification as it simplifies config DB operations.

How to verify it
Upgrade package with new feature attributes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants