Vote count:
0
I have a SOEKRIS 4801 with a FreeBSD 7.4 kernel and am trying to get some more performance out of the Ethernet ports (sis0->sis1).
To do this I decided to enable the device polling on the sis driver/in the kernel.
I have built the kernel using the recommended options:
options DEVICE_POLLING
options HZ=1000
Everything builds and runs and I can output kernel polling options which previously wouldn't display anything using
sysctl -a kern.polling
kern.polling.idlepoll_sleeping: 1
kern.polling.stalled: 270
kern.polling.suspect: 773
kern.polling.phase: 0
kern.polling.enable: 0
kern.polling.handlers: 1
kern.polling.residual_burst: 0
kern.polling.pending_polls: 0
kern.polling.lost_polls: 156704
kern.polling.short_ticks: 1705
kern.polling.reg_frac: 20
kern.polling.user_frac: 50
kern.polling.idle_poll: 0
kern.polling.each_burst: 5
kern.polling.burst_max: 150
kern.polling.burst: 150
(stalled/suspect and lost don't look good!)
I boot and enable polling on the adaptors using "ifconfig sis0 polling" etc for sis0, sis1 and sis2.
ifconfig shows POLLING is enabled:
sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3848<VLAN_MTU,POLLING,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
ether 00:00:24:xx:6a:yy
inet 192.168.13.100 netmask 0xffffff00 broadcast 192.168.13.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
However, when I monitor the interrupts occurring using "vmstat -i" and transfer data, interrupts are still occurring on the adaptors. According to various guides like this, interrupts should not increment if polling is in use.
The throughput is pretty dire, hence looking to get some more speed as people report 5MB is possible:
input (Total) output
packets errs bytes packets errs bytes colls
1.8K 0 1.7M 1.8K 0 1.7M 0
1.7K 0 1.7M 1.7K 0 1.7M 0
1.7K 0 1.7M 1.7K 0 1.7M 0
1.8K 0 1.7M 1.8K 0 1.7M 0
1.8K 0 1.7M 1.8K 0 1.7M 0
1.8K 0 1.7M 1.8K 0 1.7M 0
Currently the bottleneck shows to be >95% interrupt time during a speed test hence looking to enable device polling.
Any ideas why interrupts continue as if device polling is not in use?
Thanks
Aucun commentaire:
Enregistrer un commentaire