We don't use userspace program to allocate memory. We use kernel module to do so. Here is the sample kernel program you can use to test on a machine that has more than 2 TB memory. Use "insmod memtest.ko mb=2100000" to allocate more than 2 TB memory. Use "rmmod memtest" to free the memory. memtest.c ============================================================= #include #include #include #include #include #include #include #ifdef MODVERSIONS #include #endif #include static char *mem_ptr; MODULE_LICENSE("GPL"); int mb = 0; MODULE_PARM_DESC(mb, "alloc MB memory"); module_param(mb, int, S_IWUSR | S_IRUGO); static int __init memtest_init(void) { mem_ptr = NULL; if (mb > 0) { unsigned long alloc_len; alloc_len = mb * 1024 * 1024; mem_ptr = vmalloc(alloc_len); if (mem_ptr) { printk("memtest: vmalloc for size %u MB.\n", mb); } else { printk("memtest: failed to vmalloc for bytes %u MB.\n", mb); } } else { printk("memtest len_MB\n"); } return(0); } static void __exit memtest_exit(void) { if (mem_ptr) { vfree(mem_ptr); printk("memtest: vfree for size %u MB.\n", mb); mem_ptr = NULL; } } module_init(memtest_init); module_exit(memtest_exit); On Wed, Nov 4, 2020 at 7:38 PM Andrew Morton wrote: > On Wed, 4 Nov 2020 15:53:36 -0500 Hsin-Hui Wu wrote: > > > Did this require custom kernel changes? If not, precisely which system > > calls were used to cause this allocation attempt? > > > > [Frank] No. vmalloc(). > > > > vmalloc() is not a system call. > > Please fully describe how vmalloc() came to be called with such a large > request size. Fully. Are you able to provide example userspace code? > >