From: Jani Nikula <jani.nikula@linux.intel.com>
To: Luca Coelho <luca@coelho.fi>,
Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>,
intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Subject: Re: [core-for-CI] nvme-pci: don't use dma_alloc_noncontiguous with 0 merge boundary
Date: Wed, 04 Dec 2024 17:45:21 +0200 [thread overview]
Message-ID: <874j3j310u.fsf@intel.com> (raw)
In-Reply-To: <af860d5b9de4a1ded8fc655a3fd44a83ebb40eb6.camel@coelho.fi>
On Wed, 04 Dec 2024, Luca Coelho <luca@coelho.fi> wrote:
> Hi Chaitanya,
>
> On Wed, 2024-12-04 at 11:36 +0530, Chaitanya Kumar Borah wrote:
>> From: Christoph Hellwig <hch@lst.de>
>>
>> Only call into nvme_alloc_host_mem_single which uses
>> dma_alloc_noncontiguous when there is non-null dma merge boundary.
>> Without this we'll call into dma_alloc_noncontiguous for device using
>> dma-direct, which can work fine as long as the preferred size is below the
>> MAX_ORDER of the page allocator, but blows up with a warning if it is
>> too large.
>>
>> Fixes: 63a5c7a4b4c4 ("nvme-pci: use dma_alloc_noncontigous if possible")
>> Reported-by: Leon Romanovsky <leon@kernel.org>
>> Reported-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
>> Signed-off-by: Christoph Hellwig <hch@lst.de>
>> References: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13227
>> Link: https://lore.kernel.org/linux-nvme/39a67024-2926-4a20-8feb-77dd64ab7c39@kernel.dk/T/#mfef47937b20e33aa3cc63a3af930f8a9f9baf8c2
>> ---
>> drivers/nvme/host/pci.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
>> index 4c644bb7f069..778f124c2e21 100644
>> --- a/drivers/nvme/host/pci.c
>> +++ b/drivers/nvme/host/pci.c
>> @@ -2172,6 +2172,7 @@ static int nvme_alloc_host_mem_multi(struct nvme_dev *dev, u64 preferred,
>>
>> static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred)
>> {
>> + unsigned long dma_merge_moundary = dma_get_merge_boundary(dev->dev);
>> u64 min_chunk = min_t(u64, preferred, PAGE_SIZE * MAX_ORDER_NR_PAGES);
>> u64 hmminds = max_t(u32, dev->ctrl.hmminds * 4096, PAGE_SIZE * 2);
>> u64 chunk_size;
>> @@ -2180,7 +2181,7 @@ static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred)
>> * If there is an IOMMU that can merge pages, try a virtually
>> * non-contiguous allocation for a single segment first.
>> */
>> - if (!(PAGE_SIZE & dma_get_merge_boundary(dev->dev))) {
>> + if (dma_merge_moundary && (PAGE_SIZE & dma_merge_moundary) == 0) {
>> if (!nvme_alloc_host_mem_single(dev, preferred))
>> return 0;
>> }
>
> This looks sane and has already been reviewed in the linux-nvme mailing
> list. So, FWIW, you have my:
>
> Acked-by: Luca Coelho <luciano.coelho@intel.com>
Pushed to core-for-CI.
BR,
Jani.
--
Jani Nikula, Intel
prev parent reply other threads:[~2024-12-04 15:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-04 6:06 [core-for-CI] nvme-pci: don't use dma_alloc_noncontiguous with 0 merge boundary Chaitanya Kumar Borah
2024-12-04 6:38 ` ✓ CI.Patch_applied: success for " Patchwork
2024-12-04 6:38 ` ✗ CI.checkpatch: warning " Patchwork
2024-12-04 6:39 ` ✓ CI.KUnit: success " Patchwork
2024-12-04 6:57 ` ✓ CI.Build: " Patchwork
2024-12-04 6:59 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
2024-12-04 6:59 ` ✓ CI.Hooks: success " Patchwork
2024-12-04 7:01 ` ✓ CI.checksparse: " Patchwork
2024-12-04 7:12 ` ✓ i915.CI.BAT: " Patchwork
2024-12-04 8:37 ` ✗ i915.CI.Full: failure " Patchwork
2024-12-04 11:38 ` [core-for-CI] " Luca Coelho
2024-12-04 15:45 ` Jani Nikula [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874j3j310u.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=chaitanya.kumar.borah@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=luca@coelho.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.