Page MenuHomeFreeBSD

iflib: expose the Rx mbuf buffer size to drivers
ClosedPublic

Authored by jacob.e.keller_intel.com on Mar 7 2019, 12:09 AM.
Tags
None
Referenced Files
F106399482: D19489.id54792.diff
Mon, Dec 30, 2:16 AM
Unknown Object (File)
Sat, Dec 21, 4:21 PM
Unknown Object (File)
Sat, Dec 21, 4:20 PM
Unknown Object (File)
Fri, Dec 20, 8:33 PM
Unknown Object (File)
Fri, Dec 20, 8:22 PM
Unknown Object (File)
Fri, Dec 20, 4:15 PM
Unknown Object (File)
Wed, Dec 11, 8:19 PM
Unknown Object (File)
Mon, Dec 9, 3:36 AM
Subscribers

Details

Summary

iflib_fl_setup calculates a suitable buffer size for the Rx mbufs based
on the isc_max_frame_size value that drivers setup. This calculation is
repeated by drivers when programming their hardware with the size of
each Rx buffer.

This can lead to a mismatch where the iflib mbuf size is different from
the expected size of the buffer as programmed by the hardware. This can
lead to unexpected results.

If iflib ever wants to support mbuf sizes larger than one page, every
driver must be updated to account for the new possible buffer sizes.

Fix this by calculating the mbuf size prior to calling IFDI_INIT, and
adding the iflib_get_rx_mbuf_sz function which will expose this value to
drivers, so that they do not repeat the same calculation.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 22927
Build 22011: arc lint + arc unit

Event Timeline

The intention here is to ensure that device drivers which need the size of the rx buffers can ensure they use the same size as iflib, (possibly incase we want to re-enable something like the old CONTIG_MALLOCWORKS again)

sys/net/iflib.c
2327

style(9) nit -- there should be parentheses around this return value

2365

You would also start the comment on the line after the opening "/*".

sys/net/iflib.c
2318

I know this is copied from the original code, but shouldn't this check be against MCLBYTES, just in case that ever changes to not being 2048?

Replace the 2048 magic number with MCLBYTES

jacob.e.keller_intel.com added inline comments.
sys/net/iflib.c
2318

Yes, I agree.

And again now that I've joined iflib...

This revision is now accepted and ready to land.Mar 14 2019, 5:02 PM
This revision was automatically updated to reflect the committed changes.