<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/nvme/host/rdma.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-rdma: fix a NULL deref when an admin connect times out</title>
<updated>2019-05-31T13:44:59Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2019-04-24T18:53:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e9dd0fd8233f8eb2e4513283cf9c78beaa87e113'/>
<id>urn:sha1:e9dd0fd8233f8eb2e4513283cf9c78beaa87e113</id>
<content type='text'>
[ Upstream commit 1007709d7d06fab09bf2d007657575958676282b ]

If we timeout the admin startup sequence we might not yet have
an I/O tagset allocated which causes the teardown sequence to crash.
Make nvme_tcp_teardown_io_queues safe by not iterating inflight tags
if the tagset wasn't allocated.

Fixes: 4c174e636674 ("nvme-rdma: fix timeout handler")
Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&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-rdma: rework queue maps handling</title>
<updated>2019-01-24T00:16:59Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2019-01-19T00:43:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1064d3e337b4d0b67d641b5f771187d8f1f027d'/>
<id>urn:sha1:b1064d3e337b4d0b67d641b5f771187d8f1f027d</id>
<content type='text'>
If the device supports less queues than provided (if the device has less
completion vectors), we might hit a bug due to the fact that we ignore
that in nvme_rdma_map_queues (we override the maps nr_queues with user
opts).

Instead, keep track of how many default/read/poll queues we actually
allocated (rather than asked by the user) and use that to assign our
queue mappings.

Fixes: b65bb777ef22 (" nvme-rdma: support separate queue maps for read and write")
Reported-by: Saleem, Shiraz &lt;shiraz.saleem@intel.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
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-rdma: fix timeout handler</title>
<updated>2019-01-24T00:16:59Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2019-01-08T08:53:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c174e6366746ae8d49f9cc409f728eebb7a9ac9'/>
<id>urn:sha1:4c174e6366746ae8d49f9cc409f728eebb7a9ac9</id>
<content type='text'>
Currently, we have several problems with the timeout
handler:
1. If we timeout on the controller establishment flow, we will hang
because we don't execute the error recovery (and we shouldn't because
the create_ctrl flow needs to fail and cleanup on its own)
2. We might also hang if we get a disconnet on a queue while the
controller is already deleting. This racy flow can cause the controller
disable/shutdown admin command to hang.

We cannot complete a timed out request from the timeout handler without
mutual exclusion from the teardown flow (e.g. nvme_rdma_error_recovery_work).
So we serialize it in the timeout handler and teardown io and admin
queues to guarantee that no one races with us from completing the
request.

Reported-by: Jaesoo Lee &lt;jalee@purestorage.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
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-rdma: implement polling queue map</title>
<updated>2018-12-18T16:50:49Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2018-12-14T19:06:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff8519f9e91170cd24ed503aa77d144e71bd4d92'/>
<id>urn:sha1:ff8519f9e91170cd24ed503aa77d144e71bd4d92</id>
<content type='text'>
When passed with nr_poll_queues setup additional queues with cq polling
context IB_POLL_DIRECT (no interrupts) and make sure to set
QUEUE_FLAG_POLL on the connect_q. In addition add the third queue
mapping for polling queues.

nvmf connect on this queue is polled for like all other requests so make
nvmf_connect_io_queue poll for polling queues.

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-fabrics: allow nvmf_connect_io_queue to poll</title>
<updated>2018-12-18T16:50:48Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2018-12-14T19:06:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26c682274e0a7d055e123499eac8ec39d0e04283'/>
<id>urn:sha1:26c682274e0a7d055e123499eac8ec39d0e04283</id>
<content type='text'>
Preparation for polling support for fabrics. Polling support
means that our completion queues are not generating any interrupts
which means we need to poll for the nvmf io queue connect as well.

Reviewed by Steve Wise &lt;swise@opengridcomputing.com&gt;
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-rdma: support separate queue maps for read and write</title>
<updated>2018-12-13T08:59:10Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2018-12-12T07:38:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b65bb777ef2237030f2802f2263ae9a0108f7acf'/>
<id>urn:sha1:b65bb777ef2237030f2802f2263ae9a0108f7acf</id>
<content type='text'>
llow NVMF_OPT_NR_WRITE_QUEUES to describe additional write queues.  In
addition, implement .map_queues that will apply 2 queue maps for read
and write queue sets.

Note that with the separate queue map, HCTX_TYPE_READ will always use
nr_io_queues and HCTX_TYPE_DEFAULT will use nr_write_queues.

Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>blk-mq-rdma: pass in queue map to blk_mq_rdma_map_queues</title>
<updated>2018-12-13T08:59:08Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2018-12-12T07:38:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e42b3867de4bd5ee3a1849afb68a1fa8627f7282'/>
<id>urn:sha1:e42b3867de4bd5ee3a1849afb68a1fa8627f7282</id>
<content type='text'>
Will be used by nvme-rdma for queue map separation support.

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: add a numa_node field to struct nvme_ctrl</title>
<updated>2018-12-08T05:26:55Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2018-11-16T08:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=103e515efa89be33d04e45aae82de136f0c49865'/>
<id>urn:sha1:103e515efa89be33d04e45aae82de136f0c49865</id>
<content type='text'>
Instead of directly poking into the struct device add a new numa_node
field to struct nvme_ctrl.  This allows fabrics drivers where ctrl-&gt;dev
is a virtual device to support NUMA affinity as well.

Also expose the field as a sysfs attribute, and populate it for the
RDMA and FC transports.

Signed-off-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>nvme-rdma: remove I/O polling support</title>
<updated>2018-12-04T18:38:18Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2018-12-02T16:46:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9801a484ad6dcc33b10c61b143efc3352541802'/>
<id>urn:sha1:f9801a484ad6dcc33b10c61b143efc3352541802</id>
<content type='text'>
The code was always a bit of a hack that digs far too much into
RDMA core internals.  Lets kick it out and reimplement proper
dedicated poll queues as needed.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>Merge tag 'v4.20-rc5' into for-4.21/block</title>
<updated>2018-12-04T16:38:05Z</updated>
<author>
<name>Jens Axboe</name>
</author>
<published>2018-12-04T16:38:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=89d04ec3491bea6d69943b5aed62fdebfad49638'/>
<id>urn:sha1:89d04ec3491bea6d69943b5aed62fdebfad49638</id>
<content type='text'>
Pull in v4.20-rc5, solving a conflict we'll otherwise get in aio.c and
also getting the merge fix that went into mainline that users are
hitting testing for-4.21/block and/or for-next.

* tag 'v4.20-rc5': (664 commits)
  Linux 4.20-rc5
  PCI: Fix incorrect value returned from pcie_get_speed_cap()
  MAINTAINERS: Update linux-mips mailing list address
  ocfs2: fix potential use after free
  mm/khugepaged: fix the xas_create_range() error path
  mm/khugepaged: collapse_shmem() do not crash on Compound
  mm/khugepaged: collapse_shmem() without freezing new_page
  mm/khugepaged: minor reorderings in collapse_shmem()
  mm/khugepaged: collapse_shmem() remember to clear holes
  mm/khugepaged: fix crashes due to misaccounted holes
  mm/khugepaged: collapse_shmem() stop if punched or truncated
  mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
  mm/huge_memory: splitting set mapping+index before unfreeze
  mm/huge_memory: rename freeze_page() to unmap_page()
  initramfs: clean old path before creating a hardlink
  kernel/kcov.c: mark funcs in __sanitizer_cov_trace_pc() as notrace
  psi: make disabling/enabling easier for vendor kernels
  proc: fixup map_files test on arm
  debugobjects: avoid recursive calls with kmemleak
  userfaultfd: shmem: UFFDIO_COPY: set the page dirty if VM_WRITE is not set
  ...
</content>
</entry>
</feed>
