#1056933 raspi-firmware: CMA=0 not working as intended

#1056933#5
Date:
2023-11-26 23:14:58 UTC
From:
To:
When I set CMA=0 the cma=… argument in cmdline.txt is omitted. This
leads to:

[    0.000000] Memory: 413440K/507904K available (8192K kernel code, 990K rwdata
, 2024K rodata, 1024K init, 252K bss, 28928K reserved, 65536K cma-reserved)


However, when I manually add cma=0 to cmdline.txt I get this instead:

[    0.000000] Memory: 479104K/507904K available (8192K kernel code, 990K rwdata
, 2024K rodata, 1024K init, 252K bss, 28800K reserved, 0K cma-reserved)


This is Debian bullseye/armel (with raspi-firmware from sid)
on an RPi B+ (rev. 1.2).

bye,
//mirabilos

#1056933#10
Date:
2023-11-26 23:35:55 UTC
From:
To:
Thorsten Glaser <tg@debian.org> (2023-11-26):

This is consistent with the documentation in that file.

Sounds like you want CMA=0M then?


Cheers,

#1056933#15
Date:
2023-11-27 00:17:56 UTC
From:
To:
Cyril Brulebois dixit:

It’s not. The file documents:

# To disable CMA allocation entirely, f.e. for a headless setup, set
# CMA=0

But CMA=0 in the file leads to no cma=0 on the kernel command line,
which makes the kernel use the default CMA allocation of 64 MiB.

Perhaps, I just threw it here for now:

$ cat /etc/default/raspi-extra-cmdline
TZ=:Europe/Berlin nofb nomodeset cma=0

Meow,
//mirabilos

#1056933#20
Date:
2023-11-27 00:52:00 UTC
From:
To:
Thorsten Glaser <tg@debian.org> (2023-11-27):

Well, that's still the intent behind the commit that introduced support
for that. And since that went into a stable release, I don't see how we
could safely move away from CMA=0 means no cma= settings at all.

If you don't want to verify a proposed solution to the needs you
expressed, I suppose this bug report can be closed?

#1056933#25
Date:
2023-11-27 01:21:20 UTC
From:
To:
Cyril Brulebois dixit:

But it totally mismatches the documentation!

Granted, but…

… definitely not.

Currently, CMA=0 is documented as “disable CMA allocation entirely”,
but it DOES NOT DO THAT. Instead it removes the cma= parameter from
the kernel command line INSTEAD of disabling CMA, which makes the
kernel use its default NONZERO allocation.

At the *very* leaast, that comment must be changed to e.g.

# To disable CMA allocation entirely, e.g. for a headless setup,
# set CMA=0M; setting CMA=0 makes the kernel use the default CMA
# size by omitting the cma parameter from the command line.

bye,
//mirabilos