I am using some middleware that expects memory to be reserved with the memmap= kernel parameter.
With centos 7.5 supermicro x11sta-t – when I set kernel parameter memmap= the kernel hangs on boot.
Is there some new limitation on this time-honored means of reserving a large contiguous array of memory for drivers to avoid scatter-gather?
2
Answers
My time-honored memory failed me yet again. I couldn't find my notes on the process and tried to work from memory.
When configuring memmap= from /etc/default/grub, you MUST escape the '' and '$' characters on the command line. So if you want:
memmap=64M$4G
then you MUST use
memmap=64M$4G
in the /etc/default/grub file. This ends up being
memmap=64M$4G
in the grub menu, which will actually work.
Don't fall in this hole that I seem to keep falling into...
A note to @Nufosmatic’s answer.
I am working on Fedora 36 and by default GRUB2 uses BootLoaderSpec (BLS). BLS uses
blscfg
command to read a.conf
file in/boot/loader/entries/
. It seems that$
is always eaten byblscfg
regardless how manyyou add before it.
So for @Nufosmatic’s solution to work, also disable BLS by setting
GRUB_ENABLE_BLSCFG=false
in/etc/default/grub
, then generate a newgrub.cfg
bygrub2-mkconfig -o /boot/grub2/grub.cfg
.