<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/sys/dev/nvme/nvme_ctrlr.c, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/'/>
<updated>2020-11-29T00:57:19Z</updated>
<entry>
<title>Remove aligment requirements for passthrough buffer.</title>
<updated>2020-11-29T00:57:19Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-11-29T00:57:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=1770bae5f81188f2a5341219d5dc0973d57aaea9'/>
<id>urn:sha1:1770bae5f81188f2a5341219d5dc0973d57aaea9</id>
<content type='text'>
After r368124 vmapbuf() should happily map misaligned maxphys-sized buffers
thanks to extra page added to pbuf_zone.
</content>
</entry>
<entry>
<title>Increase nvme(4) maximum transfer size from 1MB to 2MB.</title>
<updated>2020-11-29T00:20:31Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-11-29T00:20:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=ac90f70d1ec717a070d3370096f499daf3eef1ce'/>
<id>urn:sha1:ac90f70d1ec717a070d3370096f499daf3eef1ce</id>
<content type='text'>
With 4KB page size the 2MB is the maximum we can address with one page PRP.
Going further would require chaining, that would add some more complexity.

On the other side, to reduce memory consumption, allocate the PRP memory
respecting maximum transfer size reported in the controller identify data.
Many of NVMe devices support much smaller values, starting from 128KB.
To do that we have to change the initialization sequence to pull the data
earlier, before setting up the I/O queue pairs.  The admin queue pair is
still allocated for full MIN(maxphys, 2MB) size, but it is not a big deal,
since there is only one such queue with only 16 trackers.

Reviewed by:	imp
MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>Make MAXPHYS tunable.  Bump MAXPHYS to 1M.</title>
<updated>2020-11-28T12:12:51Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2020-11-28T12:12:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=cd8537910406e68d4719136a5b0cf6d23bb1b23b'/>
<id>urn:sha1:cd8537910406e68d4719136a5b0cf6d23bb1b23b</id>
<content type='text'>
Replace MAXPHYS by runtime variable maxphys. It is initialized from
MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys.

Make b_pages[] array in struct buf flexible.  Size b_pages[] for buffer
cache buffers exactly to atop(maxbcachebuf) (currently it is sized to
atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1.
The +1 for pbufs allow several pbuf consumers, among them vmapbuf(),
to use unaligned buffers still sized to maxphys, esp. when such
buffers come from userspace (*).  Overall, we save significant amount
of otherwise wasted memory in b_pages[] for buffer cache buffers,
while bumping MAXPHYS to desired high value.

Eliminate all direct uses of the MAXPHYS constant in kernel and driver
sources, except a place which initialize maxphys.  Some random (and
arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted
straight.  Some drivers, which use MAXPHYS to size embeded structures,
get private MAXPHYS-like constant; their convertion is out of scope
for this work.

Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs,
dev/siis, where either submitted by, or based on changes by mav.

Suggested by: mav (*)
Reviewed by:	imp, mav, imp, mckusick, scottl (intermediate versions)
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D27225
</content>
</entry>
<entry>
<title>Add PMRCAP printing and fix earlier CAP_HI.</title>
<updated>2020-11-14T01:45:34Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-11-14T01:45:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=0bed3eabc54ed929de25dd6249ed6993a9e81674'/>
<id>urn:sha1:0bed3eabc54ed929de25dd6249ed6993a9e81674</id>
<content type='text'>
MFC after:	3 days
</content>
</entry>
<entry>
<title>Fix panic if NVMe is detached before the intrhook call.</title>
<updated>2020-11-12T20:20:43Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-11-12T20:20:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=46fbd8004fbd88a0f385003f5b02458ce666400e'/>
<id>urn:sha1:46fbd8004fbd88a0f385003f5b02458ce666400e</id>
<content type='text'>
MFC after:	1 week
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>Print NVMe controller capabilities in verbose dmesg.</title>
<updated>2020-10-28T15:43:29Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-10-28T15:43:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=c44441f8fdb6adc42e290130208a4294459e02b7'/>
<id>urn:sha1:c44441f8fdb6adc42e290130208a4294459e02b7</id>
<content type='text'>
Those values are not reported in controller identification, while sometimes
interesting for development and debugging.

MFC after:	1 week
</content>
</entry>
<entry>
<title>vmapbuf: don't smuggle address or length in buf</title>
<updated>2020-10-21T16:00:15Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2020-10-21T16:00:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=44ca4575ea0602c037be51beb89e1a1ad34ee649'/>
<id>urn:sha1:44ca4575ea0602c037be51beb89e1a1ad34ee649</id>
<content type='text'>
Instead, add arguments to vmapbuf.  Since this argument is
always a pointer use a type of void * and cast to vm_offset_t in
vmapbuf.  (In CheriBSD we've altered vm_fault_quick_hold_pages to
take a pointer and check its bounds.)

In no other situtation does b_data contain a user pointer and vmapbuf
replaces b_data with the actual mapping.

Suggested by:	jhb
Reviewed by:	imp, jhb
Obtained from:	CheriBSD
MFC after:	1 week
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D26784
</content>
</entry>
<entry>
<title>Use RTD3 Entry Latency value as shutdown timeout.</title>
<updated>2020-10-14T15:50:28Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-10-14T15:50:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=915f0197159b6e21d13561106e8686d4366fbe26'/>
<id>urn:sha1:915f0197159b6e21d13561106e8686d4366fbe26</id>
<content type='text'>
This field was not in specs when the driver was written, but now there
are SSDs with the reported latency of 10s, where hardcoded value of 5s
seems to be not enough sometimes, causing shutdown timeout messages.

MFC after:	1 week
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>Add an ioctl to get an NVMe device's maximum transfer size</title>
<updated>2020-09-21T15:41:47Z</updated>
<author>
<name>David Bright</name>
<email>dab@FreeBSD.org</email>
</author>
<published>2020-09-21T15:41:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=e32d47f32d72137dbf11578e05daf62fb8bce380'/>
<id>urn:sha1:e32d47f32d72137dbf11578e05daf62fb8bce380</id>
<content type='text'>
Reviewed by:	imp, chuck
Obtained from:	Dell EMC Isilon
MFC after:	1 week
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26390
</content>
</entry>
<entry>
<title>nvme: clean up empty lines in .c and .h files</title>
<updated>2020-09-01T22:03:10Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-09-01T22:03:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=d87b31e159cb313dad1049e91943dcdd479f2b2d'/>
<id>urn:sha1:d87b31e159cb313dad1049e91943dcdd479f2b2d</id>
<content type='text'>
</content>
</entry>
</feed>
