History log of /openbmc/linux/drivers/nvme/target/nvmet.h (Results 176 – 200 of 218)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# f301c2b1 12-Nov-2018 Jay Sternberg <jay.e.sternberg@intel.com>

nvmet: add defines for discovery change async events

Add AEN/AER values as defined by the specification

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Reviewed-by: Sag

nvmet: add defines for discovery change async events

Add AEN/AER values as defined by the specification

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# 90107455 12-Nov-2018 Jay Sternberg <jay.e.sternberg@intel.com>

nvmet: make kato and AEN processing for use by other controllers

Make common process of get/set features available to other controllers by
making simple functions static inline and other

nvmet: make kato and AEN processing for use by other controllers

Make common process of get/set features available to other controllers by
making simple functions static inline and others not static and prototypes
in nvmet.h file

Also remove static from nvmet_execute_async_event and add prototype to
nvmet.h to allow used by other controllers

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# f9362ac1 12-Nov-2018 Jay Sternberg <jay.e.sternberg@intel.com>

nvmet: allow Keep Alive for Discovery controller

Per change to specification allowing Discovery controllers to have
explicit persistent connections, remove restriction on Discovery
c

nvmet: allow Keep Alive for Discovery controller

Per change to specification allowing Discovery controllers to have
explicit persistent connections, remove restriction on Discovery
controllers allowing kato on connect.

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# 7114ddeb 12-Nov-2018 Jay Sternberg <jay.e.sternberg@intel.com>

nvmet: change aen mask functions to use bit numbers

Functions nvmet_aen_disabled and nvmet_clear_aen were using
values not bit numbers ie 1 << 9 not 9 for bit function clear_bit
and

nvmet: change aen mask functions to use bit numbers

Functions nvmet_aen_disabled and nvmet_clear_aen were using
values not bit numbers ie 1 << 9 not 9 for bit function clear_bit
and test_and_set_bit.

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Reviewed-by: Phil Cayton <phil.cayton@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# 6c8312ad 12-Nov-2018 Jay Sternberg <jay.e.sternberg@intel.com>

nvmet: provide aen bit functions for multiple controller types

Move nvmet_aen_disabled and nvmet_clear_aen in preparation for other types
of controllers to use, initially the discovery c

nvmet: provide aen bit functions for multiple controller types

Move nvmet_aen_disabled and nvmet_clear_aen in preparation for other types
of controllers to use, initially the discovery controller.

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


Revision tags: v4.18.18, v4.18.17, v4.19.1
# c09305ae 02-Nov-2018 Sagi Grimberg <sagi@grimberg.me>

nvmet: support for traffic based keep-alive

A controller that supports traffic based keep-alive can restart the keep
alive timer even when no keep-alive was not received in the kato peri

nvmet: support for traffic based keep-alive

A controller that supports traffic based keep-alive can restart the keep
alive timer even when no keep-alive was not received in the kato period
as long as other admin or I/O commands were received. For each command
set ctrl->cmd_seen to true, and when keep-alive timer expires, if any
commands were seen, resched ka_work instead of escalating to a fatal
error.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


# bd6bf7c1 25-Oct-2018 Linus Torvalds <torvalds@linux-foundation.org>

Merge tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI updates from Bjorn Helgaas:

- Fix ASPM link_state teardown on removal (Lukas Wun

Merge tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI updates from Bjorn Helgaas:

- Fix ASPM link_state teardown on removal (Lukas Wunner)

- Fix misleading _OSC ASPM message (Sinan Kaya)

- Make _OSC optional for PCI (Sinan Kaya)

- Don't initialize ASPM link state when ACPI_FADT_NO_ASPM is set
(Patrick Talbert)

- Remove x86 and arm64 node-local allocation for host bridge structures
(Punit Agrawal)

- Pay attention to device-specific _PXM node values (Jonathan Cameron)

- Support new Immediate Readiness bit (Felipe Balbi)

- Differentiate between pciehp surprise and safe removal (Lukas Wunner)

- Remove unnecessary pciehp includes (Lukas Wunner)

- Drop pciehp hotplug_slot_ops wrappers (Lukas Wunner)

- Tolerate PCIe Slot Presence Detect being hardwired to zero to
workaround broken hardware, e.g., the Wilocity switch/wireless device
(Lukas Wunner)

- Unify pciehp controller & slot structs (Lukas Wunner)

- Constify hotplug_slot_ops (Lukas Wunner)

- Drop hotplug_slot_info (Lukas Wunner)

- Embed hotplug_slot struct into users instead of allocating it
separately (Lukas Wunner)

- Initialize PCIe port service drivers directly instead of relying on
initcall ordering (Keith Busch)

- Restore PCI config state after a slot reset (Keith Busch)

- Save/restore DPC config state along with other PCI config state
(Keith Busch)

- Reference count devices during AER handling to avoid race issue with
concurrent hot removal (Keith Busch)

- If an Upstream Port reports ERR_FATAL, don't try to read the Port's
config space because it is probably unreachable (Keith Busch)

- During error handling, use slot-specific reset instead of secondary
bus reset to avoid link up/down issues on hotplug ports (Keith Busch)

- Restore previous AER/DPC handling that does not remove and
re-enumerate devices on ERR_FATAL (Keith Busch)

- Notify all drivers that may be affected by error recovery resets
(Keith Busch)

- Always generate error recovery uevents, even if a driver doesn't have
error callbacks (Keith Busch)

- Make PCIe link active reporting detection generic (Keith Busch)

- Support D3cold in PCIe hierarchies during system sleep and runtime,
including hotplug and Thunderbolt ports (Mika Westerberg)

- Handle hpmemsize/hpiosize kernel parameters uniformly, whether slots
are empty or occupied (Jon Derrick)

- Remove duplicated include from pci/pcie/err.c and unused variable
from cpqphp (YueHaibing)

- Remove driver pci_cleanup_aer_uncorrect_error_status() calls (Oza
Pawandeep)

- Uninline PCI bus accessors for better ftracing (Keith Busch)

- Remove unused AER Root Port .error_resume method (Keith Busch)

- Use kfifo in AER instead of a local version (Keith Busch)

- Use threaded IRQ in AER bottom half (Keith Busch)

- Use managed resources in AER core (Keith Busch)

- Reuse pcie_port_find_device() for AER injection (Keith Busch)

- Abstract AER interrupt handling to disconnect error injection (Keith
Busch)

- Refactor AER injection callbacks to simplify future improvments
(Keith Busch)

- Remove unused Netronome NFP32xx Device IDs (Jakub Kicinski)

- Use bitmap_zalloc() for dma_alias_mask (Andy Shevchenko)

- Add switch fall-through annotations (Gustavo A. R. Silva)

- Remove unused Switchtec quirk variable (Joshua Abraham)

- Fix pci.c kernel-doc warning (Randy Dunlap)

- Remove trivial PCI wrappers for DMA APIs (Christoph Hellwig)

- Add Intel GPU device IDs to spurious interrupt quirk (Bin Meng)

- Run Switchtec DMA aliasing quirk only on NTB endpoints to avoid
useless dmesg errors (Logan Gunthorpe)

- Update Switchtec NTB documentation (Wesley Yung)

- Remove redundant "default n" from Kconfig (Bartlomiej Zolnierkiewicz)

- Avoid panic when drivers enable MSI/MSI-X twice (Tonghao Zhang)

- Add PCI support for peer-to-peer DMA (Logan Gunthorpe)

- Add sysfs group for PCI peer-to-peer memory statistics (Logan
Gunthorpe)

- Add PCI peer-to-peer DMA scatterlist mapping interface (Logan
Gunthorpe)

- Add PCI configfs/sysfs helpers for use by peer-to-peer users (Logan
Gunthorpe)

- Add PCI peer-to-peer DMA driver writer's documentation (Logan
Gunthorpe)

- Add block layer flag to indicate driver support for PCI peer-to-peer
DMA (Logan Gunthorpe)

- Map Infiniband scatterlists for peer-to-peer DMA if they contain P2P
memory (Logan Gunthorpe)

- Register nvme-pci CMB buffer as PCI peer-to-peer memory (Logan
Gunthorpe)

- Add nvme-pci support for PCI peer-to-peer memory in requests (Logan
Gunthorpe)

- Use PCI peer-to-peer memory in nvme (Stephen Bates, Steve Wise,
Christoph Hellwig, Logan Gunthorpe)

- Cache VF config space size to optimize enumeration of many VFs
(KarimAllah Ahmed)

- Remove unnecessary <linux/pci-ats.h> include (Bjorn Helgaas)

- Fix VMD AERSID quirk Device ID matching (Jon Derrick)

- Fix Cadence PHY handling during probe (Alan Douglas)

- Signal Cadence Endpoint interrupts via AXI region 0 instead of last
region (Alan Douglas)

- Write Cadence Endpoint MSI interrupts with 32 bits of data (Alan
Douglas)

- Remove redundant controller tests for "device_type == pci" (Rob
Herring)

- Document R-Car E3 (R8A77990) bindings (Tho Vu)

- Add device tree support for R-Car r8a7744 (Biju Das)

- Drop unused mvebu PCIe capability code (Thomas Petazzoni)

- Add shared PCI bridge emulation code (Thomas Petazzoni)

- Convert mvebu to use shared PCI bridge emulation (Thomas Petazzoni)

- Add aardvark Root Port emulation (Thomas Petazzoni)

- Support 100MHz/200MHz refclocks for i.MX6 (Lucas Stach)

- Add initial power management for i.MX7 (Leonard Crestez)

- Add PME_Turn_Off support for i.MX7 (Leonard Crestez)

- Fix qcom runtime power management error handling (Bjorn Andersson)

- Update TI dra7xx unaligned access errata workaround for host mode as
well as endpoint mode (Vignesh R)

- Fix kirin section mismatch warning (Nathan Chancellor)

- Remove iproc PAXC slot check to allow VF support (Jitendra Bhivare)

- Quirk Keystone K2G to limit MRRS to 256 (Kishon Vijay Abraham I)

- Update Keystone to use MRRS quirk for host bridge instead of open
coding (Kishon Vijay Abraham I)

- Refactor Keystone link establishment (Kishon Vijay Abraham I)

- Simplify and speed up Keystone link training (Kishon Vijay Abraham I)

- Remove unused Keystone host_init argument (Kishon Vijay Abraham I)

- Merge Keystone driver files into one (Kishon Vijay Abraham I)

- Remove redundant Keystone platform_set_drvdata() (Kishon Vijay
Abraham I)

- Rename Keystone functions for uniformity (Kishon Vijay Abraham I)

- Add Keystone device control module DT binding (Kishon Vijay Abraham
I)

- Use SYSCON API to get Keystone control module device IDs (Kishon
Vijay Abraham I)

- Clean up Keystone PHY handling (Kishon Vijay Abraham I)

- Use runtime PM APIs to enable Keystone clock (Kishon Vijay Abraham I)

- Clean up Keystone config space access checks (Kishon Vijay Abraham I)

- Get Keystone outbound window count from DT (Kishon Vijay Abraham I)

- Clean up Keystone outbound window configuration (Kishon Vijay Abraham
I)

- Clean up Keystone DBI setup (Kishon Vijay Abraham I)

- Clean up Keystone ks_pcie_link_up() (Kishon Vijay Abraham I)

- Fix Keystone IRQ status checking (Kishon Vijay Abraham I)

- Add debug messages for all Keystone errors (Kishon Vijay Abraham I)

- Clean up Keystone includes and macros (Kishon Vijay Abraham I)

- Fix Mediatek unchecked return value from devm_pci_remap_iospace()
(Gustavo A. R. Silva)

- Fix Mediatek endpoint/port matching logic (Honghui Zhang)

- Change Mediatek Root Port Class Code to PCI_CLASS_BRIDGE_PCI (Honghui
Zhang)

- Remove redundant Mediatek PM domain check (Honghui Zhang)

- Convert Mediatek to pci_host_probe() (Honghui Zhang)

- Fix Mediatek MSI enablement (Honghui Zhang)

- Add Mediatek system PM support for MT2712 and MT7622 (Honghui Zhang)

- Add Mediatek loadable module support (Honghui Zhang)

- Detach VMD resources after stopping root bus to prevent orphan
resources (Jon Derrick)

- Convert pcitest build process to that used by other tools (iio, perf,
etc) (Gustavo Pimentel)

* tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (140 commits)
PCI/AER: Refactor error injection fallbacks
PCI/AER: Abstract AER interrupt handling
PCI/AER: Reuse existing pcie_port_find_device() interface
PCI/AER: Use managed resource allocations
PCI: pcie: Remove redundant 'default n' from Kconfig
PCI: aardvark: Implement emulated root PCI bridge config space
PCI: mvebu: Convert to PCI emulated bridge config space
PCI: mvebu: Drop unused PCI express capability code
PCI: Introduce PCI bridge emulated config space common logic
PCI: vmd: Detach resources after stopping root bus
nvmet: Optionally use PCI P2P memory
nvmet: Introduce helper functions to allocate and free request SGLs
nvme-pci: Add support for P2P memory in requests
nvme-pci: Use PCI p2pmem subsystem to manage the CMB
IB/core: Ensure we map P2P memory correctly in rdma_rw_ctx_[init|destroy]()
block: Add PCI P2P flag for request queue
PCI/P2PDMA: Add P2P DMA driver writer's documentation
docs-rst: Add a new directory for PCI documentation
PCI/P2PDMA: Introduce configfs/sysfs enable attribute helpers
PCI/P2PDMA: Add PCI p2pmem DMA mappings to adjust the bus offset
...

show more ...


Revision tags: v4.19, v4.18.16, v4.18.15, v4.18.14, v4.18.13
# c6925093 04-Oct-2018 Logan Gunthorpe <logang@deltatee.com>

nvmet: Optionally use PCI P2P memory

Create a configfs attribute in each nvme-fabrics namespace to enable P2P
memory use. The attribute may be enabled (with a boolean) or a specific

nvmet: Optionally use PCI P2P memory

Create a configfs attribute in each nvme-fabrics namespace to enable P2P
memory use. The attribute may be enabled (with a boolean) or a specific
P2P device may be given (with the device's PCI name).

When enabled, the namespace will ensure the underlying block device
supports P2P and is compatible with any specified P2P device. If no device
was specified it will ensure there is compatible P2P memory somewhere in
the system. Enabling a namespace with P2P memory will fail with EINVAL
(and an appropriate dmesg error) if any of these conditions are not met.

Once a controller is set up on a specific port, the P2P device to use for
each namespace will be found and stored in a radix tree by namespace ID.
When memory is allocated for a request, the tree is used to look up the P2P
device to allocate memory against. If no device is in the tree (because no
appropriate device was found), or if allocation of P2P memory fails, fall
back to using regular memory.

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>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

show more ...


# 5b2322e4 04-Oct-2018 Logan Gunthorpe <logang@deltatee.com>

nvmet: Introduce helper functions to allocate and free request SGLs

Add helpers to allocate and free the SGL in a struct nvmet_req:

int nvmet_req_alloc_sgl(struct nvmet_req *req)

nvmet: Introduce helper functions to allocate and free request SGLs

Add helpers to allocate and free the SGL in a struct nvmet_req:

int nvmet_req_alloc_sgl(struct nvmet_req *req)
void nvmet_req_free_sgl(struct nvmet_req *req)

This will be expanded in a future patch to implement peer-to-peer memory
DMAs and should be common with all target drivers.

The new helpers are used in nvmet-rdma. Seeing we use req.transfer_len as
the length of the SGL it is set earlier and cleared on any error. It also
seems to be unnecessary to accumulate the length as the map_sgl functions
should only ever be called once per request.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Sagi Grimberg <sagi@grimberg.me>

show more ...


Revision tags: v4.18.12, v4.18.11
# 73383adf 28-Sep-2018 Sagi Grimberg <sagi@grimberg.me>

nvmet: don't split large I/Os unconditionally

If we know that the I/O size exceeds our inline bio vec, no
point using it and split the rest to begin with. We could
in theory reuse th

nvmet: don't split large I/Os unconditionally

If we know that the I/O size exceeds our inline bio vec, no
point using it and split the rest to begin with. We could
in theory reuse the inline bio and only allocate the bio_vec,
but its really not worth optimizing for.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>

show more ...


Revision tags: v4.18.10, v4.18.9, v4.18.7, v4.18.6, v4.18.5, v4.17.18, v4.18.4, v4.18.3, v4.17.17, v4.18.2, v4.17.16, v4.17.15, v4.18.1, v4.18, v4.17.14
# dedf0be5 08-Aug-2018 Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

nvmet: add ns write protect support

This patch implements the Namespace Write Protect feature described in
"NVMe TP 4005a Namespace Write Protect". In this version, we implement
No W

nvmet: add ns write protect support

This patch implements the Namespace Write Protect feature described in
"NVMe TP 4005a Namespace Write Protect". In this version, we implement
No Write Protect and Write Protect states for target ns which can be
toggled by set-features commands from the host side.

For write-protect state transition, we need to flush the ns specified
as a part of command so we also add helpers for carrying out synchronous
flush operations.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
[hch: fixed an incorrect endianess conversion, minor cleanups]
Signed-off-by: Christoph Hellwig <hch@lst.de>

show more ...


Revision tags: v4.17.13, v4.17.12, v4.17.11, v4.17.10, v4.17.9, v4.17.8, v4.17.7, v4.17.6, v4.17.5, v4.17.4, v4.17.3, v4.17.2, v4.17.1, v4.17
# 62ac0d32 01-Jun-2018 Christoph Hellwig <hch@lst.de>

nvmet: support configuring ANA groups

Allow creating non-default ANA groups (group ID > 1). Groups are created
either by assigning the group ID to a namespace, or by creating a configfs

nvmet: support configuring ANA groups

Allow creating non-default ANA groups (group ID > 1). Groups are created
either by assigning the group ID to a namespace, or by creating a configfs
group object under a specific port. All namespaces assigned to a group
that doesn't have a configfs object for a given port are marked as
inaccessible.

Allow changing the ANA state on a per-port basis by creating an
ana_groups directory under each port, and another directory with an
ana_state file in it. The default ANA group 1 directory is created
automatically for each port.

For all changes in ANA configuration the ANA change AEN is sent. We only
keep a global changecount instead of additional per-group changecounts to
keep the implementation as simple as possible.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>

show more ...


# 72efd25d 19-Jul-2018 Christoph Hellwig <hch@lst.de>

nvmet: add minimal ANA support

Add support for Asynchronous Namespace Access as specified in NVMe 1.3
TP 4004.

Just add a default ANA group 1 that is optimized on all ports. Th

nvmet: add minimal ANA support

Add support for Asynchronous Namespace Access as specified in NVMe 1.3
TP 4004.

Just add a default ANA group 1 that is optimized on all ports. This is
(and will remain) the default assignment for any namespace not epxlicitly
assigned to another ANA group. The ANA state can be manually changed
through the configfs interface, including the change state.

Includes fixes and improvements from Hannes Reinecke.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>

show more ...


# 793c7cfc 13-May-2018 Christoph Hellwig <hch@lst.de>

nvmet: track and limit the number of namespaces per subsystem

TP 4004 introduces a new 'Maximum Number of Allocated Namespaces' field
in the Identify controller data to help the host siz

nvmet: track and limit the number of namespaces per subsystem

TP 4004 introduces a new 'Maximum Number of Allocated Namespaces' field
in the Identify controller data to help the host size resources. Put
an upper limit on the supported namespaces to be able to support this
value as supporting 32-bits worth of namespaces would lead to very
large buffers. The limit is completely arbitrary at this point.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>

show more ...


# 4ee43280 07-Jun-2018 Christoph Hellwig <hch@lst.de>

nvmet: keep a port pointer in nvmet_ctrl

This will be needed for the ANA AEN code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>

nvmet: keep a port pointer in nvmet_ctrl

This will be needed for the ANA AEN code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>

show more ...


# 0d5ee2b2 20-Jun-2018 Steve Wise <swise@opengridcomputing.com>

nvmet-rdma: support max(16KB, PAGE_SIZE) inline data

The patch enables inline data sizes using up to 4 recv sges, and capping
the size at 16KB or at least 1 page size. So on a 4K page s

nvmet-rdma: support max(16KB, PAGE_SIZE) inline data

The patch enables inline data sizes using up to 4 recv sges, and capping
the size at 16KB or at least 1 page size. So on a 4K page system, up to
16KB is supported, and for a 64K page system 1 page of 64KB is supported.

We avoid > 0 order page allocations for the inline buffers by using
multiple recv sges, one for each page. If the device cannot support
the configured inline data size due to lack of enough recv sges, then
log a warning and reduce the inline size.

Add a new configfs port attribute, called param_inline_data_size,
to allow configuring the size of inline data for a given nvmf port.
The maximum size allowed is still enforced by nvmet-rdma with
NVMET_RDMA_MAX_INLINE_DATA_SIZE, which is now max(16KB, PAGE_SIZE).
And the default size, if not specified via configfs, is still PAGE_SIZE.
This preserves the existing behavior, but allows larger inline sizes
for small page systems. If the configured inline data size exceeds
NVMET_RDMA_MAX_INLINE_DATA_SIZE, a warning is logged and the size is
reduced. If param_inline_data_size is set to 0, then inline data is
disabled for that nvmf port.

Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>

show more ...


# 55eb942e 19-Jun-2018 Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

nvmet: add buffered I/O support for file backed ns

Add a new "buffered_io" attribute, which disabled direct I/O and thus
enables page cache based caching when enabled. The attribute ca

nvmet: add buffered I/O support for file backed ns

Add a new "buffered_io" attribute, which disabled direct I/O and thus
enables page cache based caching when enabled. The attribute can only
be changed when the namespace is disabled as the file has to be reopend
for the change to take effect.

The possibly blocking read/write are deferred to a newly introduced
global workqueue.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>

show more ...


# 55fdd6b6 30-May-2018 Christoph Hellwig <hch@lst.de>

nvmet: mask pending AENs

Per section 5.2 of the NVMe 1.3 spec:

"When the controller posts a completion queue entry for an outstanding
Asynchronous Event Request command and

nvmet: mask pending AENs

Per section 5.2 of the NVMe 1.3 spec:

"When the controller posts a completion queue entry for an outstanding
Asynchronous Event Request command and thus reports an asynchronous
event, subsequent events of that event type are automatically masked by
the controller until the host clears that event. An event is cleared by
reading the log page associated with that event using the Get Log Page
command (see section 5.14)."

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>

show more ...


# c86b8f7b 30-May-2018 Christoph Hellwig <hch@lst.de>

nvmet: add AEN configuration support

AEN configuration via the 'Get Features' and 'Set Features' admin
command is mandatory, so we should be implemeting handling for it.

Signed-

nvmet: add AEN configuration support

AEN configuration via the 'Get Features' and 'Set Features' admin
command is mandatory, so we should be implemeting handling for it.

Signed-off-by: Hannes Reinecke <hare@suse.com>
[hch: use WRITE_ONCE, check for invalid values]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>

show more ...


# c16734ea 25-May-2018 Christoph Hellwig <hch@lst.de>

nvmet: implement the changed namespaces log

Just keep a per-controller buffer of changed namespaces and copy it out
in the get log page implementation.

Signed-off-by: Christoph

nvmet: implement the changed namespaces log

Just keep a per-controller buffer of changed namespaces and copy it out
in the get log page implementation.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>

show more ...


# c7759fff 22-May-2018 Christoph Hellwig <hch@lst.de>

nvmet: add a new nvmet_zero_sgl helper

Zeroes the SGL in the payload.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by

nvmet: add a new nvmet_zero_sgl helper

Zeroes the SGL in the payload.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>

show more ...


# fe4a9791 26-May-2018 Christoph Hellwig <hch@lst.de>

nvme-loop: add support for multiple ports

This is useful at least for multipath testing.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshir

nvme-loop: add support for multiple ports

This is useful at least for multipath testing.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>

show more ...


# d5eff33e 22-May-2018 Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>

nvmet: add simple file backed ns support

This patch adds simple file backed namespace support for NVMeOF target.

The new file io-cmd-file.c is responsible for handling the code for

nvmet: add simple file backed ns support

This patch adds simple file backed namespace support for NVMeOF target.

The new file io-cmd-file.c is responsible for handling the code for I/O
commands when ns is file backed. Also, we introduce mempools based slow
path using sync I/Os for file backed ns to ensure forward progress under
reclaim.

The old block device based implementation is moved to io-cmd-bdev.c and
use a "nvmet_bdev_" symbol prefix. The enable/disable calls are also
move into the respective files.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
[hch: updated changelog, fixed double req->ns lookup in bdev case]
Signed-off-by: Christoph Hellwig <hch@lst.de>

show more ...


Revision tags: v4.16
# e929f06d 20-Mar-2018 Christoph Hellwig <hch@lst.de>

nvmet: constify struct nvmet_fabrics_ops

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>


Revision tags: v4.15
# 4c652685 24-Jan-2018 Sagi Grimberg <sagi@grimberg.me>

nvmet: don't return "any" ip address in discovery log page

Its perfectly valid to assign a nvmet port to listen on "any"
IP address (traddr 0.0.0.0 for ipv4 address family) for IP based

nvmet: don't return "any" ip address in discovery log page

Its perfectly valid to assign a nvmet port to listen on "any"
IP address (traddr 0.0.0.0 for ipv4 address family) for IP based
transport ports. However, we must not return this address in
discovery log entries. Instead we need to return the address
where the request was accepted on (req->port address).

Since this is nvme transport specific, introduce an optional
.disc_traddr interface that is designed to check that a
port in question is bound to "any" IP address and if so, set
the traddr from the port where the request came from.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

show more ...


123456789