History log of /dragonfly/sys/dev/netif/nfe/if_nfe.c (Results 26 – 50 of 84)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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


1234