[orchagent] implement ring buffer feature with a flag#3242
[orchagent] implement ring buffer feature with a flag#3242prsunny merged 8 commits intosonic-net:masterfrom
Conversation
7f23081 to
8062ead
Compare
3d3cde6 to
ba7f1a0
Compare
|
can you please add sone swss tests for this functionality. There are no tests mentioned in the PR. if you have created a separate PR , Please link it here. |
siqbal1986
left a comment
There was a problem hiding this comment.
what is hte need of rign buffer. Can you please add some detail regarding its need.
80e7a90 to
a6b3b0c
Compare
2ccb3dc to
12b402a
Compare
|
rebased and conflict resolved @siqbal1986 could you help re-approve it? : ) |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@prsunny do you have any more comments? |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run Azure.sonic-swss |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@a114j0y , I recently testing improve route performance with ring buffer/zmq/multiple-db, and the ring buffer sometimes will cause stuck when there are massive bgp routes, I check this on a lab mellanox 4600 device which has 12000+ BGP routes: ~$ sonic-db-cli ASIC_DB eval "return #redis.call('keys', 'ASIC_STATE:SAI_OBJECT_TYPE_ROUTE_ENTRY*')" 0 ~$ show ip bgp summary IPv4 Unicast Summary: Neighbhor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd NeighborName 10.0.0.1 4 65200 3201 5537 22923 0 0 00:00:34 6370 ARISTA01T2 Then run "sudo config bgp shutdown all" or "sudo config bgp startup all", and check the syslog, some time I get following log: 2025 Mar 17 06:56:42.396204 DEVICE_NAME WARNING swss#orchagent: :- processAnyTask: ring is full...push again Seems there are some deadlock issue in the ring buffer code. |
What I did
swss::TableBase* Consumer::getConsumerTable() const overrideswss::ConsumerTableBase *Why I did it
APP_ROUTE_TABLEconsumers doing tasksHow I verified it
measure the performance with PerformanceTimer