<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/nvme/host/core.c, branch linux-5.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-05-31T13:44:59Z</updated>
<entry>
<title>nvme: set 0 capacity if namespace block size exceeds PAGE_SIZE</title>
<updated>2019-05-31T13:44:59Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2019-03-11T22:02:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e8c239616c4f9f5a9f83b05bae6f6b5ba12d855'/>
<id>urn:sha1:2e8c239616c4f9f5a9f83b05bae6f6b5ba12d855</id>
<content type='text'>
[ Upstream commit 01fa017484ad98fccdeaab32db0077c574b6bd6f ]

If our target exposed a namespace with a block size that is greater
than PAGE_SIZE, set 0 capacity on the namespace as we do not support it.

This issue encountered when the nvmet namespace was backed by a tempfile.

Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Reviewed-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>nvme: cancel request synchronously</title>
<updated>2019-05-10T16:36:11Z</updated>
<author>
<name>Ming Lei</name>
</author>
<published>2019-04-08T22:31:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=407bb38bf3f7abf8ee78c247d057b2cea6422bc1'/>
<id>urn:sha1:407bb38bf3f7abf8ee78c247d057b2cea6422bc1</id>
<content type='text'>
[ Upstream commit eb3afb75b57c28599af0dfa03a99579d410749e9 ]

nvme_cancel_request() is used in error handler, and it is always
reliable to cancel request synchronously, and avoids possible race
in which request may be completed after real hw queue is destroyed.

One issue is reported by our customer on NVMe RDMA, in which freed ib
queue pair may be used in nvme_rdma_complete_rq().

Cc: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Cc: Bart Van Assche &lt;bvanassche@acm.org&gt;
Cc: James Smart &lt;james.smart@broadcom.com&gt;
Cc: linux-nvme@lists.infradead.org
Reviewed-by: Keith Busch &lt;keith.busch@intel.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Ming Lei &lt;ming.lei@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>nvme: lock NS list changes while handling command effects</title>
<updated>2019-02-06T15:35:33Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2019-01-28T16:46:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7ad43c3eda6a1690c4c3c341f95dc1c6898da83'/>
<id>urn:sha1:e7ad43c3eda6a1690c4c3c341f95dc1c6898da83</id>
<content type='text'>
If a controller supports the NS Change Notification, the namespace
scan_work is automatically triggered after attaching a new namespace.

Occasionally the namespace scan_work may append the new namespace to the
list before the admin command effects handling is completed. The effects
handling unfreezes namespaces, but if it unfreezes the newly attached
namespace, its request_queue freeze depth will be off and we'll hit the
warning in blk_mq_unfreeze_queue().

On the next namespace add, we will fail to freeze that queue due to the
previous bad accounting and deadlock waiting for frozen.

Fix that by preventing scan work from altering the namespace list while
command effects handling needs to pair freeze with unfreeze.

Reported-by: Wen Xiong &lt;wenxiong@us.ibm.com&gt;
Tested-by: Wen Xiong &lt;wenxiong@us.ibm.com&gt;
Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Reviewed-by: Chaitanya Kulkarni &lt;chaitanya.kulkarni@wdc.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme: don't initlialize ctrl-&gt;cntlid twice</title>
<updated>2019-01-09T18:47:08Z</updated>
<author>
<name>Andrey Smirnov</name>
</author>
<published>2019-01-08T03:08:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8a38ea64dc714a64f8fb76e311a4f15a3f67861'/>
<id>urn:sha1:b8a38ea64dc714a64f8fb76e311a4f15a3f67861</id>
<content type='text'>
ctrl-&gt;cntlid will already be initialized from id-&gt;cntlid for
non-NVME_F_FABRICS controllers few lines below. For NVME_F_FABRICS
controllers this field should already be initialized, otherwise the
check

	if (ctrl-&gt;cntlid != le16_to_cpu(id-&gt;cntlid))

below will always be a no-op.

Signed-off-by: Andrey Smirnov &lt;andrew.smirnov@gmail.com&gt;
Reviewed-by: Keith Busch &lt;keith.busch@intel.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme: introduce NVME_QUIRK_IGNORE_DEV_SUBNQN</title>
<updated>2019-01-09T18:47:08Z</updated>
<author>
<name>James Dingwall</name>
</author>
<published>2019-01-08T17:20:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6299358d198a0635da2dd3c4b3ec37789e811e44'/>
<id>urn:sha1:6299358d198a0635da2dd3c4b3ec37789e811e44</id>
<content type='text'>
If a device provides an NQN it is expected to be globally unique.
Unfortunately some firmware revisions for Intel 760p/Pro 7600p devices did
not satisfy this requirement.  In these circumstances if a system has &gt;1
affected device then only one device is enabled.  If this quirk is enabled
then the device supplied subnqn is ignored and we fallback to generating
one as if the field was empty.  In this case we also suppress the version
check so we don't print a warning when the quirk is enabled.

Reviewed-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: James Dingwall &lt;james@dingwall.me.uk&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme: pad fake subsys NQN vid and ssvid with zeros</title>
<updated>2019-01-09T18:47:06Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2019-01-08T16:37:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3da584f57133e51aeb84aaefae5e3d69531a1e4f'/>
<id>urn:sha1:3da584f57133e51aeb84aaefae5e3d69531a1e4f</id>
<content type='text'>
We need to preserve the leading zeros in the vid and ssvid when generating
a unique NQN. Truncating these may lead to naming collisions.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme-core: optionally poll sync commands</title>
<updated>2018-12-18T16:50:48Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2018-12-14T19:06:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6287b51c77e6d8f05f772931cf51d80e81651a9f'/>
<id>urn:sha1:6287b51c77e6d8f05f772931cf51d80e81651a9f</id>
<content type='text'>
Pass poll bool to indicate that we need it to poll. This prepares us for
polling support in nvmf since connect is an I/O that will be queued
and has to be polled in order to complete. If poll is passed,
we call nvme_execute_rq_polled which sends the requests and polls
for its completion.

Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme: fix kernel paging oops</title>
<updated>2018-12-13T20:58:23Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2018-12-13T20:34:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=092ff0520070fad8407b196f3bb6156ce77a6f98'/>
<id>urn:sha1:092ff0520070fad8407b196f3bb6156ce77a6f98</id>
<content type='text'>
free the controller discard_page correctly.

Fixes: cb5b7262b011 ("nvme: provide fallback for discard alloc failure")
Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>nvme: remove nvme_common command cdw10 array</title>
<updated>2018-12-13T08:59:01Z</updated>
<author>
<name>Chaitanya Kulkarni</name>
</author>
<published>2018-12-12T23:11:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7c8f3663d0e0773aca3324c26bce3ca8343ec14'/>
<id>urn:sha1:b7c8f3663d0e0773aca3324c26bce3ca8343ec14</id>
<content type='text'>
This is a preparation patch which removes the nvme common command cdw10
array and replace with individual fields. This is needed for the nvmet
error log page implementation make is error log page entry offset
assignment easier.

Signed-off-by: Chaitanya Kulkarni &lt;chaitanya.kulkarni@wdc.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme: provide fallback for discard alloc failure</title>
<updated>2018-12-13T08:59:00Z</updated>
<author>
<name>Jens Axboe</name>
</author>
<published>2018-12-12T16:18:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb5b7262b011cfb793519bf97e54dff5282da23c'/>
<id>urn:sha1:cb5b7262b011cfb793519bf97e54dff5282da23c</id>
<content type='text'>
When boxes are run near (or to) OOM, we have a problem with the discard
page allocation in nvme. If we fail allocating the special page, we
return busy, and it'll get retried. But since ordering is honored for
dispatch requests, we can keep retrying this same IO and failing. Behind
that IO could be requests that want to free memory, but they never get
the chance.

Allocate a fixed discard page per controller for a safe fallback, and use
that if the initial allocation fails.

Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Reviewed-by: Keith Busch &lt;keith.busch@intel.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
</feed>
