History log of /freebsd-10.1-release/sys/dev/cxgb/cxgb_main.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 272461 02-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 250697 16-May-2013 kib

Add dependencies on the firmware, which allows the loading of the cxgb
and cxgbe modules.

Reviewed and approved by: np
MFC after: 1 week


# 243857 04-Dec-2012 glebius

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags in sys/dev.


# 241844 22-Oct-2012 eadler

remove duplicate semicolons where possible.

Approved by: cperciva
MFC after: 1 week


# 240680 18-Sep-2012 gavin

Align the PCI Express #defines with the style used for the PCI-X
#defines. This also has the advantage that it makes the names more
compact, iand also allows us to correct the non-uniform naming of
the PCIM_LINK_* defines, making them all consistent amongst themselves.

This is a mostly mechanical rename:
s/PCIR_EXPRESS_/PCIER_/g
s/PCIM_EXP_/PCIEM_/g
s/PCIM_LINK_/PCIEM_LINK_/g

When this is MFC'd, #defines will be added for the old names to assist
out-of-tree drivers.

Discussed with: jhb
MFC after: 1 week


# 239913 30-Aug-2012 jhb

Attach interrupt handlers during attach instead of during the first time
the interface is brought up. Without this, the boot time interrupt
round-robin assignment does not think the allocated interrupt resources
are active and leaves them assigned to CPU 0.

While here, add descriptive tags to each interrupt handler when MSI-X
is used.

Reviewed by: np
MFC after: 1 week


# 237832 30-Jun-2012 np

cxgb(4): IPv6 rx/tx hw checksum, IPv6 TSO and LRO too.

(Some parts already worked, this makes it complete).


# 237263 19-Jun-2012 np

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
These are available as t3_tom and t4_tom modules that augment cxgb(4)
and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as
usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the
works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded? Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by: bz, gnn
Sponsored by: Chelsio communications.
MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)


# 231317 09-Feb-2012 np

Add IPv6 TSO (including TSO+VLAN) support to cxgb(4).

If an IPv6 packet has extension headers the kernel needs to deal with it
itself. For the rest it can set various CSUM_XXX flags and the driver
will act on them.


# 231175 08-Feb-2012 np

Allocate the BAR for userspace doorbells after the is_offload check
is functional.

MFC after: 3 days


# 231116 07-Feb-2012 np

Remove if_start from cxgb and cxgbe.

Submitted by: jhb
MFC after: 3 days


# 227843 22-Nov-2011 marius

- There's no need to overwrite the default device method with the default
one. Interestingly, these are actually the default for quite some time
(bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9)
since r52045) but even recently added device drivers do this unnecessarily.
Discussed with: jhb, marcel
- While at it, use DEVMETHOD_END.
Discussed with: jhb
- Also while at it, use __FBSDID.


# 219946 23-Mar-2011 np

t3_free_sge_resources should be given the number of qsets it needs to free.

MFC after: 1 week


# 219902 23-Mar-2011 jhb

Do a sweep of the tree replacing calls to pci_find_extcap() with calls to
pci_find_cap() instead.


# 218909 21-Feb-2011 brucec

Fix typos - remove duplicate "the".

PR: bin/154928
Submitted by: Eitan Adler <lists at eitanadler.com>
MFC after: 3 days


# 217321 12-Jan-2011 mdf

sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.

Commit the cxgb driver piece.


# 211345 15-Aug-2010 np

wakeup is required if the adapter lock is released anywhere during
init and not just for the may_sleep case.

Pointed out by: Isilon
MFC after: 3 days


# 210505 26-Jul-2010 jhb

- Change the warning about PCI-e links narrower than x8 to only apply to
10G cards. 1G cards are x4 only.
- Use constants from pcireg.h for reading the current link width.
- Use pci_set_max_read_req() rather than implementing it by hand.

Reviewed by: np
MFC after: 1 week


# 209841 08-Jul-2010 np

Improve cxgb(4)'s behaviour when faced with temporarily "bouncy" links:
- Run the adapter's tick at 1Hz and remove link state checks from it.
Instead, have each port check its link state. Delay the check so that
it takes place slightly after the driver is notified of a change in
link state. This is a cheap way to debounce these notifications if
many are received in rapid succession. POLL_LINK_1ST_TIME flag can
also be eliminated as a side effect of these changes.
- Do not reset the PHY when link goes down.
- Clear port's link_fault flag if the PHY indicates link is down.
- get_link_status_r should leave speed and duplex alone when link is down.

MFC after: 1 month


# 209840 08-Jul-2010 np

Eliminate ext_intr_task. The "slow" interrupt handler is already
running on the adapter's task queue. Just do what the task does
instead of enqueueing it.

MFC after: 3 days


# 209839 08-Jul-2010 np

Fix bufsize calculation so that cxgbtool can display information for the
last I/O queue too.

MFC after: 3 days


# 209115 12-Jun-2010 np

make format string a string literal.

Reported by: clang


# 208887 07-Jun-2010 np

cxgb(4): add an 'nfilters' tunable that lets the user place an upper
limit on the number of hardware filters (and thus the amount of TCAM
reserved for filtering).


# 208356 20-May-2010 np

Remove invalid assertion.

Holding the adapter lock while changing the LRO settings is sufficient.

PR: kern/146759
MFC after: 3 days


# 207687 05-May-2010 np

Do not hold the T3 firmware in memory all the time. firmware(9) can
load/unload it as needed.


# 207643 04-May-2010 np

Add support for hardware filters to cxgb(4). The T3 chip can inspect
L2/3/4 headers and can drop or steer packets as instructed. Filtering
based on src ip, dst ip, src port, dst port, 802.1q, udp/tcp, and mac
addr is possible. Add support in cxgbtool to program these filters.
Some simple examples:

Drop all tcp/80 traffic coming from the subnet specified.
# cxgbtool cxgb2 filter 0 sip 192.168.1.0/24 dport 80 type tcp action drop

Steer all incoming UDP traffic to qset 0.
# cxgbtool cxgb2 filter 1 type udp queue 0 action pass

Steer all tcp traffic from 192.168.1.1 to qset 1.
# cxgbtool cxgb2 filter 2 sip 192.168.1.1 type tcp queue 1 action pass

Drop fragments.
# cxgbtool cxgb2 filter 3 type frag action drop

List all filters.
# cxgbtool cxgb2 filter list
index SIP DIP sport dport VLAN PRI P/MAC type Q
0 192.168.1.0/24 0.0.0.0 * 80 0 0/1 */* tcp -
1 0.0.0.0/0 0.0.0.0 * * 0 0/1 */* udp 0
2 192.168.1.1/32 0.0.0.0 * * 0 0/1 */* tcp 1
3 0.0.0.0/0 0.0.0.0 * * 0 0/1 */* frag -
16367 0.0.0.0/0 0.0.0.0 * * 0 0/1 */* * *

MFC after: 2 weeks


# 207639 04-May-2010 np

Add IFCAP_LINKSTATE to cxgb's capabilities.

MFC after: 3 days


# 207554 03-May-2010 sobomax

Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.

MFC after: 1 month


# 206109 02-Apr-2010 np

Increase response queue size to avoid starvation, add a counter
to track it when it does occur.


# 205950 30-Mar-2010 np

Multiple fixes related to queue set sizing and resources:

- Only the tunnelq (TXQ_ETH) requires a buf_ring, an ifq, and the watchdog/timer
callouts. Do not allocate these for the other tx queues.

- Use 16k jumbo clusters only on offload capable cards by default.

- Do not allocate a full tx ring for the offload queue if the card is not
offload capable.

- Slightly better freelist size calculation.

- Fix nmbjumbo4 typo, remove unneeded global variables.

MFC after: 3 days


# 205948 30-Mar-2010 np

Fix tx drop statistics.

MFC after: 3 days


# 205946 30-Mar-2010 np

Do not attempt to retrieve interrupt information before it is available.

MFC after: 3 days


# 205944 30-Mar-2010 np

Refresh the firmware version immediately after it is upgraded (or downgraded).

MFC after: 3 days


# 204921 09-Mar-2010 np

Better TwinAx transceiver detection.

Originally submitted by: <Bruno dot Bittner at isilon dot com>
(This is a rewritten, corrected version of that patch)

MFC after: 1 week


# 204348 26-Feb-2010 np

Support IFCAP_VLANHWTSO in cxgb(4). It works with or without vlanhwtag.
While here, remove old DPRINTFs and tidy up the capability code a bit.


# 204274 24-Feb-2010 np

There is no need to test __FreeBSD_version for features that have
been around for a long time now (7.1-ish or even earlier); assume
they are present. These includes MSI, TSO, LRO, VLAN, INTR_FILTERS,
FIRMWARE, etc.

Also, eliminate some dead code and clean up in other places as part
of this quick once-over.

MFC after: 1 week


# 202863 22-Jan-2010 np

Don't forget to release the adapter lock for a no-op.


# 202671 20-Jan-2010 np

Fix for a cxgb(4) panic. cxgb_ioctl can be called by the IP and IPv6
layers with non-sleepable locks held. Don't (potentially) sleep in
those situations.


# 199240 12-Nov-2009 np

Don't disable the XGMAC's tx on ifconfig down. It is unnecessary
and can cause false backpressure in the chip. Fix a us/ms mixup
while here.


# 199237 12-Nov-2009 np

sc->rev and is_offload(sc) will always be 0 during probe. Wait till
attach to get correct values.


# 198988 06-Nov-2009 jhb

Take a step towards removing if_watchdog/if_timer. Don't explicitly set
if_watchdog/if_timer to NULL/0 when initializing an ifnet. if_alloc()
sets those members to NULL/0 already.


# 197791 05-Oct-2009 np

cxgb(4) updates, including:
- support for the new Gen-2, BT, and LP-CR cards.
- T3 firmware 7.7.0
- shared "common code" updates.

Approved by: gnn (mentor)
Obtained from: Chelsio
MFC after: 1 month


# 196840 04-Sep-2009 jhb

Fill the reverse RSS map with 0xff's so that the subsequent loop to
calculate the values will work properly.

Reviewed by: np
MFC after: 1 month


# 194921 24-Jun-2009 np

Various ifmedia related fixes in cxgb(4), including:

- build ifmedia list based on phy->caps, not string comparisons.
- rebuild media list when a transceiver change is detected.
- return EOPNOTSUPP instead of ENXIO in cxgb_media_status.

Approved by: gnn (mentor)
MFC after: 2 weeks.


# 194661 22-Jun-2009 np

Fix cxgb's ifmedia ioctl handling. Also fixed a comment.

Reviewed by: kmacy
Approved by: gnn (mentor)


# 194521 19-Jun-2009 kmacy

Greatly simplify cxgb by removing almost all of the custom mbuf management logic

- remove mbuf iovec - useful, but adds too much complexity when isolated to
the driver

- remove driver private caching - insufficient benefit over UMA to justify
the added complexity and maintenance overhead

- remove separate logic for managing multiple transmit queues, with the
new drbr routines the control flow can be made to much more closely resemble
legacy drivers

- remove dedicated service threads, with per-cpu callouts one can get the same
benefit much more simply by registering a callout 1 tick in the future if there
are still buffered packets

- remove embedded mbuf usage - Jeffr's changes will (I hope) soon be integrated
greatly reducing the overhead of using kernel APIs for reference counting
clusters

- add hysteresis to descriptor coalescing logic

- add coalesce threshold sysctls to allow users to decide at run-time
between optimizing for forwarding / UDP or optimizing for TCP

- add once per second watchdog to effectively close the very rare races
occurring from coalescing

- incorporate Navdeep's changes to the initialization path required to
convert port and adapter locks back to ordinary mutexes (silencing BPF
LOR complaints)

- enable prefetches in get_packet and tx cleaning

Reviewed by: navdeep@
MFC after: 2 weeks


# 194039 11-Jun-2009 gnn

Re-add the send queue tunable for people who do not use buffering.

Reviewed by: jhb
MFC after: 3 days


# 192933 27-May-2009 gnn

Rework interrupt bringup and teardown.

Calculate the exact number of vectors we'll use before calling
pci_alloc_msix. Don't grab nine all the time.

Call cxgb_setup_interrupts once per T3, not once per port. Ditto
for cxgb_teardown_interrupts.

Don't leak resources when interrupt setup fails in the middle.

Obtained from: Navdeep Parhar
MFC after: 10 days


# 192593 22-May-2009 gnn

Partial reversion of previous commit. The CXGB_SHUTDOWN flag does NOT
need to be inverted when doing an ifconfig down of an interface.

Pointed out by: Navdeep Parhar
MFC after: 1 week


# 192584 22-May-2009 gnn

Fix a possible panic cxgb_controller_attach() routine that would occur
only if prepping the adapter failed.

Slight adjustment to comments.

Fix a bug whereby downing the interface didn't preven it from
processing packets.

Submitted by: Navdeep Parhar
MFC after: 1 week


# 192540 21-May-2009 gnn

Integrate three changes from Chelsio.

1) Add a sysctl that will say what type of PHYs exist on the card.
2) Fix a bug that occurs when an AEL 2005 PHY resets without a transciever
in the card.
3) Unify the PHY link detection code.

Obtained from: Navdeep Parhar
MFC after: 10 days


# 192537 21-May-2009 gnn

Modified the attach and detach routines to handle bringing ports up
and down more cleanly. This addresses a problem where if we have the
link flap during boot the driver would lock up the system.

Reviewed by: jhb
MFC after: 1 week


# 192450 20-May-2009 imp

We no longer need to use d_thread_t, migrate to struct thread *.


# 190330 23-Mar-2009 gnn

Minor updates to the Chelsio driver, including removing an LOR.

Submitted by: Navdeep Parhar at Chelsio
Reviewed by: gnn
MFC after: 3 weeks


# 190206 21-Mar-2009 gnn

Fix a bug in the recent update to the Chelsio driver.
The tick routine was not being restarted in the init_locked routine
which could resulted in loss of carrier when updating the MTU.

Submitted by: Navdeep Parhar at Chelsio
MFC after: 3 weeks


# 189643 10-Mar-2009 gnn

Update the Chelsio driver to the latest bits from Chelsio

Firmware upgraded to 7.1.0 (from 5.0.0).
T3C EEPROM and SRAM added; Code to update eeprom/sram fixed.
fl_empty and rx_fifo_ovfl counters can be observed via sysctl.
Two new cxgbtool commands to get uP logic analyzer info and uP IOQs
Synced up with Chelsio's "common code" (as of 03/03/09)

Submitted by: Navdeep Parhar at Chelsio
Reviewed by: gnn
MFC after: 2 weeks


# 186282 18-Dec-2008 gnn

Check in the actual module recognition code for the Chelsio
driver.

Obtained from: Chelsio Inc.


# 185662 06-Dec-2008 gnn

Bug fix to support N310 version of Chelsio cards (board ID 1088).

Obtained from: Chelsio Inc.
MFC after: 3 days


# 185655 05-Dec-2008 gnn

Re submit code to print the part and serial number for Chelsio cards.
The original code was accidentally removed in another commit.

MFC after: 1 day


# 185508 01-Dec-2008 kmacy

Update internal mac stats every time the tick task is called
if we don't do this "netstat -w 1" will frequently see negative
differences in packets sent


# 185506 01-Dec-2008 kmacy

Proper fix for tracking ifnet statistics


# 185199 23-Nov-2008 kmacy

Add backward compatibility ifdefs for non-multiq kernels


# 185191 22-Nov-2008 kmacy

intr_machdep.h breaks build on some arches and is not needed


# 185165 22-Nov-2008 kmacy

- enable multiple transmit queues
- invert sense of hw.cxgb.singleq tunable to hw.cxgb.multiq
- don't wake up transmitting thread by default
- add per tx queue ifaltq to handle ALTQ
- remove several unused functions in cxgb_multiq.c
- add several sysctls: multiq_tx_enable, coalesce_tx_enable,
and wakeup_tx_thread
- this obsoletes the hw.cxgb.snd_queue_len as ifq is replaced
by a buf_ring


# 185157 21-Nov-2008 gnn

Several small additions to the Chelsio 10G driver.

1) Fix a bug in dealing with the Alerus 1006 PHY which prevented the
device from ever coming back up once it had been set to down.

2) Add a kernel tunable (hw.cxgb.snd_queue_len) which makes it possible
to give the device more than IFQ_MAXLEN entries in its send queue. The
default remains 50.

3) Add code to place the card'd identification and serial number into
its description (%desc) so that users can tell which card they have
installed.


# 184714 06-Nov-2008 bz

Hide AF_INET specific ioctl handling under #ifdef INET.

Reviewed by: kmacy
MFC after: 2 months


# 183506 30-Sep-2008 kmacy

Make sure that optical PHYs work ...

Submitted by: Chelsio Inc.
MFC after: 1 day


# 183292 23-Sep-2008 kmacy

Update cxgb include paths to not require prefixing with dev/cxgb

Submitted by: Chelsio Inc.


# 183289 23-Sep-2008 kmacy

Allow cxgb to be unified across versions by making newer features conditional

Submitted by: Chelsio Inc
MFC after: 3 days


# 183063 16-Sep-2008 kmacy

Further whitespace and copyright cleanups to minimize the
delta with RELENG_7.


# 183062 16-Sep-2008 kmacy

White space cleanups to bring closer to RELENG_7


# 183059 15-Sep-2008 kmacy

Remove some dead code along with gratuitous differences between HEAD and 7


# 182882 08-Sep-2008 kmacy

Fix issue with recovering from transient jumbo mbuf shortage.

Submitted by: Chelsio Inc.
MFC after: 3 days


# 182695 02-Sep-2008 kmacy

Indicate at probe time if device can do offload and which revision it is

MFC after: 3 days


# 182679 02-Sep-2008 kmacy

Import ioctl updates for latest rev of cxgbtool

Obtained from: Chelsio Inc.
MFC after: 3 days


# 181652 12-Aug-2008 kmacy

Add LRO and MAC statistics to exported sysctls.

Obtained from: Chelsio Inc.
MFC after: 1 week


# 181616 11-Aug-2008 kmacy

Remove cxgb private lro implementation and switch to using system implementation.

Obtained from: Chelsio Inc.
MFC after: 1 week


# 181614 11-Aug-2008 kmacy

Vendor fix for PHY problem.

Obtained from: Chelsio Inc.
MFC after: 3 days


# 180583 18-Jul-2008 kmacy

import vendor fixes to cxgb


# 178767 04-May-2008 kmacy

MFSVN:
- add / remove clients from cxgb_main.c now
- change ifdef TOE_ENABLED to TCP_OFFLOAD_DISABLE
- update copyrights
- fix transmit data mismatch bug caused by not setting SB_NOCOALESCE
on tx sockbuf on passive connections
- fix receive sequence mismatch bug caused by not setting SB_NOCOALESCE
on rx sockbuf on passive connections
- don't sleep without checking SBS_CANTRCVMORE first
- various ddp ordering fixes

Supported by: Chelsio Inc.


# 178302 19-Apr-2008 kmacy

move cxgb_lt2.[ch] from NIC to TOE
move most offload functionality from NIC to TOE
factor out all socket and inpcb direct access
factor out access to locking in incpb, pcbinfo, and sockbuf


# 177464 20-Mar-2008 kmacy

pay attention to default cluster limits when sizing receive queues


# 177415 19-Mar-2008 kmacy

fix link management bug and conditionally allow the PHY to be kept on at all times for allowing non-conformant link state checks


# 177340 18-Mar-2008 kmacy

- Integrate 1.133 vendor driver changes
- update some copyrights
- add improved support for delayed ack
- fix issue with fec


# 176613 26-Feb-2008 kmacy

move remaining binaries in to blob headers


# 176572 26-Feb-2008 kmacy

Move firmware in to separate module that can be compiled statically in to the kernel
Add utility for converting future firmware revs to a C header file


# 176472 22-Feb-2008 kmacy

- update firmware to 5.0
- add support for T3C
- add DDP support (zero-copy receive)
- fix TOE transmit of large requests
- fix shutdown so that sockets don't remain in CLOSING state indefinitely
- register listeners when an interface is brought up after tom is loaded
- fix setting of multicast filter
- enable link at device attach
- exit tick handler if shutdown is in progress
- add helper for logging TCB
- add sysctls for dumping transmit queues

- note that TOE wxill not be MFC'd until after 7.0 has been finalized

MFC after: 3 days


# 175389 16-Jan-2008 kmacy

Fix lock ordering panic by not calling ether_ioctl with port lock held

Reported by: rrs


# 175340 15-Jan-2008 kmacy

- move WR_LEN in to cxgb_adapter.h add PIO_LEN to make intent clearer
- move cxgb_tx_common in to cxgb_multiq.c and rename to cxgb_tx
- move cxgb_tx_common dependencies
- further simplify cxgb_dequeue_packet for the non-multiqueue case
- only launch one service thread per port in the non-multiq case
- remove dead cleaning code from cxgb_sge.c
- simplify PIO case substantially in by returning directly from mbuf collapse
and just using m_copydata
- remove gratuitous m_gethdr in the rx path
- clarify freeing of mbufs in collapse


# 175312 14-Jan-2008 kmacy

Make back pressure visible more quickly, particularly now that we maintain a queue internally


# 175305 13-Jan-2008 kmacy

Convert over to using the multiqueue infrastructure although all calls going
through cxgb_start still end up using queue 0


# 175224 11-Jan-2008 kmacy

Be more aggressive about tx cleaning - when multiples streams were running the tx
queue could fill up and stop getting cleaned.


# 175200 09-Jan-2008 kmacy

- make 9k clusters the default unless a tunable is set
- return the error from cxgb_tx_common so that when an error is hit we dont
spin forever in the taskq thread
- remove unused rxsd_ref
- simplify header_offset calculation for embedded mbuf headers
- fix memory leak by making sure that mbuf header initialization took place
- disable printf's for stalled queue, don't do offload/ctrl queue restart
when tunnel queue is restarted
- add more diagnostic information about the txq state
- add facility to dump the actual contents of the hardware queue using sysctl


# 174726 17-Dec-2007 kmacy

only include intr_machdep.h when it is needed for intr_bind
ia64 doesn't have an intr_machdep.h


# 174708 17-Dec-2007 kmacy

Make TCP offload work on HEAD (modulo negative interaction between sbcompress
and t3_push_frames).
- Import latest changes to cxgb_main.c and cxgb_sge.c from toestack p4 branch
- make driver local copy of tcp_subr.c and tcp_usrreq.c and override tcp_usrreqs so
TOE can also functions on versions with unmodified TCP

- add cxgb back to the build


# 174672 16-Dec-2007 kmacy

Use the vm include convention of busdma


# 174671 16-Dec-2007 kmacy

need M_IOVEC define


# 174626 15-Dec-2007 kmacy

Import updated support code for the TOM (tcp offload module).


# 172147 11-Sep-2007 kmacy

Evidently setup_rss needs to happen whenever bind_qsets is done. This fixes
a problem with jumbo frames when not using msi-x interrupts.

Supported by: Chelsio
Approved by: re (blanket)


# 172109 09-Sep-2007 kmacy

pull in changes made to RELENG_6 version in the process of doing the MFC

Supported by: Chelsio
Approved by: re (blanket)


# 172105 09-Sep-2007 kmacy

- Remove filter support

Supported by: Chelsio
Approved by: re(blanket)


# 172096 08-Sep-2007 kmacy

- fix qset to port binding as a proper fix for the problems encountered on the 4-port
- fix the use after free seen when sending packets small enough to fit as an immediate
and bpf peers are present
- update to firmware rev 4.7 along with various small vendor fixes

Supported by: Chelsio
Approved by: re (blanket)
MFC after: 3 days


# 171978 25-Aug-2007 kmacy

Fixes for 4 port and small packet optimization

- remove cpl->iff panic - we can't know the port number from the rspq on the 4-port
- pick the ifnet based on the interface in the CPL header
- switch to using qset 0 for egress on the 4-port for now - may change
when we start using RSS
- move ether_ifdetach to before the port lock gets deinitialized to avoid
hang in the case where there are BPF peers (cxgb_ioctl is called indirectly
when BPF peers are present)
- don't call t3_mac_reset if multiport is set, this was causing tx errors
by misconfiguring the MAC on the 4-port
- change V_TXPKT_INTF to use txpkt_intf as the interfaces are not contiguous
- free the mbuf immediately in the case where the payload is small enough to be copied
into the rspq
- only update the coalesce timer if for a queue if packets were taken off of it
- add in missed 20ms DELAY in initializaton vsc8211

- prompt MFC as this only applies to the 4-port which is currently completely
broken - OK'd by kensmith

Supported by: Chelsio
Approved by: re (blanket)
MFC after: 0 days


# 171868 17-Aug-2007 kmacy

forward port signedness fixes from RELENG_6
fix compile error for case where MSI_SUPPORTED not defined

Approved by: re (blanket)


# 171804 10-Aug-2007 kmacy

White space cleanups

Approved by: re (blanket)


# 171803 10-Aug-2007 kmacy

- In all structures other than port info port is a pointer to a port info,
make the code less confusing by renaming the port number to port_id

Approved by: re (blanket)


# 171471 17-Jul-2007 kmacy

- integrate most recent changes from vendor branch and upgrade to firmware revision 4.5.5
- add filter support
- further improvements for T304
- recover gracefully from spurious immediate packets

Approved by: re(blanket)
Supported by: Chelsio
MFC after: 3 days


# 171469 17-Jul-2007 kmacy

- Increase descriptors per call to start
- enqueue per-txq task
- fix per-txq task initialization

Approved by: re (blanket)


# 171335 10-Jul-2007 kmacy

MFp4 122896
- reduce cpu usage by as much as 25% (40% -> 30) by doing txq reclaim more efficiently
- use mtx_trylock when trying to grab the lock to avoid spinning during long encap loop
- add per-txq reclaim task
- if mbufs were successfully re-claimed try another pass
- track txq overruns with sysctl

Approved by: re (blanket)


# 170869 17-Jun-2007 kmacy

- switch adapter and port lock over to using sx so that resources
can be allocated atomically
- add debug macros for printing lock initialization / teardown
- add buffers to port_info and adapter to allow each lock to have a
unique name
- destroy mutexes initialized by cxgb_offload_init
- remove recursive calls to ADAPTER_LOCK
- move callout_drain calls so that they don't occur with the lock held
- ensure that only as many qsets as are needed are initialized and
destroyed

MFC after: 3 days
Sponsored by: Chelsio Inc.


# 170789 15-Jun-2007 kmacy

Fix build warnings
Submitted by: mjacob@


# 170654 13-Jun-2007 kmacy

- import new common code for the T304
- update to firmware version 4.1.0

- switch over to standard method for initializing cdevs (contributed by scottl@)
- break out timer_reclaim_task to be per-port
- move msix teardown into separate function
- fix bus_setup_intr for msi-x for the multi-port case so that msi-x resources
are not corrupted on unload
- handle 10/100/1000 base-T media and auto negotiation
- bind qset to cpu even for singleq case
- white space cleanups
- remove recursive PORT_LOCK
- move mtu setting to separate function
- stop and re-init port when changing mtu
- replace all direct references to m_data with calls to mtod
- handle attach failure better by not trying to de-initialize
taskqueues when they have not been allocated
- no longer default to jumbo frames

Sponsored by: Chelsio
MFC after: 3 days


# 170197 02-Jun-2007 kmacy

remove pointless recursive acquisition of port lock in cxgb_init_locked


# 170083 29-May-2007 kmacy

Fix case of setting OACTIVE erroneously


# 170081 29-May-2007 kmacy

Fix interrupt setup for the non-MSI-X case


# 170076 28-May-2007 kmacy

When building cxgb as a module make include paths relative to the driver's root.
This will make it possible to build the module out of tree against an older src tree.

MFC after: 3 days


# 170037 27-May-2007 kmacy

Don't bind queue to cpus if only one queue is in use


# 170007 27-May-2007 kmacy

set IFF_OACTIVE to avoid hangs when the tx ring fills up


# 169978 25-May-2007 kmacy

(MFp4)
- upgrade to reflect state of 1.0.0.86
- move from firmware rev 3.2 to 4.0.0
- import driver bits for offload functionality
- remove binary distribution clause from top level files as it
runs counter to the intent of purely supporting the hardware

MFC after: 3 days


# 169053 26-Apr-2007 kmacy

Default to using a single queue as this is currently the only way to achieve
line rate


# 168749 15-Apr-2007 kmacy

Add sysctl for disabling/enabling mbuf chain collapsing
remove map creation before calling bus_dmamap_load_mvec_sg


# 168737 14-Apr-2007 kmacy

Add support for mbuf iovec in the TX path


# 168642 12-Apr-2007 kmacy

Add ETHER_HDR_LEN to hardware accepted mtu

MFC after: 3 days


# 167862 24-Mar-2007 kmacy

bus_size_t is a bad cross-architectural type with respect to printf, use uint32_t instead


# 167848 23-Mar-2007 kmacy

- Increase coalesce_nsecs
- commit fixes for the following coverity warnings: 1765, 1760, 1758, 1756


# 167840 23-Mar-2007 kmacy

Check PCI-e link width to avoid foot shooting with 4x links

MFC after: 3 days


# 167769 21-Mar-2007 kmacy

move call to t3_prep_adapter earlier in attach before msi-x setup occurs

this works around the fact that pci_config_{save,restore} doesn't adequately
restore state for msi-x

MFC after: 3 days


# 167762 21-Mar-2007 kmacy

allocate 9 messages in all cases


# 167760 21-Mar-2007 kmacy

make MSI-X the default and allocate up to mp_ncpus queues per port

MFC after: 3 days


# 167746 20-Mar-2007 kmacy

Synchronize with version 1.0.071 of Chelsio's common code
(with the notable exception of improvements for using multiple TX queues)

This adds support for the T3B2 ASIC rev

Obtained from: Chelsio
MFC after: 3 days


# 167734 20-Mar-2007 kmacy

cxgb_stop is only called from cxgb_ioctl so:
- don't acquire port lock, already held in ioctl
- rename to cxgb_stop_locked
- switch callout_drain to callout_stop to avoid a hang from having the port lock held


# 167538 14-Mar-2007 kmacy

play it safe for now and go back to kicking off tx cleaning from the tx path


# 167525 14-Mar-2007 kmacy

move taskqueue_enqueue of tx clean operation out of the start path


# 167514 14-Mar-2007 kmacy

First of several commits for driver support for the Chelsio T3B 10 Gigabit
Ethernet adapter.

Reviewed by: scottl, sam

For those interested in the preliminary performance work see below.

Plots of mxge vs. cxgb running netpipe:

blocksize vs. bandwidth:
http://www.fsmware.com/chelsio.random/bsvsbw.gif

blocksize vs. RTT:
First of several commits for driver support for the Chelsio T3B 10 Gigabit
Ethernet adapter.

Reviewed by: scottl, sam

For those interested in the preliminary performance work see below.

Plots of mxge vs. cxgb running netpipe:

blocksize vs. bandwidth:
http://www.fsmware.com/chelsio.random/bsvsbw.gif

blocksize vs. RTT:
http://www.fsmware.com/chelsio.random/bsvstime.gif

blocksize vs. RTT for block sizes <= 10kb:
http://www.fsmware.com/chelsio.random/bsvstime_10kb.gif
http://www.fsmware.com/chelsio.random/bsvstime_10kb3.gif