-
Notifications
You must be signed in to change notification settings - Fork 546
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
[Dynamic Buffer Calc] Don't update pools when ingress_lossless_pool is created during initialization #1685
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ialization hasn't finished yet Bug: The buffer pools will be created after a short timer and then won't be updated until the initialization has finished. This is to avoid repeatedly updating buffer pools after BUFFER_PG and BUFFER_QUEUE have been created for each port. However, when the ingress_lossless_pool is created it will trigger the buffer pools to be updated for shared headroom pool. If this happens during intialization, it causes all the buffer pools created after ingress_lossless_pool won't be created until the initialization has been done. Fix: Don't trigger updating buffer pools when creating ingress_lossless_pool during intialization. Signed-off-by: Stephen Sun <[email protected]>
liat-grozovik
approved these changes
Mar 30, 2021
neethajohn
approved these changes
Apr 1, 2021
@daall - Can you please merge into 202012 ? |
daall
pushed a commit
that referenced
this pull request
Apr 13, 2021
…ialization hasn't finished yet (#1685) Bug: The buffer pools will be created after a short timer and then won't be updated until the initialization has finished. This is to avoid repeatedly updating buffer pools after BUFFER_PG and BUFFER_QUEUE have been created for each port. However, when the ingress_lossless_pool is created it will trigger the buffer pools to be updated for shared headroom pool. If this happens during intialization, it causes all the buffer pools created after ingress_lossless_pool won't be created until the initialization has been done. Fix: Don't trigger updating buffer pools when creating ingress_lossless_pool during intialization. Signed-off-by: Stephen Sun <[email protected]>
liat-grozovik
pushed a commit
that referenced
this pull request
Apr 27, 2021
- What I did This is a supplement of #1685. In that PR, most of the cases in which the buffer pool updated during initialization have been avoided but there are still some rare cases not covered. Eg., it will try to recalculate the pool size because the lossless PSs are removed if one port is admin down. - Why I did it Make sure that the the buffer pools will be updated only once during initialization. - How I verified it Run regression and manual test Signed-off-by: Stephen Sun <[email protected]>
daall
pushed a commit
that referenced
this pull request
Apr 29, 2021
- What I did This is a supplement of #1685. In that PR, most of the cases in which the buffer pool updated during initialization have been avoided but there are still some rare cases not covered. Eg., it will try to recalculate the pool size because the lossless PSs are removed if one port is admin down. - Why I did it Make sure that the the buffer pools will be updated only once during initialization. - How I verified it Run regression and manual test Signed-off-by: Stephen Sun <[email protected]>
raphaelt-nvidia
pushed a commit
to raphaelt-nvidia/sonic-swss
that referenced
this pull request
Oct 5, 2021
…ialization hasn't finished yet (sonic-net#1685) Bug: The buffer pools will be created after a short timer and then won't be updated until the initialization has finished. This is to avoid repeatedly updating buffer pools after BUFFER_PG and BUFFER_QUEUE have been created for each port. However, when the ingress_lossless_pool is created it will trigger the buffer pools to be updated for shared headroom pool. If this happens during intialization, it causes all the buffer pools created after ingress_lossless_pool won't be created until the initialization has been done. Fix: Don't trigger updating buffer pools when creating ingress_lossless_pool during intialization. Signed-off-by: Stephen Sun <[email protected]>
raphaelt-nvidia
pushed a commit
to raphaelt-nvidia/sonic-swss
that referenced
this pull request
Oct 5, 2021
- What I did This is a supplement of sonic-net#1685. In that PR, most of the cases in which the buffer pool updated during initialization have been avoided but there are still some rare cases not covered. Eg., it will try to recalculate the pool size because the lossless PSs are removed if one port is admin down. - Why I did it Make sure that the the buffer pools will be updated only once during initialization. - How I verified it Run regression and manual test Signed-off-by: Stephen Sun <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What I did
Fix bug: Don't update pools when ingress_lossless_pool is created during initialization.
Signed-off-by: Stephen Sun [email protected]
Why I did it
Fix the bug.
How I verified it
Run regression and vs test.
Details if related
The buffer pools will be created after a short-timer and then won't be updated until the initialization has finished. The idea is to call
recalculateSharedBufferPool
fromcheckSharedBufferPoolSize
only once during initialization. The motivation is to avoid repeatedly updating buffer pools when items in BUFFER_PG have been created for each port. So the flow we expected:However, when the ingress_lossless_pool is created it will trigger the buffer pools to be updated for the shared headroom pool. If this happens during initialization, it causes the buffer pools created after ingress_lossless_pool unable to be created until the initialization has been done because the buffer pools can only be updated to APPL_DB once during initialization.
For example, assume the buffer pools are created in the following order:
In step 3, it won't call
recalculateSharedBufferPool
because it has been called when handlingingress_lossless_pool
. This causesingress_lossy_pool
which followsingress_lossless_pool
can not be created until initialization finished, which in turn causes the entries depending oningress_lossy_pool
can not be created, and there will be error logs reported by bufferorch.Fix: Don't trigger updating buffer pools when creating ingress_lossless_pool during initialization.