Date: Sun, 22 Apr 2012 21:06:01 +0700 (NOVT) From: Eugene Grosbein <eugen@grosbein.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/167204: terrible "netstat -rn" performance due to slow kvm_nlist() Message-ID: <201204221406.q3ME61Gw003676@grosbein.pp.ru> Resent-Message-ID: <201204221410.q3MEABq0035977@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 167204
>Category: kern
>Synopsis: terrible "netstat -rn" performance due to slow kvm_nlist()
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Apr 22 14:10:10 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Eugene Grosbein
>Release: FreeBSD 8.3-PRERELEASE i386
>Organization:
RDTC JSC
>Environment:
System: FreeBSD grosbein.pp.ru 8.3-PRERELEASE
>Description:
My home router runs FreeBSD/i386 on AMD Geode:
%uname -a
FreeBSD gw.grosbein.pp.ru 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #1: Tue Mar 6 23:11:20 NOVT 2012 root@grosbein.pp.ru:/usr/local/obj/nanobsd.gw/i386/usr/local/src/sys/GW i386
%grep CPU /var/run/dmesg.boot
CPU: Geode(TM) Integrated Processor by AMD PCS (499.91-MHz 586-class CPU)
It has no IPv6 in the kernel config and pretty small routing table:
%sh -c 'time netstat -rn | wc -l'
1.47 real 0.00 user 1.06 sys
30
As you can see, it takes more than a second
for 'netstat -rn' to complete.
Most of time it spends calling kldsym() system call
from kvm_nlist() function:
%kdump | fgrep -c 'CALL kldsym(0,KLDSYM_LOOKUP'
347
For some unknown reason, the performace of this syscall is way too bad.
>How-To-Repeat:
Run "time netstat -rn"
>Fix:
Unknown
>Release-Note:
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204221406.q3ME61Gw003676>
