]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Use busdma unconditionally in iflib
authorAndrew Gallatin <gallatin@FreeBSD.org>
Tue, 27 Nov 2018 20:01:05 +0000 (20:01 +0000)
committerAndrew Gallatin <gallatin@FreeBSD.org>
Tue, 27 Nov 2018 20:01:05 +0000 (20:01 +0000)
commitfbec776de09a24e5ee7026ab07717df4e4cbdaa2
tree1272d1dcbc70ed15864dee58b0267eea7509188a
parentaffd918514794a231cd571d0d15c9cfaf4a2a6f4
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
sys/net/iflib.c
sys/net/iflib_private.h