A fork of the Linux kernel for p2pmem enabled devices like NVMe devices with CMBs, Microsemi NVRAM card (and other devices that can expose BARs) of the NVMe-oF target driver. For user-space test code see p2pmem-test repository.
Switch branches/tags
Clone or download
lsgunth nvmet: Optionally use PCI P2P memory
We create a configfs attribute in each nvme-fabrics target port to
enable p2p memory use. When enabled, the port will only then use the
p2p memory if a p2p memory device can be found which is behind the
same switch hierarchy as the RDMA port and all the block devices in
use. If the user enabled it and no devices are found, then the system
will silently fall back on using regular memory.

If appropriate, that port will allocate memory for the RDMA buffers
for queues from the p2pmem device falling back to system memory should
anything fail.

Ideally, we'd want to use an NVME CMB buffer as p2p memory. This would
save an extra PCI transfer as the NVME card could just take the data
out of it's own memory. However, at this time, only a limited number
of cards with CMB buffers seem to be available.

Signed-off-by: Stephen Bates <sbates@raithlin.com>
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
[hch: partial rewrite of the initial code]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Latest commit 7a69f9a Feb 2, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Documentation PCI/P2PDMA: Add P2P DMA driver writer's documentation Sep 12, 2018
LICENSES LICENSES: Add Linux-OpenIB license text Apr 27, 2018
arch Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l… Sep 9, 2018
block block: bfq: swap puts in bfqg_and_blkg_put Sep 6, 2018
certs export.h: remove VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR() Aug 22, 2018
crypto Merge tag 'dmaengine-4.19-rc1' of git://git.infradead.org/users/vkoul… Aug 18, 2018
drivers nvmet: Optionally use PCI P2P memory Sep 12, 2018
firmware kbuild: remove all dummy assignments to obj- Nov 18, 2017
fs afs: Fix cell specification to permit an empty address list Sep 7, 2018
include block: Add PCI P2P flag for request queue and check support for requests Sep 12, 2018
init Merge tag 'kbuild-v4.19-2' of git://git.kernel.org/pub/scm/linux/kern… Aug 25, 2018
ipc ipc/shm: properly return EIDRM in shm_lock() Sep 4, 2018
kernel Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/sc… Sep 9, 2018
lib lib/Kconfig.debug: fix three typos in help text Sep 4, 2018
mm Merge tag 'for-linus-20180906' of git://git.kernel.dk/linux-block Sep 6, 2018
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Sep 4, 2018
samples samples/bpf: all XDP samples should unload xdp/bpf prog on SIGTERM Aug 16, 2018
scripts Merge tag 'kbuild-fixes-v4.19' of git://git.kernel.org/pub/scm/linux/… Sep 9, 2018
security Merge tag 'apparmor-pr-2018-09-06' of git://git.kernel.org/pub/scm/li… Sep 6, 2018
sound ALSA: hda: Fix several mismatch for register mask and value Sep 3, 2018
tools Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Sep 8, 2018
usr initramfs: move gen_initramfs_list.sh from scripts/ to usr/ Aug 22, 2018
virt KVM: Remove obsolete kvm_unmap_hva notifier backend Sep 7, 2018
.clang-format clang-format: Set IndentWrappedFunctionNames false Aug 1, 2018
.cocciconfig scripts: add Linux .cocciconfig for coccinelle Jul 22, 2016
.get_maintainer.ignore Add hch to .get_maintainer.ignore Aug 21, 2015
.gitattributes .gitattributes: set git diff driver for C source code files Oct 8, 2016
.gitignore Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kern… Apr 16, 2018
.mailmap Merge tag 'libnvdimm-for-4.19_misc' of gitolite.kernel.org:pub/scm/li… Aug 26, 2018
COPYING COPYING: use the new text with points to the license files Mar 23, 2018
CREDITS 9p: remove Ron Minnich from MAINTAINERS Aug 17, 2018
Kbuild Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel… Nov 18, 2017
Kconfig kconfig: move the "Executable file formats" menu to fs/Kconfig.binfmt Aug 1, 2018
MAINTAINERS i2c: xiic: Record xilinx i2c with Zynq fragment Sep 7, 2018
Makefile Linux 4.19-rc3 Sep 10, 2018
README Docs: Added a pointer to the formatted docs to README Mar 21, 2018

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.