ipfw meets netmap (6.5 Mpps in userspace)
Luigi Rizzo
rizzo at iet.unipi.it
Tue Aug 14 21:06:58 UTC 2012
On Tue, Aug 14, 2012 at 10:53:38PM +0300, Nikolay Denev wrote:
> On Aug 13, 2012, at 2:17 PM, Luigi Rizzo <rizzo at iet.unipi.it> wrote:
...
> 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):
i suspect kernel and userland headers out of sync, causing
some ioctl() to be called with invalid parameters
(and perhaps a missing check in the kernel does the rest,
otherwise of course the kernel should not crash).
Please make sure you also update net/netmap*.h
FWIW, i tested the code in RELENG_9 on my workstation.
cheers
luigi
> Fatal trap 12: page fault while in kernel mode
> cpuid = 1; apic id = 01
> fault virtual address = 0x28
> fault code = supervisor read data, page not present
> instruction pointer = 0x20:0xffffffff808274da
> stack pointer = 0x28:0xffffff88df1a5530
> frame pointer = 0x28:0xffffff88df1a5550
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 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 = 0x800b5eaec, rsp = 0x7fffffffd
> 888, rbp = 0xc0206911 ---
>
>
>
> Anyways, many thanks for you great work on NETMAP and not the super cool user-space IPFW!
>
> Cheers,
> Nikolay
More information about the freebsd-net
mailing list