Error with --no-huge when compiled with -fsanitize=address from gcc 15
Burakov, Anatoly
anatoly.burakov at intel.com
Thu Sep 4 16:35:33 CEST 2025
On 6/10/2025 10:15 AM, Robin Jarry wrote:
> +Anatoly and Ferruh in direct address.
>
> Robin Jarry, May 15, 2025 at 12:32:
>> I recently updated to Fedora 42 that comes with GCC 15.
>>
>> When building with -fsanitize=address (libasan.so.8), it seems that
>> the --no-huge mode (along with --no-shconf) fails at initialization for
>> some obscure reason.
>>
>> "couldn't allocate memory due to IOVA exceeding limits of current DMA mask."
>
> Hi Anatoly, Ferruh, all,
>
> Allow me to bump this. GCC 15 has been out for quite a while now and it
> seems that libasan cannot be used anymore with the DPDK memory allocator
> as it is.
>
> I have tracked the commit that introduced this warning up to 2018:
>
> https://git.dpdk.org/dpdk/commit/?id=165c89b84538f
>
> I would be much grateful if you could help. I don't know the internals
> of libasan, but I assume it shuffles mapped memory around and it
> conflicts with the DPDK allocator inner workings.
>
> I have found this libasan commit which "could" be related:
>
> https://github.com/llvm/llvm-project/commit/7ede1c497302
>
> In fact, part of it was reverted a while after on macos because of
> suspected breakage:
>
> https://github.com/llvm/llvm-project/commit/4e332bba2f3a
>
Hi Robin,
I have been trying to reproduce this but I'm unable to. I run some old
CentOS so I built GCC15 manually and tried reproducing with that. The
version I'm using is 15.2, could you please retest with latest GCC15 and
see if it was fixed?
(if not, I'll try to get a more recent distro and reproduce again)
The DMA mask checking you're referring to is there for cases where e.g.
in a VM the emulated IOMMU will not have full address width (39 bits was
common at the time), and thus we couldn't use the full VA space for IOVA
addressing, and had to resort to using real physical addresses (because
kernel ensure those are to be within support range of IOMMU). Were you
running this test in a VM, by any chance?
--
Thanks,
Anatoly
More information about the dev
mailing list