Skip to content

Commit

Permalink
nvme-pci: use appropriate initial chunk size for HMB allocation
Browse files Browse the repository at this point in the history
The initial chunk size for host memory buffer allocation is currently
PAGE_SIZE << MAX_ORDER.  MAX_ORDER order allocation is usually failed
without CONFIG_DMA_CMA.  So the HMB allocation is retried with chunk size
PAGE_SIZE << (MAX_ORDER - 1) in general, but there is no problem if the
retry allocation works correctly.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
[hch: rebased]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Cc: stable@vger.kernel.org
  • Loading branch information
Akinobu Mita authored and Christoph Hellwig committed Sep 11, 2017
1 parent 92dc689 commit 30f92d6
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/nvme/host/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1680,7 +1680,7 @@ static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred)
u32 chunk_size;

/* start big and work our way down */
for (chunk_size = min_t(u64, preferred, PAGE_SIZE << MAX_ORDER);
for (chunk_size = min_t(u64, preferred, PAGE_SIZE * MAX_ORDER_NR_PAGES);
chunk_size >= PAGE_SIZE * 2;
chunk_size /= 2) {
if (!__nvme_alloc_host_mem(dev, preferred, chunk_size)) {
Expand Down

0 comments on commit 30f92d6

Please sign in to comment.