Answers:
该__init函数通过调用ipc_ns_init设置初始值,将其设置为宏的值。shmmaxshm_init_nsSHMMAX
的定义SHMMAX在<uapi/linux/shm.h>:
#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */
在64位计算机上,该定义等于您找到的值18446744073692774399。
在运行中,您只需回显/ proc / sys / kernel / shmmax!
# echo 20446744073692774399 > /proc/sys/kernel/shmmax
但是大多数人用类似于以下内容的行来编辑/etc/sysctl.conf:
kernel.shmmax=your_new_value_here
请参见sysctl(8)手册页。