OCE driver on Freebsd 10.0-Current

John Baldwin jhb at freebsd.org
Fri Aug 23 18:55:19 UTC 2013


On Friday, August 23, 2013 4:55:06 am Venkata Duvvuru wrote:
> Hi,
> 
> I'm running iperf on Emulex's OCE network adapter in Freebsd-10-current. At
> heavy traffic (iperf with ~10 connections), iperf is hanging. The same
> driver is working on all other Freebsd versions.
> 
> top -HS shows the below information.
> 
> PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
> 
>    11 root       155 ki31     0K   128K CPU4    4 146:36 100.00% idle{idle: cpu4}
> 
>    12 root       -60    -     0K   688K CPU6    6  52:38 100.00% intr{swi4: clock}
> 
>    11 root       155 ki31     0K   128K CPU2    2 148:42 99.66% idle{idle: cpu2}
> 
>    11 root       155 ki31     0K   128K CPU7    7 149:24 99.27% idle{idle: cpu7}
> 
>    11 root       155 ki31     0K   128K RUN     0 148:00 99.27% idle{idle: cpu0}
> 
>    11 root       155 ki31     0K   128K CPU1    1 149:44 99.17% idle{idle: cpu1}
> 
>    11 root       155 ki31     0K   128K CPU5    5 148:46 99.17% idle{idle: cpu5}
> 
>    11 root       155 ki31     0K   128K CPU3    3  96:57 89.06% idle{idle: cpu3}
> 
>    11 root       155 ki31     0K   128K RUN     6 149:11 13.87% idle{idle: cpu6}
> 
> 
> 
> One interesting thing I observed is that intr is taking 100% on CPU6 when
> iperf hangs, while iperf is running fine, the intr WCPU percentage is very
> low. What does this below line mean? Why intr is 100% on CPU6??
> 
> 12 root       -60    -     0K   688K CPU6    6  52:38 100.00% intr{swi4: clock}

This is the thread that runs timers configured via callout_reset() or
timeout().  Those are handled differently in 10 than in older branches.
I suspect you have a callout that is rescheduling itself constantly or
some such.

-- 
John Baldwin


More information about the freebsd-current mailing list