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>