Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jul 2014 22:24:11 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 192298] New: net/dhcprelya consumes cpu on FreeBSD 10
Message-ID:  <bug-192298-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192298

            Bug ID: 192298
           Summary: net/dhcprelya consumes cpu on FreeBSD 10
           Product: Ports Tree
           Version: Latest
          Hardware: Any
                OS: Any
            Status: Needs Triage
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs@FreeBSD.org
          Reporter: mcdouga9@egr.msu.edu

I've been using dhcprelya for a while because it worked well with tun0 and
openvpn.  After upgrading such a server to FreeBSD 10, I noticed the load
average stays around 0.70, approx 15% cpu usage from dhcprelya, and it is
making repetitive calls.  systat -vmstat 1 shows 10-30 thousand interrupts per
second on the cpu timer with kern.eventtimer.timer=LAPIC (default), or 2
thousand per second with i8254 (lower cpu usage, but same load average).  This
issue can be reproduced easily, I just install dhcprelya on 10 and enable it on
a spare interface with a dummy IP (no link necessary).  I am willing to help
figure this out if I can get some help.  Thanks.

rc.conf:
dhcprelya_enable="YES"
dhcprelya_servers="192.168.0.10"
dhcprelya_ifaces="em3"


truss -p shows:
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
... (many)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
read(5,0x80185b000,524288)             = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
nanosleep({0.001000000 })             = 0 (0x0)
select(7,{6},0x0,0x0,{0.000010 })         = 0 (0x0)
...

kdump says:
  1086 dhcprelya RET   select 0
  1086 dhcprelya CALL  select(0x7,0x7fffffffe9e0,0,0,0x7fffffffea90)
  1086 dhcprelya RET   select 0
  1086 dhcprelya CALL  select(0x7,0x7fffffffe9e0,0,0,0x7fffffffea90)
  1086 dhcprelya RET   select 0
  1086 dhcprelya CALL  select(0x7,0x7fffffffe9e0,0,0,0x7fffffffea90)
...

procstat -k 1086 flips between:
  PID    TID COMM             TDNAME           KSTACK                       
 1086 100395 dhcprelya        -                <running>                    
 1086 100396 dhcprelya        -                mi_switch sleepq_catch_signals
sleepq_timedwait_sig _sleep bpfread devfs_read_f dofileread kern_readv sys_read
amd64_syscall Xfast_syscall 

and

  PID    TID COMM             TDNAME           KSTACK                       
 1086 100395 dhcprelya        -                mi_switch sleepq_catch_signals
sleepq_timedwait_sig _cv_timedwait_sig_sbt seltdwait kern_select sys_select
amd64_syscall Xfast_syscall 
 1086 100396 dhcprelya        -                mi_switch sleepq_catch_signals
sleepq_timedwait_sig _sleep bpfread devfs_read_f dofileread kern_readv sys_read
amd64_syscall Xfast_syscall

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-192298-13>