<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/tsec, branch release/12.3.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F12.3.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F12.3.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2018-05-18T20:13:34Z</updated>
<entry>
<title>ifnet: Replace if_addr_lock rwlock with epoch + mutex</title>
<updated>2018-05-18T20:13:34Z</updated>
<author>
<name>Matt Macy</name>
<email>mmacy@FreeBSD.org</email>
</author>
<published>2018-05-18T20:13:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d7c5a620e2b99e914f1770abde956cf0d0a970b7'/>
<id>urn:sha1:d7c5a620e2b99e914f1770abde956cf0d0a970b7</id>
<content type='text'>
Run on LLNW canaries and tested by pho@

gallatin:
Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5
based ConnectX 4-LX NIC, I see an almost 12% improvement in received
packet rate, and a larger improvement in bytes delivered all the way
to userspace.

When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1,
I see, using nstat -I mce0 1 before the patch:

InMpps OMpps  InGbs  OGbs err TCP Est %CPU syscalls csw     irq GBfree
4.98   0.00   4.42   0.00 4235592     33   83.80 4720653 2149771   1235 247.32
4.73   0.00   4.20   0.00 4025260     33   82.99 4724900 2139833   1204 247.32
4.72   0.00   4.20   0.00 4035252     33   82.14 4719162 2132023   1264 247.32
4.71   0.00   4.21   0.00 4073206     33   83.68 4744973 2123317   1347 247.32
4.72   0.00   4.21   0.00 4061118     33   80.82 4713615 2188091   1490 247.32
4.72   0.00   4.21   0.00 4051675     33   85.29 4727399 2109011   1205 247.32
4.73   0.00   4.21   0.00 4039056     33   84.65 4724735 2102603   1053 247.32

After the patch

InMpps OMpps  InGbs  OGbs err TCP Est %CPU syscalls csw     irq GBfree
5.43   0.00   4.20   0.00 3313143     33   84.96 5434214 1900162   2656 245.51
5.43   0.00   4.20   0.00 3308527     33   85.24 5439695 1809382   2521 245.51
5.42   0.00   4.19   0.00 3316778     33   87.54 5416028 1805835   2256 245.51
5.42   0.00   4.19   0.00 3317673     33   90.44 5426044 1763056   2332 245.51
5.42   0.00   4.19   0.00 3314839     33   88.11 5435732 1792218   2499 245.52
5.44   0.00   4.19   0.00 3293228     33   91.84 5426301 1668597   2121 245.52

Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patch

Reviewed by:	gallatin
Sponsored by:	Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D15366
</content>
</entry>
<entry>
<title>sys/dev: further adoption of SPDX licensing ID tags.</title>
<updated>2017-11-27T14:52:40Z</updated>
<author>
<name>Pedro F. Giffuni</name>
<email>pfg@FreeBSD.org</email>
</author>
<published>2017-11-27T14:52:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=718cf2ccb9956613756ab15d7a0e28f2c8e91cab'/>
<id>urn:sha1:718cf2ccb9956613756ab15d7a0e28f2c8e91cab</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Clean up MD pollution of bus_dma.h:</title>
<updated>2017-07-01T05:35:29Z</updated>
<author>
<name>Jason A. Harmening</name>
<email>jah@FreeBSD.org</email>
</author>
<published>2017-07-01T05:35:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=eb36b1d0bc5f7ece94083e6e509da41117a76566'/>
<id>urn:sha1:eb36b1d0bc5f7ece94083e6e509da41117a76566</id>
<content type='text'>
--Remove special-case handling of sparc64 bus_dmamap* functions.
  Replace with a more generic mechanism that allows MD busdma
  implementations to generate inline mapping functions by
  defining WANT_INLINE_DMAMAP in &lt;machine/bus_dma.h&gt;.  This
  is currently useful for sparc64, x86, and arm64, which all
  implement non-load dmamap operations as simple wrappers
  around map objects which may be bus- or device-specific.

--Remove NULL-checked bus_dmamap macros.  Implement the
  equivalent NULL checks in the inlined x86 implementation.
  For non-x86 platforms, these checks are a minor pessimization
  as those platforms do not currently allow NULL maps.  NULL
  maps were originally allowed on arm64, which appears to have
  been the motivation behind adding arm[64]-specific barriers
  to bus_dma.h, but that support was removed in r299463.

--Simplify the internal interface used by the bus_dmamap_load*
  variants and move it to bus_dma_internal.h

--Fix some drivers that directly include sys/bus_dma.h
  despite the recommendations of bus_dma(9)

Reviewed by:	kib (previous revision), marius
Differential Revision:	https://reviews.freebsd.org/D10729
</content>
</entry>
<entry>
<title>Don't calltsec_receive_intr_locked() from the error interrupt handler.</title>
<updated>2017-04-04T02:55:55Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2017-04-04T02:55:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2fad65cfa0001b3611144b70ed03a6805973b87a'/>
<id>urn:sha1:2fad65cfa0001b3611144b70ed03a6805973b87a</id>
<content type='text'>
The tsec_error_intr_locked() is called with the global lock owned (e.g.
the transmit and the receive lock are both owned).  We must not call
tsec_receive_intr_locked() while owning the transmit lock.  The normal
receive interrupt takes care that frames are received, this is none of
the business of the error interrupt.

Submitted by:	Sebastian Huber &lt;sebastian.huber_AT_embedded-brains.de&gt;
</content>
</entry>
<entry>
<title>Defragment the transmit mbuf chain only if necessary.</title>
<updated>2017-04-04T02:48:27Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2017-04-04T02:48:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2c0dbbcb8a7bb0a6b5b7394261617e0d62eda44c'/>
<id>urn:sha1:2c0dbbcb8a7bb0a6b5b7394261617e0d62eda44c</id>
<content type='text'>
Use a method similar to the if_dwc driver.  Use a wmb() before the flags of the
first transmit buffer of a frame are written.

Group transmit/receive structure members for better cache efficiency.

Tested on P1020RDB.  TCP transmit throughput increases from 60MiB/s to
90MiB/s.

Submitted by:	Sebastian Huber &lt;sebastian.huber_AT_embedded-brains.de&gt;
</content>
</entry>
<entry>
<title>Fix mis-manual merge.</title>
<updated>2017-04-04T02:37:41Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2017-04-04T02:37:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=72b58db80fe4f880f3c23dc8a9bf35754671e2cc'/>
<id>urn:sha1:72b58db80fe4f880f3c23dc8a9bf35754671e2cc</id>
<content type='text'>
Timeout is now effectively a boolean rather than a time-remaining.  This was
missed in r316478, but included in the original patch (mis-merged with a manual
merge).
</content>
</entry>
<entry>
<title>Fix set-but-not-used warnings</title>
<updated>2017-04-04T00:46:48Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2017-04-04T00:46:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b11512cc9cd59cba6b1d5316657b0a0bf31256d5'/>
<id>urn:sha1:b11512cc9cd59cba6b1d5316657b0a0bf31256d5</id>
<content type='text'>
Submitted by:	Sebastian Huber &lt;sebastian_DOT_huber_AT_embedded-brains_DOT_de&gt;
</content>
</entry>
<entry>
<title>Use a common tsec_mii_wait() function to busy wait for status changes.</title>
<updated>2017-04-04T00:43:09Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2017-04-04T00:43:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=88011b597fe36cfbd11cd2480e00ae430d43b1bf'/>
<id>urn:sha1:88011b597fe36cfbd11cd2480e00ae430d43b1bf</id>
<content type='text'>
The status indicators are not set immediatly after a command.  Discard
the first value.

Unlock the PHY mutex after a timeout in tsec_init_locked().

Tested on the P1020RDB.

Submitted by:	Sebastian Huber &lt;sebastian_DOT_huber_AT_embedded-brains_DOT_de&gt;
</content>
</entry>
<entry>
<title>Add support for NXP/Freescale etsec2 ethernet controller</title>
<updated>2016-08-30T01:58:49Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2016-08-30T01:58:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e150821a8cc9b33fc5009a4c6353452668ef9cc7'/>
<id>urn:sha1:e150821a8cc9b33fc5009a4c6353452668ef9cc7</id>
<content type='text'>
Adding the compatible property check isn't enough.  Device trees for eTSEC2
devices are missing a 'reg' property on the eTSEC node itself, relegating it to
the queue group child nodes.

Still left to do: add Multigroup mode support (see QorIQ reference manuals s for
SoCs with eTSEC2).

MFC after:	2 weeks
Relnotes:	Yes
</content>
</entry>
<entry>
<title>Add an alternate compatible string for eTSEC devices.</title>
<updated>2016-05-19T00:04:58Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2016-05-19T00:04:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=af20e818eb024530c6b20302af375eaa41e4ba03'/>
<id>urn:sha1:af20e818eb024530c6b20302af375eaa41e4ba03</id>
<content type='text'>
Newer device trees now use fsl,etsec2 to denote eTSEC nodes.  Same device, new
name.
</content>
</entry>
</feed>
