Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Aug 2012 22:53:38 +0300
From:      Nikolay Denev <ndenev@gmail.com>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        net@freebsd.org
Subject:   Re: ipfw meets netmap (6.5 Mpps in userspace)
Message-ID:  <0B0751C8-DD87-4891-820C-624BFAADB334@gmail.com>
In-Reply-To: <20120813111722.GA79347@onelab2.iet.unipi.it>
References:  <20120813111722.GA79347@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 13, 2012, at 2:17 PM, Luigi Rizzo <rizzo@iet.unipi.it> wrote:

> I just finished a netmap-enabled version of ipfw/dummynet, which
> runs in userspace and is able to process over 6 million packets per
> second (Mpps) with simple rulesets, and over 2.2 Mpps through
> dummynet pipes (tested on an i7-3400 connected to VALE ports;
> VALE is a software switch part of netmap).
> You can find it at
>=20
> 	http://info.iet.unipi.it/~luigi/dummynet/#8696
>=20
> It works on FreeBSD and Linux.
>=20
> It even run on OSX, but there is no netmap support there;
> any interest, Apple ? In any case, it should be simple to
> adapt the network backend to talk to other devices.
>=20
> To run this you might want to use the most recent version of netmap,
> also recently updated so it works with recent kernels
>=20
> 	http://info.iet.unipi.it/~luigi/netmap/
>=20
> (the code is already in FreeBSD HEAD).
>=20
> On passing, I have also updated the dummynet distributions
> for Linux and Windows, which should now compile for most
> recent version of Linux, and for Windows 32 and 64 bit:
>=20
> 	http://info.iet.unipi.it/~luigi/dummynet/
>=20
> cheers
> luigi
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"

Hi Luigi,

I've tried copying netmap sources from HEAD to the latest RELENG_9 =
branch, but running
kipfw with two VALE interfaces produced immediate kernel panic =
(transcribed by hand, possible typos):

Fatal trap 12: page fault while in kernel mode
cpuid =3D 1; apic id =3D 01
fault virtual address		=3D 0x28
fault code			=3D supervisor read data, page not =
present
instruction pointer		=3D 0x20:0xffffffff808274da
stack pointer			=3D 0x28:0xffffff88df1a5530
frame pointer			=3D 0x28:0xffffff88df1a5550
code segment		=3D base 0x0, limit 0xfffff, type 0x1b
				=3D DPL 0, pres 1, long 1, def32 0, gran =
1
processor eflags		=3D interrupt enabled, resume, IOPL =3D =
0
current process		=3D 2349 (kipfw)
[ thread pid 2349 tid 100612 ]
Stopped at		ifunit_ref+0x2a:
db> bt
Tracing pid 2349 tid 100612 td 0xfffffe0094fd1000
ifunit_ref() at ifunit_ref+0x2a
ifioctl() at ifioctl+0x1cd
netmap_ioctl() at netmap_ioctl+0x121
devfs_ioctl_f() at devfs_ioctl_f+0x7b
kern_ioctl() at kern_ioctl+0x115
sys_ioctl() at sys_ioctl+0xfd
amd64_syscall() at amd64_syscall+0x5ea
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (54, FreeBSD ELF64, sys_ioctl), rip =3D 0x800b5eaec, rsp =3D =
0x7fffffffd
888, rbp =3D 0xc0206911 ---



Anyways, many thanks for you great work on NETMAP and not the super cool =
user-space IPFW!

Cheers,
Nikolay=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0B0751C8-DD87-4891-820C-624BFAADB334>