Skip to content
New issue

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

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

Already on GitHub? # to your account

Slow worker packet priorities #141

Open
TheRandomCharacter opened this issue Mar 25, 2024 · 0 comments
Open

Slow worker packet priorities #141

TheRandomCharacter opened this issue Mar 25, 2024 · 0 comments

Comments

@TheRandomCharacter
Copy link
Collaborator

Looks like

for (unsigned nIter = 0; nIter < YANET_CONFIG_RING_PRIORITY_RATIO; nIter++)
{
for (unsigned hIter = 0; hIter < YANET_CONFIG_RING_PRIORITY_RATIO; hIter++)
{
unsigned hProcessed = 0;
for (const auto& iter : dataPlane->workers)
{
cWorker* worker = iter.second;
hProcessed += ring_handle(worker->ring_toFreePackets, worker->ring_highPriority);
}
if (!hProcessed)
{
break;
}
}
unsigned nProcessed = 0;
for (const auto& iter : dataPlane->workers)
{
cWorker* worker = iter.second;
nProcessed += ring_handle(worker->ring_toFreePackets, worker->ring_normalPriority);
}
if (!nProcessed)
{
break;
}
}
for (const auto& iter : dataPlane->workers)
{
cWorker* worker = iter.second;
ring_handle(worker->ring_toFreePackets, worker->ring_lowPriority);
}

is intended to process different priority packets with ratio 16:4:1

This

if (!nProcessed)
{
break;
}

reduces high:low priority ratio from 16:1 to 4:1 when normal priority traffic is absent

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant