#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
af3b2549 |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
#
37a107a4 |
|
27-Jun-2014 |
Glen Barber <gjb@FreeBSD.org> |
Revert r267961, r267973: These changes prevent sysctl(8) from returning proper output, such as: 1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
#
3da1cf1e |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel. Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change. MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
#
bc919a54 |
|
05-Nov-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
TX EDMA debugging fixes: * Do the calculation for each ath_buf, rather than just the first * Correct the calculation in the first place.
|
#
70ee9029 |
|
02-Nov-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a debug method to dump the EDMA TX status descriptor contents out. This requires some HAL API changes to be useful, as there's no way right now to pull out the TX status descriptor contents.
|
#
6d24c7db |
|
24-Sep-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Debugging output fixes: * use the correct frame status - although the completion descriptor is the _last_ in the frame/aggregate, the status is currently stored in the _first_ buffer. * Print out ath_buf specific fields once, not per descriptor in an ath_buf.
|
#
bb1bf7ed |
|
27-Aug-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Only print the descriptor contents! Found by: magical CLANG build environments Submitted by: Sevan <venture37@gmail.com>
|
#
bd68600c |
|
19-Aug-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Make sure all of the buffers are printed, rather than (n-1).
|
#
e913fcda |
|
18-Aug-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Extend the TX descriptor debug printing to be properly aware of EDMA code. * create a new TX EDMA descriptor struct to represent TX EDMA descriptors when doing debugging; * implement an EDMA printing function which: + hardcodes the TX map size to 4 for now; + correctly prints out the number of segments - there's one descriptor for up to 4 buffers (segments), not one for each segment; + print out 4 DS buffer and len pointers; + print out the correct number of DWORDs in the TX descriptor. TODO: * Remove all of the hard-coded stuff. Ew.
|
#
0655b67b |
|
11-Aug-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Add the AR9380 HAL to the TX descriptor debugging, in order to dump all of the descriptor contents.
|
#
74732ec4 |
|
09-Jul-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Extend the RX descriptor completion debugging to log the larger AR93xx receive descriptors. This isn't entirely complete - the AR93xx and later descriptors don't have a link/buffer pointer; the descriptor contents just start.
|
#
a108d2d6 |
|
11-Jun-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Revert r233227 and followup commits as it breaks CCMP PN replay detection. This showed up when doing heavy UDP throughput on SMP machines. The problem with this is because the 802.11 sequence number is being allocated separately to the CCMP PN replay number (which is assigned during ieee80211_crypto_encap()). Under significant throughput (200+ MBps) the TX path would be stressed enough that frame TX/retry would force sequence number and PN allocation to be out of order. So once the frames were reordered via 802.11 seqnos, the CCMP PN would be far out of order, causing most frames to be discarded by the receiver. I've fixed this in some local work by being forced to: (a) deal with the issues that lead to the parallel TX causing out of order sequence numbers in the first place; (b) fix all the packet queuing issues which lead to strange (but mostly valid) TX. I'll begin fixing these in a subsequent commit or five. PR: kern/166190
|
#
0e22ed0e |
|
15-May-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Migrate ath_debug and sc_debug from an int to a uint64_t / QUAD; add some more BAR debugging logic. * Change the definition of ath_debug and ath_softc.sc_debug from int to uint64_t; * Change the relevant sysctls; * Add a new BAR TX debugging field; * Use this in if_ath_tx. This has been tested by using the sysctl program, which happily allows for fields > 32 bits to be configured.
|
#
875a9451 |
|
06-Apr-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Remove duplicate txflags field from ath_buf. rename bf_state.bfs_flags to bf_state.bfs_txflags, as that is what it effectively is.
|
#
0b96ef63 |
|
19-Mar-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Delay sequence number allocation for A-MPDU until just before the frame is queued to the hardware. Because multiple concurrent paths can execute ath_start(), multiple concurrent paths can push frames into the software/hardware TX queue and since preemption/interrupting can occur, there's the possibility that a gap in time will occur between allocating the sequence number and queuing it to the hardware. Because of this, it's possible that a thread will have allocated a sequence number and then be preempted by another thread doing the same. If the second thread sneaks the frame into the BAW, the (earlier) sequence number of the first frame will be now outside the BAW and will result in the frame being constantly re-added to the tail of the queue. There it will live until the sequence numbers cycle around again. This also creates a hole in the RX BAW tracking which can also cause issues. This patch delays the sequence number allocation to occur only just before the frame is going to be added to the BAW. I've been wanting to do this anyway as part of a general code tidyup but I've not gotten around to it. This fixes the PR. However, it still makes it quite difficult to try and ensure in-order queuing and dequeuing of frames. Since multiple copies of ath_start() can be run at the same time (eg one TXing process thread, one TX completion task/one RX task) the driver may end up having frames dequeued and pushed into the hardware slightly/occasionally out of order. And, to make matters more annoying, net80211 may have the same behaviour - in the non-aggregation case, the TX code allocates sequence numbers before it's thrown to the driver. I'll open another PR to investigate this and potentially introduce some kind of final-pass TX serialisation before frames are thrown to the hardware. It's also very likely worthwhile adding some debugging code into ath(4) and net80211 to catch when/if this does occur. PR: kern/166190
|
#
0d5f2f26 |
|
08-Nov-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add support to the TX descriptor printing code to follow ath_buf chains. This allows for debugging of aggregate frames. Sponsored by: Hobnob, Inc.
|
#
5bc8125a |
|
28-Jan-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Break out the debug macros from if_ath.c into if_ath_debug.[ch] . This is prep work for breaking out the TX path into a separate set of source files.
|