summaryrefslogtreecommitdiffstats
path: root/sys/dev/cxgb
Commit message (Collapse)AuthorAgeFilesLines
* Update T3 firmware to 7.11.0np2011-03-252-1493/+1527
| | | | | | | | | | | | | | | | Changes since 7.8.0 (from the official changelog): - Fixed sporadic interrupt generation for associated CQ when processing a local invalidate work request - Changes to core scheduling to avoid starving requests from the host under heavy RDMA Read Request load (e.g. packets to the wire) - Programmed the tp tx resource limiter in function of the traffic (only affects iWarp) - Increased the egress NIC gather list length from 36 to 46 entries MFC after: 1 week
* t3_free_sge_resources should be given the number of qsets it needs to free.np2011-03-243-12/+9
| | | | MFC after: 1 week
* T3C initialization should setup the parity fence too.np2011-03-241-2/+3
| | | | MFC after: 1 week
* Do a sweep of the tree replacing calls to pci_find_extcap() with calls tojhb2011-03-231-1/+1
| | | | pci_find_cap() instead.
* Fix typos - remove duplicate "the".brucec2011-02-211-2/+2
| | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
* Explicitly wire the user buffer rather than doing it implicitly inmdf2011-01-271-2/+9
| | | | | | | | sbuf_new_for_sysctl(9). This allows using an sbuf with a SYSCTL_OUT drain for extremely large amounts of data where the caller knows that appropriate references are held, and sleeping is not an issue. Inspired by: rwatson
* Introduce signed and unsigned version of CTLTYPE_QUAD, renamingmdf2011-01-191-2/+2
| | | | existing uses. Rename sysctl_handle_quad() to sysctl_handle_64().
* sysctl(8) should use the CTLTYPE to determine the type of data whenmdf2011-01-191-2/+2
| | | | | | | | | | | reading. (This was already done for writing to a sysctl). This requires all SYSCTL setups to specify a type. Most of them are now checked at compile-time. Remove SYSCTL_*X* sysctl additions as the print being in hex should be controlled by the -x flag to sysctl(8). Succested by: bde
* sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.mdf2011-01-123-24/+24
| | | | Commit the cxgb driver piece.
* Introduce and use a new VM interface for temporarily pinning pages. Thisalc2010-12-254-198/+9
| | | | | | | new interface replaces the combined use of vm_fault_quick() and pmap_extract_and_hold() throughout the kernel. In collaboration with: kib@
* The local variable "rv" is still required by vm_fault_hold_user_pages().alc2010-12-201-3/+3
|
* Introduce vm_fault_hold() and use it to (1) eliminate a long-standing racealc2010-12-201-13/+4
| | | | | | | | | | condition in proc_rwmem() and to (2) simplify the implementation of the cxgb driver's vm_fault_hold_user_pages(). Specifically, in proc_rwmem() the requested read or write could fail because the targeted page could be reclaimed between the calls to vm_fault() and vm_page_hold(). In collaboration with: kib@ MFC after: 6 weeks
* Implement and use a single optimized function for unholding a set of pages.alc2010-12-174-18/+4
| | | | Reviewed by: kib@
* fix incorrect use of atomic_set_xxx in cxgbavg2010-12-111-1/+1
| | | | | | | | | | There is no need to use an atomic operation at structure initialization time. Note that the file changed is not connected to the build at this time. Reviewed by: jhb (general issue) Approved by: np MFC after: 2 weeks
* Re-add r212370 now that the LOR in powerpc64 has been resolved:mdf2010-09-161-31/+17
| | | | | | | | | | | | Add a drain function for struct sysctl_req, and use it for a variety of handlers, some of which had to do awkward things to get a large enough SBUF_FIXEDLEN buffer. Note that some sysctl handlers were explicitly outputting a trailing NUL byte. This behaviour was preserved, though it should not be necessary. Reviewed by: phk (original patch)
* Fix t3_gate_rx_traffic and t3_open_rx_traffic. Parts of them always operatednp2010-09-151-9/+13
| | | | | | on XGMAC0 instead of the specified XGMAC. MFC after: 3 days
* Revert r212370, as it causes a LOR on powerpc. powerpc does a fewmdf2010-09-131-17/+31
| | | | | | | unexpected things in copyout(9) and so wiring the user buffer is not sufficient to perform a copyout(9) while holding a random mutex. Requested by: nwhitehorn
* Add a drain function for struct sysctl_req, and use it for a variety ofmdf2010-09-091-31/+17
| | | | | | | | | | handlers, some of which had to do awkward things to get a large enough FIXEDLEN buffer. Note that some sysctl handlers were explicitly outputting a trailing NUL byte. This behaviour was preserved, though it should not be necessary. Reviewed by: phk
* Fix tx pause quanta and timer calculations.np2010-08-151-12/+10
| | | | MFC after: 3 days
* Always reset the XGMAC's XAUI PCS on a link up.np2010-08-153-12/+58
| | | | MFC after: 3 days
* wakeup is required if the adapter lock is released anywhere duringnp2010-08-151-2/+5
| | | | | | | init and not just for the may_sleep case. Pointed out by: Isilon MFC after: 3 days
* - Change the warning about PCI-e links narrower than x8 to only apply tojhb2010-07-261-13/+11
| | | | | | | | | 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
* Improve cxgb(4)'s behaviour when faced with temporarily "bouncy" links:np2010-07-095-40/+55
| | | | | | | | | | | | | | - 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
* Eliminate ext_intr_task. The "slow" interrupt handler is alreadynp2010-07-095-58/+14
| | | | | | | running on the adapter's task queue. Just do what the task does instead of enqueueing it. MFC after: 3 days
* Fix bufsize calculation so that cxgbtool can display information for thenp2010-07-091-1/+0
| | | | | | last I/O queue too. MFC after: 3 days
* Catch up with the page and page queues locking changes.alc2010-06-181-8/+8
|
* cxgb(4): add knob to get packet timestamps from the hardware.np2010-06-122-16/+53
| | | | | | | | | | | | | | The T3 ASIC can provide an incoming packet's timestamp instead of its RSS hash. The timestamp is just a counter running off the card's clock. With a 175MHz clock an increment represents ~5.7ns and the 32 bit value wraps around in ~25s. # sysctl -d dev.cxgbc.0.pkt_timestamp dev.cxgbc.0.pkt_timestamp: provide packet timestamp instead of connection hash # sysctl -d dev.cxgbc.0.core_clock dev.cxgbc.0.core_clock: core clock frequency (in KHz) # sysctl dev.cxgbc.0.core_clock dev.cxgbc.0.core_clock: 175000
* make format string a string literal.np2010-06-121-1/+1
| | | | Reported by: clang
* cxgb(4): add an 'nfilters' tunable that lets the user place an uppernp2010-06-071-4/+11
| | | | | limit on the number of hardware filters (and thus the amount of TCAM reserved for filtering).
* Remove invalid assertion.np2010-05-201-1/+0
| | | | | | | Holding the adapter lock while changing the LRO settings is sufficient. PR: kern/146759 MFC after: 3 days
* Don't ring the tx doorbell for every frame when we know more framesnp2010-05-052-18/+32
| | | | | | will follow. Adjust the freelist and response queue doorbells too. Discussed with: kmacy
* Do not hold the T3 firmware in memory all the time. firmware(9) cannp2010-05-051-2/+0
| | | | load/unload it as needed.
* Switch to our preferred 2-clause BSD license.joel2010-05-052-46/+40
| | | | Approved by: kmacy
* Add support for hardware filters to cxgb(4). The T3 chip can inspectnp2010-05-052-0/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add IFCAP_LINKSTATE to cxgb's capabilities.np2010-05-041-1/+1
| | | | MFC after: 3 days
* Add new tunable 'net.link.ifqmaxlen' to set default send interfacesobomax2010-05-031-1/+1
| | | | | | | | | | 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
* Increase response queue size to avoid starvation, add a counternp2010-04-023-16/+28
| | | | to track it when it does occur.
* Multiple fixes related to queue set sizing and resources:np2010-03-315-54/+58
| | | | | | | | | | | | | | | | - 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
* Fix signed/unsigned mix-up that allowed txq->in_use to grow beyond txq->size.np2010-03-311-7/+6
|
* Fix tx drop statistics.np2010-03-313-28/+13
| | | | MFC after: 3 days
* Fix build with "nooptions INET"np2010-03-311-2/+13
| | | | | Requested by: bz MFC after: 3 days
* Do not attempt to retrieve interrupt information before it is available.np2010-03-311-1/+3
| | | | MFC after: 3 days
* Improved PHY EDC settings.np2010-03-311-371/+422
| | | | MFC after: 3 days
* Refresh the firmware version immediately after it is upgraded (or downgraded).np2010-03-311-4/+12
| | | | MFC after: 3 days
* Better TwinAx transceiver detection.np2010-03-092-2/+14
| | | | | | | Originally submitted by: <Bruno dot Bittner at isilon dot com> (This is a rewritten, corrected version of that patch) MFC after: 1 week
* Support IFCAP_VLANHWTSO in cxgb(4). It works with or without vlanhwtag.np2010-02-262-48/+48
| | | | While here, remove old DPRINTFs and tidy up the capability code a bit.
* There is no need to test __FreeBSD_version for features that havenp2010-02-2411-248/+29
| | | | | | | | | | | 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
* Accessing an mbuf after it has been handed off to the hardware is a badnp2010-02-241-22/+8
| | | | | | | race as it could already have been tx'd and freed by that time. Place the bpf tap just _before_ writing the gen bit. This fixes a panic when running tcpdump on a cxgb interface.
* Fix common misspelling of hierarchyuqs2010-02-201-2/+2
| | | | | Pointed out by: bf1783 at gmail Approved by: np (cxgb), kientzle (tar, etc.), philip (mentor)
* Fix drbr and altq interaction:mlaier2010-02-131-1/+3
| | | | | | | | | | | | | | | - introduce drbr_needs_enqueue that returns whether the interface/br needs an enqueue operation: returns true if altq is enabled or there are already packets in the ring (as we need to maintain packet order) - update all drbr consumers - fix drbr_flush - avoid using the driver queue (IFQ_DRV_*) in the altq case as the multiqueue consumer does not provide enough protection, serialize altq interaction with the main queue lock - make drbr_dequeue_cond work with altq Discussed with: kmacy, yongari, jfv MFC after: 4 weeks
OpenPOWER on IntegriCloud