powerd vs network throughput

From: Bartosz Stec <admin_at_kkip.pl>
Date: Mon, 08 Nov 2010 12:45:47 +0100
  Hello.

I'm using r214746 FreeBSD system as a home fileserver/router, with 
athlon xp mobile onboard:

    CPU: mobile AMD Athlon(tm) XP 2200+ (1800.10-MHz 686-class CPU)
       Origin = "AuthenticAMD"  Id = 0x681  Family = 6  Model = 8 
    Stepping = 1
      
    Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
       AMD Features=0xc0480800<SYSCALL,MP,MMX+,3DNow!+,3DNow!>

I've set powerd in rc.conf:

    powerd_enable="YES"
    powerd_flags="-a hadp -b hadp -n max"

And it seems to work as intended:

    # sysctl -a | grep cpu
    kern.ccpu: 0
    kern.sched.cpusetsize: 4
    kern.smp.cpus: 1
    kern.smp.maxcpus: 1
    net.inet.tcp.per_cpu_timers: 0
    debug.cpufreq.verbose: 0
    debug.cpufreq.lowest: 0
    hw.ncpu: 1
    hw.acpi.cpu.cx_lowest: C1
    security.jail.param.cpuset.id: 0
    dev.cpu.0.%desc: ACPI CPU
    dev.cpu.0.%driver: cpu
    dev.cpu.0.%location: handle=\_PR_.CPU1
    dev.cpu.0.%pnpinfo: _HID=none _UID=0
    dev.cpu.0.%parent: acpi0
    dev.cpu.0.freq: 787
    dev.cpu.0.freq_levels: 1800/-1 1687/-1 1575/-1 1462/-1 1350/-1
    1237/-1 1125/-1 1012/-1 900/-1 787/-1 675/-1 562/-1 450/-1 337/-1
    225/-1 112/-1
    dev.cpu.0.cx_supported: C1/0
    dev.cpu.0.cx_lowest: C1
    dev.cpu.0.cx_usage: 100.00% last 834us
    dev.acpi_throttle.0.%parent: cpu0
    dev.cpufreq.0.%driver: cpufreq
    dev.cpufreq.0.%parent: cpu0

PC is connected to home network via 3Com NIC:

    xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0xec00-0xec7f mem
    0xdfffff80-0xdfffffff irq 17 at device 6.0 on pci0
    miibus0: <MII bus> on xl0
    xlphy0: <3Com internal media interface> PHY 0 on miibus0
    xlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    xlphy1: <3Com internal media interface> PHY 24 on miibus0
    xlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    xl0: Ethernet address: 00:50:da:d8:23:cd

# ifconfig xl0
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=82009<RXCSUM,VLAN_MTU,WOL_MAGIC,LINKSTATE>
         ether 00:50:da:d8:23:cd
         inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
         inet6 fe80::250:daff:fed8:23cd%xl0 prefixlen 64 scopeid 0x1
         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
         media: Ethernet autoselect (100baseTX <full-duplex>)
         status: active

Now here's the problem:
When I try to write a file on a samba share on this PC while it's idle, 
I got ridiculous throughput like 6-120kB/s on 100Mbit link, but If 
machine is busy, speed increase to 5-6 MB/s. It seems that throughput is 
limited by CPU frequency and powerd doesn't increase cpu frequency level 
in this case (I suppose that if CPU is set at very low frequency, it's 
dealing mostly with interrupt requests from NIC). Is it expected 
behaviour? I hope not because it makes powerd useless on fileserver ;)

If it's worth anything this is ZFS-only RAIDZ system with 1GB RAM.

-- 
Bartosz Stec
Received on Mon Nov 08 2010 - 11:10:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:08 UTC