Page MenuHomeFreeBSD

Add support for sysctl knobs to live tune the tx packet processing limits in igb and fix a wrap-around bug.
ClosedPublic

Authored by sbruno on Oct 30 2015, 5:27 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 25, 5:41 AM
Unknown Object (File)
Mon, Nov 25, 5:41 AM
Unknown Object (File)
Sun, Nov 24, 12:15 PM
Unknown Object (File)
Fri, Nov 15, 2:58 PM
Unknown Object (File)
Thu, Nov 14, 12:10 PM
Unknown Object (File)
Nov 11 2024, 7:26 AM
Unknown Object (File)
Nov 10 2024, 9:28 PM
Unknown Object (File)
Nov 9 2024, 10:24 AM

Details

Summary

Prior this was using limit which was simply delcared but not initialized. With it being a u16, it would wrap around to 65535 after the first loop,
meaning the old limit was really 65536 packets and not truly unlimited.
With a 1G card, it shouldn't make much a difference, but initialize it
to -1 to be safe and more clear on the setting which matches the tool tip.

Add tx processing limit sysctl to igb(4)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sbruno retitled this revision from to Add support for sysctl knobs to live tune the tx packet processing limits in igb. Prior this was using limit which was simply delcared but not initialized With it being a u16, it would wrap around to 65535 after the first loop, meaning the old....
sbruno updated this object.
sbruno edited the test plan for this revision. (Show Details)
sbruno added reviewers: hiren, erj.
sbruno added a reviewer: gnn.
sbruno added subscribers: j-nitrology.com, kbowling.
hiren retitled this revision from Add support for sysctl knobs to live tune the tx packet processing limits in igb. Prior this was using limit which was simply delcared but not initialized With it being a u16, it would wrap around to 65535 after the first loop, meaning the old... to Add support for sysctl knobs to live tune the tx packet processing limits in igb and fix a wrap-around bug..Oct 30 2015, 5:31 PM
hiren updated this object.
hiren edited edge metadata.

Is there a way we can unify *_process_limit and *_processing_limit? I see both being used and that is confusing. I am not sure if its just the code and if user is presented with only one but in any case we should choose one and stick with it. BTW, this can be done as a followup/separate commit.

This change looks okay to me.

This revision is now accepted and ready to land.Oct 30 2015, 5:36 PM
In D4039#84487, @hiren wrote:

Is there a way we can unify *_process_limit and *_processing_limit? I see both being used and that is confusing. I am not sure if its just the code and if user is presented with only one but in any case we should choose one and stick with it. BTW, this can be done as a followup/separate commit.

This change looks okay to me.

So the process_limit is the global boot time tunable that becomes the default per adapter setting that can (now) be tuned live. That per adapter setting is called processing_limit. I agree though, we can probably give them some better naming. For it to make sense we'd probably want to change the sysctls to match, which I don't believe is safe:

hw.igb.tx_process_limit: -1
hw.igb.rx_process_limit: -1

dev.igb.1.tx_processing_limit: -1
dev.igb.1.rx_processing_limit: -1
dev.igb.0.tx_processing_limit: -1
dev.igb.0.rx_processing_limit: -1

This revision was automatically updated to reflect the committed changes.