freebsd-skq/sys
Luigi Rizzo 4bf50f18eb Update to the current version of netmap.
Mostly bugfixes or features developed in the past 6 months,
so this is a 10.1 candidate.

Basically no user API changes (some bugfixes in sys/net/netmap_user.h).

In detail:

1. netmap support for virtio-net, including in netmap mode.
  Under bhyve and with a netmap backend [2] we reach over 1Mpps
  with standard APIs (e.g. libpcap), and 5-8 Mpps in netmap mode.

2. (kernel) add support for multiple memory allocators, so we can
  better partition physical and virtual interfaces giving access
  to separate users. The most visible effect is one additional
  argument to the various kernel functions to compute buffer
  addresses. All netmap-supported drivers are affected, but changes
  are mechanical and trivial

3. (kernel) simplify the prototype for *txsync() and *rxsync()
  driver methods. All netmap drivers affected, changes mostly mechanical.

4. add support for netmap-monitor ports. Think of it as a mirroring
  port on a physical switch: a netmap monitor port replicates traffic
  present on the main port. Restrictions apply. Drive carefully.

5. if_lem.c: support for various paravirtualization features,
  experimental and disabled by default.
  Most of these are described in our ANCS'13 paper [1].
  Paravirtualized support in netmap mode is new, and beats the
  numbers in the paper by a large factor (under qemu-kvm,
  we measured gues-host throughput up to 10-12 Mpps).

A lot of refactoring and additional documentation in the files
in sys/dev/netmap, but apart from #2 and #3 above, almost nothing
of this stuff is visible to other kernel parts.

Example programs in tools/tools/netmap have been updated with bugfixes
and to support more of the existing features.

This is meant to go into 10.1 so we plan an MFC before the Aug.22 deadline.

A lot of this code has been contributed by my colleagues at UNIPI,
including Giuseppe Lettieri, Vincenzo Maffione, Stefano Garzarella.

MFC after:	3 days.
2014-08-16 15:00:01 +00:00
..
amd64 Update i386/NOTES and amd64/NOTES files to contain the complete list of 2014-08-14 18:29:55 +00:00
arm Implement the FDT static pinctl/pinmux spec for Atmel. This will 2014-08-15 16:08:52 +00:00
boot Quiesce warning about discarding a const qualifier in assignement. 2014-08-08 21:47:47 +00:00
bsm
cam Added 4K quirks for Corsair Force GT and Samsung 840 SSDs 2014-08-14 13:57:17 +00:00
cddl MFV r269542: 2014-08-05 00:07:21 +00:00
compat All mbuf external free functions never fail, so let them be void. 2014-07-11 13:58:48 +00:00
conf Update to the current version of netmap. 2014-08-16 15:00:01 +00:00
contrib Add some more OS_MARK() probes to the AR9300 HAL. 2014-08-11 00:03:50 +00:00
crypto
ddb ins is only set and unused, but only when we're not doing software 2014-08-14 16:01:51 +00:00
dev Update to the current version of netmap. 2014-08-16 15:00:01 +00:00
fs Change the NFS server's printf related to hitting 2014-08-10 01:13:32 +00:00
gdb
geom Turn off kern.geom.part.mbr.enforce_chs by default. 2014-08-12 10:31:31 +00:00
gnu Revert r269528; this was not the right way to bring these changes in. 2014-08-05 22:38:49 +00:00
i386 Complete r254667, do not destroy pmap lock if KVA allocation failed. 2014-08-16 08:31:25 +00:00
isa
kern Correct the order of arguments passed to LIST_INSERT_AFTER(). 2014-08-15 15:42:58 +00:00
kgssapi
libkern Fix unwind-info errors in our hand-written arm assembler code. 2014-08-01 18:24:44 +00:00
mips Change pmap_enter(9) interface to take flags parameter and superpage 2014-08-08 17:12:03 +00:00
modules Similar to r250143, optimize MODULES_OVERRIDE such that SUBDIR isn't 2014-08-11 17:04:04 +00:00
net Update to the current version of netmap. 2014-08-16 15:00:01 +00:00
net80211 Undo r195846 for now - allow raw frame transmit in monitor mode. 2014-08-10 08:35:42 +00:00
netgraph
netinet Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netinet6 Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netipsec Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netnatm
netpfil Do not lookup source node twice when pf_map_addr() is used. 2014-08-15 14:16:08 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed - Fix radix tree memory leakage when unloading modules using radix 2014-08-12 11:45:57 +00:00
opencrypto
pc98
pci
powerpc Fix two files forgotten in r269783 (vt_generate_cons_palette) 2014-08-10 22:24:14 +00:00
rpc
security
sparc64 Complete r254667, do not destroy pmap lock if KVA allocation failed. 2014-08-16 08:31:25 +00:00
sys Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
teken
tools
ufs Revision r269457 removed the Giant around mount and unmount code, but 2014-08-12 09:33:00 +00:00
vm Implement 'fast path' for the vm page fault handler. Or, it could be 2014-08-15 07:30:14 +00:00
x86 atpic: make sure atpic_init is called after IO APIC initialization 2014-08-07 17:00:50 +00:00
xdr
xen xen: implement event channel PIRQ support 2014-08-04 08:42:29 +00:00
Makefile Remove ia64. 2014-07-07 00:27:09 +00:00