HomeFreeBSD

Use busdma unconditionally in iflib

Description

Use busdma unconditionally in iflib

  • Remove the complex mechanism to choose between using busdma

and raw pmap_kextract at runtime. The reduced complexity makes
the code easier to read and maintain.

  • Fix a bug in the small packet receive path where clusters were

repeatedly mapped but never unmapped. We now store the cluster's
bus address and avoid re-mapping the cluster each time a small
packet is received.

This patch fixes bugs I've seen where ixl(4) will not even
respond to ping without seeing DMAR faults.

I see a small improvement (14%) on packet forwarding tests using
a Haswell based Xeon E5-2697 v3. Olivier sees a small
regression (-3% to -6%) with lower end hardware.

Reviewed by: mmacy
Not objected to by: sbruno
MFC after: 8 weeks
Sponsored by: Netflix, Inc
Differential Revision: https://reviews.freebsd.org/D17901

Details

Provenance
gallatinAuthored on
Reviewer
mmacy
Differential Revision
D17901: Use busdma unconditionally in iflib
Parents
rS341094: Improve sigonstack().
Branches
Unknown
Tags
Unknown