<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/ioat, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-01-07T00:54:23Z</updated>
<entry>
<title>MFC r356216: Don't spin on cleanup_lock if we are not interrupt.</title>
<updated>2020-01-07T00:54:23Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-01-07T00:54:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2617fcf388234340d8ae3e37b67e72e31fe57660'/>
<id>urn:sha1:2617fcf388234340d8ae3e37b67e72e31fe57660</id>
<content type='text'>
If somebody else holds that lock, it will likely do the work for us.
If it won't, then we return here later and retry.

Under heavy load it allows to avoid lock congestion between interrupt and
polling threads.
</content>
</entry>
<entry>
<title>MFC r354752: Cleanup address range checks in ioat(4).</title>
<updated>2019-11-29T01:00:06Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-11-29T01:00:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8c2de3473aae6d122fa4785012d2c86334a7a16c'/>
<id>urn:sha1:8c2de3473aae6d122fa4785012d2c86334a7a16c</id>
<content type='text'>
 - Deduce allowed address range for bus_dma(9) from the hardware version.
Different versions (CPU generations) have different documented limits.
 - Remove difference between address ranges for src/dst and crc.  At least
docs for few recent generations of CPUs do not mention anything like that,
while older are already limited with above limits.
 - Remove address assertions from arguments.  While I do not think the
addresses out of allowed ranges should realistically happen there due to
the platforms physical address limitations, there is now bus_dma(9) to
make sure of that, preferably via IOMMU.
 - Since crc now has the same address range as src/dst, remove crc_dmamap,
reusing dst2_dmamap instead.
</content>
</entry>
<entry>
<title>MFC r345813 (by tychon):</title>
<updated>2019-11-29T00:58:18Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-11-29T00:58:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2c74e433ec59b983b3821feea6000686f7345fb4'/>
<id>urn:sha1:2c74e433ec59b983b3821feea6000686f7345fb4</id>
<content type='text'>
ioat(4) should use bus_dma(9) for the operation source and destination
addresses
</content>
</entry>
<entry>
<title>MFC r345812 (by tychon):</title>
<updated>2019-11-29T00:38:16Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-11-29T00:38:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8bfe05b80511d9b95a1bf6b347632f34c230bf2b'/>
<id>urn:sha1:8bfe05b80511d9b95a1bf6b347632f34c230bf2b</id>
<content type='text'>
ioatcontrol(8) could exercise 8k-aligned copy with page-break, crc and
crc-copy modes.
</content>
</entry>
<entry>
<title>MFC r354753: Initialize *comp_update with valid value.</title>
<updated>2019-11-29T00:25:39Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-11-29T00:25:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1fa8f59c4f7d6d74cbef8ee2d2c1641ade031240'/>
<id>urn:sha1:1fa8f59c4f7d6d74cbef8ee2d2c1641ade031240</id>
<content type='text'>
I've noticed that sometimes with enabled DMAR initial write from device
to this address is somehow getting delayed, triggering assertion due to
zero default being invalid.
</content>
</entry>
<entry>
<title>MFC r354703: Pass more reasonable WAIT flags to bus_dma(9) calls.</title>
<updated>2019-11-28T00:42:45Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-11-28T00:42:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3844374396fbe1abb58f8eccaadd9977e4779800'/>
<id>urn:sha1:3844374396fbe1abb58f8eccaadd9977e4779800</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r354841: Add ioat_get_domain() to ioat(4) KPI.</title>
<updated>2019-11-26T15:23:24Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-11-26T15:23:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d83ad00e6b383067c48a1116c55395969a54fd1d'/>
<id>urn:sha1:d83ad00e6b383067c48a1116c55395969a54fd1d</id>
<content type='text'>
This allows NUMA-aware consumers to reduce inter-domain traffic.
</content>
</entry>
<entry>
<title>MFC r352787: Replace argument checks with assertions.</title>
<updated>2019-10-15T18:39:32Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-10-15T18:39:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5e17786d6a55ab4b3025efc32a97ed1fb3c6b22b'/>
<id>urn:sha1:5e17786d6a55ab4b3025efc32a97ed1fb3c6b22b</id>
<content type='text'>
Those functions are used by kernel, and we can't check all possible argument
errors in production kernel.  Plus according to docs many of those errors
are checked by hardware.  Assertions should just help with code debugging.
</content>
</entry>
<entry>
<title>MFC r352544: Improve ioat(4) NUMA-awareness.</title>
<updated>2019-09-28T00:59:39Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-09-28T00:59:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cd6b397159844962e00bf126638cddc4e2ba7558'/>
<id>urn:sha1:cd6b397159844962e00bf126638cddc4e2ba7558</id>
<content type='text'>
Allocate ioat-&gt;ring memory from the device domain.
Schedule ioat-&gt;poll_timer to the first CPU of the device domain.

According to pcm-numa tool from intel-pcm port, this reduces number of
remote DRAM accesses while copying data by 75%.  And unless it is a noise,
I've noticed some speed improvement when copying data to other domain.
</content>
</entry>
<entry>
<title>MFC r344441: Fix few issues in ioat(4) driver.</title>
<updated>2019-02-28T00:28:44Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-02-28T00:28:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=91aa7b1775354c67cc3e4ef2ccdcffc358e386f9'/>
<id>urn:sha1:91aa7b1775354c67cc3e4ef2ccdcffc358e386f9</id>
<content type='text'>
 - Do not explicitly count active descriptors.  It allows hardware reset
to happen while device is still referenced, plus simplifies locking.
 - Do not stop/start callout each time the queue becomes empty.  Let it
run to completion and rearm if needed, that is much cheaper then to touch
it every time, plus also simplifies locking.
 - Decouple submit and cleanup locks, making driver reentrant.
 - Avoid memory mapped status register read on every interrupt.
 - Improve locking during device attach/detach.
 - Remove some no longer used variables.

Sponsored by:	iXsystems, Inc.
</content>
</entry>
</feed>
