Revision tags: v2.3.2 |
|
#
c6218e1e |
| 13-Jun-2009 |
Sascha Wildner <saw@online.de> |
Fix several 'cound' typos.
|
Revision tags: v2.3.1, v2.2.1 |
|
#
2eb0d069 |
| 21-Mar-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
ether_input/rss: Pass packet info to ether_input_chain.
- Pass packet info to ether_input_chain(), if netisr_find_pktinfo_port() could locate the msgport, then short circuit the rest of the ether_
ether_input/rss: Pass packet info to ether_input_chain.
- Pass packet info to ether_input_chain(), if netisr_find_pktinfo_port() could locate the msgport, then short circuit the rest of the ether_input code and dispatch the ethernet packet directly. - Revoke the pi_hash field in pktinfo and extend the pktinfo_portfn_t to accpet an mbuf parameter, so that pktinfo_portfn_t could change the mbuf hash value. e.g. pktinfo_portfn_cpu0() will always set m_pkthdr.hash to 0. - Adjust ether_input_chain() callers accordingly.
show more ...
|
Revision tags: v2.2.0, v2.3.0 |
|
#
8ed6a3af |
| 22-Jan-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
nfe(4): Coherent memory does not need to be synced
|
#
b6bb439d |
| 18-Jan-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
nfe(4): Utilize bus_dmamap_load_mbuf_{segment,defrag}()
|
#
90a9e482 |
| 18-Jan-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
busdma(9): Add BUS_DMA_ALIGNED hint flag
This flag is used to give hint to busdma(9) that all to-be-loaded memory is proper aligned, thus no bounce pages should be allocated. This will be used when
busdma(9): Add BUS_DMA_ALIGNED hint flag
This flag is used to give hint to busdma(9) that all to-be-loaded memory is proper aligned, thus no bounce pages should be allocated. This will be used when busdma obeys alignment requirement.
It could save us some bounce page memory under following situation: Some NICs require RX buffer to be 4 or 8 bytes aligned while our mbuf cluster allocation always promises 2048 bytes alignment.
Rename BUS_DMA_ONEPAGE to BUS_DMA_ONEBPAGE, should have done that in the first place though ...
show more ...
|
#
e679c149 |
| 17-Jan-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
nfe(4): busdma(9) fixes
On RX path: - Unload busdma map iff the map has already been loaded - Add missing bus_dmamap_sync()
On TX path: - Reduce log verbosity - Move buffer content's bus_dmamap_syn
nfe(4): busdma(9) fixes
On RX path: - Unload busdma map iff the map has already been loaded - Add missing bus_dmamap_sync()
On TX path: - Reduce log verbosity - Move buffer content's bus_dmamap_sync() to the proper place
Misc: - Nuke unnecessary bus_dmamap_sync()
show more ...
|
#
7752918d |
| 17-Jan-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
nfe(4): Always set high part of the address if the NIC supports 40bits address space accessing.
|
#
244a9aa3 |
| 17-Jan-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
nfe(4): busdma(9) correction
- Use bus_dmamem_coherent() - Fix busdma(9) parameters
|
Revision tags: v2.1.1 |
|
#
46d50f4b |
| 28-Oct-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Recollect TX/RX descriptors if we are going to switch back to TX/RX interrupts, mainly to avoid the _possible_ race between turning on TX/RX interrupts and asserting TX/RX interrupt by hardware. Tho
Recollect TX/RX descriptors if we are going to switch back to TX/RX interrupts, mainly to avoid the _possible_ race between turning on TX/RX interrupts and asserting TX/RX interrupt by hardware. Though nfe(4) does not seem to suffer the problem, which I have seen on re(4), we still apply the same fix here; better safe than sorry.
show more ...
|
Revision tags: v2.0.1 |
|
#
a75a1559 |
| 17-Sep-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Always enable ETHER_INPUT_CHAIN support
|
#
50098e2e |
| 17-Sep-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Remove the '2' suffix from ether_input_chain and vlan_input; their counterparts have gone for a long time.
|
#
297c8124 |
| 27-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Switch to ETHER_INPUT2 on ethernet input path by default: - Nuke old ether_input_chain and ether_demux_chain - Nuke old vlan_input - Nuke ETHER_INPUT2 kernel option - Adjust comment about functions o
Switch to ETHER_INPUT2 on ethernet input path by default: - Nuke old ether_input_chain and ether_demux_chain - Nuke old vlan_input - Nuke ETHER_INPUT2 kernel option - Adjust comment about functions on old ether input path - Adjust NIC drivers which aware ETHER_INPUT2
vlan(4): Clearing of ifnet.if_vlantrunks is now protected in the following way trunks = ifp->if_vlantrunks; ifp->if_vlantrunks = NULL; netmsg_service_sync(); kfree(trunks); Users of ifnet.if_vlantrunks have already been adjusted to aware of this.
bridge(4): Clearing of ifnet.if_bridge is now protected in the following way ifp->if_bridge = NULL; netmsg_service_sync(); Users of ifnet.if_bridge have already been adjusted to aware of this.
carp(4): Remove the LK_NOWAIT lockmgr lock flags; using LK_NOWAIT was actually a workaround for that lockmgr lock was used in NIC's interrupt routine (i.e. old ether_input) Dragonfly-bug: <http://bugs.dragonflybsd.org/issue957>
ipflow: - Now per-cpu ipflow hash table installs its own ipflow entry instead of having ipflow entry duplicated onto each cpu - Remove the serializer parameter to ipflow_fastforward() - Comment out ipflow_fastforward() in ef(4) and ppp(4), they need to be changed to fit the current ipflow cpu localization model
show more ...
|
#
517ed06d |
| 26-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Enable hardware timer simulated interrupt moderation by default. The interrupt rate is throttled @8000Hz.
|
#
c0dcc88e |
| 22-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Add serializer assertion in all NIC driver interfaces
|
#
d378110e |
| 12-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Check number of free TX descs before trying to xmit packets - Recollect TX descs in nfe_start() if nfe(4) is going to enter OACTIVE - Use dynamic segment limit for bus_dmamap_load() in nfe_encap()
- Check number of free TX descs before trying to xmit packets - Recollect TX descs in nfe_start() if nfe(4) is going to enter OACTIVE - Use dynamic segment limit for bus_dmamap_load() in nfe_encap()
This change gives me following result on AMD64X2 3600+ with MCP51:
10 seconds, TX 64bytes packets, before/after
256 TX desc imtimer | packets | if_snd full | if_oerrors -125 1.08M/1.08M 84532/82786 90/0 -250 990K/1.08M 3735886/157125 38872/0
4096 TX desc imtimer | packets | if_snd full | if_oerrors -125 1.08M/1.09M 0/0 45/0 -250 1.08M/1.10M 0/0 39/0
It gives great improvement when number of TX desc is 256 (default), and it at least will not loose any packets if number TX desc is 4096.
show more ...
|
#
b4633098 |
| 12-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Add tunable for number of TX desc
|
#
77cdd7f0 |
| 12-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Prepare to rework nfe_start(): Allow number of segments to exceeds the limit set by the caller; caller detects and handles this error accordingly.
|
#
9e1f5a3c |
| 12-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Decrease NFE_MAX_SCATTER to 32, should be enough - Increase ifnet.if_snd length to (NFE_TX_RING_COUNT - 1)
|
#
c58816ed |
| 12-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Use softc sc_rx_ring_count to allocate jumbo frame instead of nfe_rx_ring_count
|
#
56fa71a9 |
| 12-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
- Correct max segment size passed to various bus_dma_tag_create() - Pass softc's sysctl context to SYSCTL_ADD_INT - Allow jumbo frame allocation to fail during attach. If jumbo frame allocation fa
- Correct max segment size passed to various bus_dma_tag_create() - Pass softc's sysctl context to SYSCTL_ADD_INT - Allow jumbo frame allocation to fail during attach. If jumbo frame allocation failed, then MTU was not allowed to set above ETHERMTU - Don't reinitialize device, if MTU is changed but the device is not running yet
show more ...
|
#
c4eebf3a |
| 09-Jul-2008 |
Thomas Nikolajsen <thomas@dragonflybsd.org> |
Change name of kernel tunable from imtime to imtimer, to match name of corresponding sysctl variable.
Update nfe.4 with support for MCP73/77/79, and add description of sysctl variables / tunables.
|
#
ce000928 |
| 07-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
White space
|
#
ece56005 |
| 07-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
The MAC address of nfe(4), whose device id is above MCP55, is saved in different order than older ones. Model numbers from forthdeth.
Reported-by: Michael Neumann <mneumann@ntecs.de>
|
#
04b9ef8d |
| 05-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Use hardware timer to simulate interrupt moderation.
hw.nfeX.imtimer -> 0 no interrupt moderation at all. hw.nfeX.imtimer -> -Y hardware timer simulated interrupt moderation,
Use hardware timer to simulate interrupt moderation.
hw.nfeX.imtimer -> 0 no interrupt moderation at all. hw.nfeX.imtimer -> -Y hardware timer simulated interrupt moderation, the simultated interrupt moderation timer will be set to Y. hw.nfeX.imtimer -> Y hardware timer only interrupt moderation, hardware timer will be set to Y.
Set hw.nfeX.imtimer to -125 (8000Hz) should work on most system.
With heavier interrupt moderation (e.g. hw.nfeX.imtimer to -250), it is recommended to increase hw.nfe.rx_ring_count tunable to a higher value (e.g. 512), since the default value (128) is obviously too small.
show more ...
|
#
5dc1e30e |
| 05-Jul-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Split hardware capabilities and softc flags
|