From: Robin Murphy <robin.murphy@arm.com>
To: Jim Quinlan <james.quinlan@broadcom.com>,
Linus Walleij <linus.walleij@linaro.org>
Cc: Christoph Hellwig <hch@lst.de>,
bcm-kernel-feedback-list@broadcom.com, jim2101024@gmail.com,
Russell King <linux@armlinux.org.uk>,
Arnd Bergmann <arnd@arndb.de>,
Geert Uytterhoeven <geert+renesas@glider.be>,
"Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Jonathan Corbet <corbet@lwn.net>,
Thomas Gleixner <tglx@linutronix.de>,
Sebastian Reichel <sebastian.reichel@collabora.com>,
"Mike Rapoport (IBM)" <rppt@kernel.org>,
Eric DeVolder <eric.devolder@oracle.com>,
Nathan Chancellor <nathan@kernel.org>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
"moderated list:ARM PORT" <linux-arm-kernel@lists.infradead.org>,
open list <linux-kernel@vger.kernel.org>,
Claire Chang <tientzu@chromium.org>
Subject: Re: [PATCH v1 1/1] ARM: Select DMA_DIRECT_REMAP to fix restricted DMA
Date: Thu, 28 Sep 2023 16:47:07 +0100 [thread overview]
Message-ID: <d0d1452f-3746-a357-3255-c164222ba4bf@arm.com> (raw)
In-Reply-To: <CA+-6iNwkegPBxeksgNntrP1Cr5Edk5Q4o660NCZjKo9s8z3OOQ@mail.gmail.com>
On 28/09/2023 1:07 pm, Jim Quinlan wrote:
> On Wed, Sep 27, 2023 at 7:10 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>>
>> Hi Jim,
>>
>> thanks for your patch!
>>
>> On Tue, Sep 26, 2023 at 7:52 PM Jim Quinlan <james.quinlan@broadcom.com> wrote:
>>
>>> Without this commit, the use of dma_alloc_coherent() while
>>> using CONFIG_DMA_RESTRICTED_POOL=y breaks devices from working.
>>> For example, the common Wifi 7260 chip (iwlwifi) works fine
>>> on arm64 with restricted memory but not on arm, unless this
>>> commit is applied.
>>>
>>> Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com>
>>
>> (...)
>>> + select DMA_DIRECT_REMAP
>>
>> Christoph invented that symbol so he can certainly
>> explain what is missing to use this on ARM.
>>
>> This looks weird to me, because:
>>> git grep atomic_pool_init
>> arch/arm/mm/dma-mapping.c:static int __init atomic_pool_init(void)
>> kernel/dma/pool.c:static int __init dma_atomic_pool_init(void)
>>
>> Now you have two atomic DMA pools in the kernel,
>> and a lot more than that is duplicated. I'm amazed that it
>> compiles at all.
>>
>> Clearly if you want to do this, surely the ARM-specific
>> arch/arm/mm/dma-mapping.c and arch/arm/mm/dma-mapping-nommu.c
>> needs to be removed at the same time?
>>
>> However I don't think it's that simple, because Christoph would surely
>> had done this a long time ago if it was that simple.
>
> Hello Linus,
>
> Yes, this is the reason I used "RFC" as the fix looked too easy to be viable :-)
> I debugged it enough to see that the host driver's
> writes to the dma_alloc_coherent() region were not appearing in
> memory, and that
> led me to DMA_DIRECT_REMAP.
Oh, another thing - the restricted-dma-pool is really only for streaming
DMA - IIRC there can be cases where the emergency fallback of trying to
allocate out of the bounce buffer won't work properly. Are you also
using an additional shared-dma-pool carveout to satisfy the coherent
allocations, per the DT binding?
Thanks,
Robin.
next prev parent reply other threads:[~2023-09-28 15:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-26 17:52 RFC: ARM && restricted DMA apparently not working Jim Quinlan
2023-09-26 17:52 ` [PATCH v1 1/1] ARM: Select DMA_DIRECT_REMAP to fix restricted DMA Jim Quinlan
2023-09-27 7:13 ` kernel test robot
2023-09-27 23:10 ` Linus Walleij
2023-09-28 12:07 ` Jim Quinlan
2023-09-28 13:09 ` Jim Quinlan
2023-09-28 13:32 ` Arnd Bergmann
2023-09-28 14:00 ` Jim Quinlan
2023-09-28 14:01 ` Jim Quinlan
2023-09-28 15:16 ` Arnd Bergmann
2023-09-28 15:33 ` Robin Murphy
2023-09-28 16:20 ` Arnd Bergmann
2023-09-29 19:24 ` Jim Quinlan
2023-09-29 19:52 ` Arnd Bergmann
2023-09-29 21:13 ` Jim Quinlan
2023-10-01 12:48 ` Jim Quinlan
2023-09-28 15:47 ` Robin Murphy [this message]
2023-10-02 12:33 ` Jim Quinlan
2023-10-02 15:08 ` Robin Murphy
2023-10-02 6:16 ` Christoph Hellwig
2023-10-05 17:53 ` Jim Quinlan
2023-10-06 7:40 ` Christoph Hellwig
[not found] ` <CGME20231020081648eucas1p17d2572cfca5762d2f5cbc560dd648564@eucas1p1.samsung.com>
2023-10-20 8:16 ` Marek Szyprowski
2023-10-23 6:16 ` Christoph Hellwig
2023-09-28 16:24 ` Christophe Leroy
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=d0d1452f-3746-a357-3255-c164222ba4bf@arm.com \
--to=robin.murphy@arm.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=christophe.leroy@csgroup.eu \
--cc=corbet@lwn.net \
--cc=eric.devolder@oracle.com \
--cc=geert+renesas@glider.be \
--cc=hch@lst.de \
--cc=james.quinlan@broadcom.com \
--cc=jim2101024@gmail.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=nathan@kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=rppt@kernel.org \
--cc=sebastian.reichel@collabora.com \
--cc=tglx@linutronix.de \
--cc=tientzu@chromium.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®