From: "Arnd Bergmann" <arnd@arndb.de>
To: "Luca Weiss" <luca.weiss@fairphone.com>, "Takashi Iwai" <tiwai@suse.de>
Cc: "Arnd Bergmann" <arnd@kernel.org>,
"Mark Brown" <broonie@kernel.org>,
"Wesley Cheng" <quic_wcheng@quicinc.com>,
"Jaroslav Kysela" <perex@perex.cz>,
"Takashi Iwai" <tiwai@suse.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Dan Carpenter" <dan.carpenter@linaro.org>,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] ALSA: qc_audio_offload: try to reduce address space confusion
Date: Fri, 05 Sep 2025 16:50:53 +0200 [thread overview]
Message-ID: <5d5ab559-4d01-4092-a872-2d0bb6ac5ebf@app.fastmail.com> (raw)
In-Reply-To: <DCKW943MHDZO.3QJRSTIXDW1C4@fairphone.com>
On Fri, Sep 5, 2025, at 15:17, Luca Weiss wrote:
> On Fri Sep 5, 2025 at 2:08 PM CEST, Arnd Bergmann wrote:
>> On Fri, Sep 5, 2025, at 13:47, Luca Weiss wrote:
>>
>> This does mean that the address returned from xfer_buf is not
>> a kernel address in the virtual map though, and converting it
>> through virt_to_phys() makes the pa undefined for
>> uaudio_iommu_map(). Can you print what that pa value
>> is that you get here, and where that sits in the address space?
>
> Adding a debug print gives me the following below.
>
> dev_err(uaudio_qdev->data->dev, "xfer_buf_pa=%llx\n", xfer_buf_pa);
>
> Not sure what exactly you mean with "where that sits in the address
> space" and how I can figure that out.
>
> [ 130.124938] q6usb-dai
> 3000000.remoteproc:glink-edge:apr:service@4:usbd:
> xfer_buf_pa=ffffba0486ea6000
Splitting the address in 16-bit chunks, this is
0x00ff.ffba0.486ea.6000
which is well outside of the 40-bit physical address space of
the CPU, which confirms that the virtual address was not in
the linear map at all, and probably it should not get passed
into dma_get_sgtable() either.
From what I can tell, this seems to correspond to a virtual
address in the vmalloc space instead, which is what happens
e.g. on arm64 when you ask for an allocation on a noncoherent
device.
It seems that dma_get_sgtable() does have a special case for
this and ends up walking the page table for it, which I
assume is what the driver is relying on, so Takashi's patch
seems fine but could use a few more comments.
It's still unclear to me why the driver has custom iommu
handling rather than just using dma_map_single() on buffers
allocated with dma_alloc_noncoherent or DMA_ATTR_NO_KERNEL_MAPPING
here, since it doesn't even use the virtual address.
Arnd
next prev parent reply other threads:[~2025-09-05 14:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-13 12:34 [PATCH 0/3] ALSA: qc_audio_offload: address space cleanups Arnd Bergmann
2025-05-13 12:34 ` [PATCH 1/3] ALSA: qc_audio_offload: rename dma/iova/va/cpu/phys variables Arnd Bergmann
2025-05-13 12:34 ` [PATCH 2/3] ALSA: qc_audio_offload: avoid leaking xfer_buf allocation Arnd Bergmann
2025-05-13 12:34 ` [PATCH 3/3] ALSA: qc_audio_offload: try to reduce address space confusion Arnd Bergmann
2025-08-01 11:31 ` Luca Weiss
2025-08-01 12:31 ` Takashi Iwai
2025-08-01 12:35 ` Luca Weiss
2025-08-01 12:49 ` Takashi Iwai
2025-09-05 11:47 ` Luca Weiss
2025-09-05 12:08 ` Arnd Bergmann
2025-09-05 13:17 ` Luca Weiss
2025-09-05 14:50 ` Arnd Bergmann [this message]
2025-09-05 12:26 ` Takashi Iwai
2025-09-05 14:54 ` Arnd Bergmann
2025-09-05 14:57 ` Takashi Iwai
2025-09-16 8:41 ` Luca Weiss
2025-09-16 16:09 ` Takashi Iwai
2025-09-17 8:19 ` Luca Weiss
2025-09-17 8:30 ` Takashi Iwai
2025-09-17 12:27 ` Luca Weiss
2025-09-17 12:35 ` Takashi Iwai
2025-09-17 12:52 ` Arnd Bergmann
2025-09-17 13:12 ` Takashi Iwai
2025-05-14 9:01 ` [PATCH 0/3] ALSA: qc_audio_offload: address space cleanups Takashi Iwai
2025-05-21 12:33 ` Greg Kroah-Hartman
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=5d5ab559-4d01-4092-a872-2d0bb6ac5ebf@app.fastmail.com \
--to=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=broonie@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=luca.weiss@fairphone.com \
--cc=perex@perex.cz \
--cc=quic_wcheng@quicinc.com \
--cc=tiwai@suse.com \
--cc=tiwai@suse.de \
/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