Le Wed, Apr 07, 2021 at 07:59:27AM -0700, Bruce Mitchell a écrit : > On 4/7/2021 07:48, Corentin Labbe wrote: > > Le Wed, Apr 07, 2021 at 07:28:26AM -0700, Bruce Mitchell a écrit : > >> On 4/7/2021 07:23, Corentin Labbe wrote: > >>> Le Wed, Apr 07, 2021 at 07:13:04AM -0700, Bruce Mitchell a écrit : > >>>> On 4/7/2021 05:54, Corentin Labbe wrote: > >>>>> Hello > >>>>> > >>>>> I try to do kexec on a cortina/gemini SoC. > >>>>> On a "normal" boot, kexec fail to find memory so I added crashkernel=8M to cmdline. (kernel size is ~6M). > >>>>> But now, kernel fail to reserve memory: > >>>>> Load Kern image from 0x30020000 to 0x800000 size 7340032 > >>>>> Booting Linux on physical CPU 0x0 > >>>>> Linux version 5.12.0-rc5-next-20210401+ (compile@Red) (armv7a-unknown-linux-gnueabihf-gcc (Gentoo 9.3.0-r2 p4) 9.3.0, GNU ld (Gentoo 2.34 p6) 2.34.0) #98 PREEMPT Wed Apr 7 14:14:08 CEST 2021 > >>>>> CPU: FA526 [66015261] revision 1 (ARMv4), cr=0000397f > >>>>> CPU: VIVT data cache, VIVT instruction cache > >>>>> OF: fdt: Machine model: Edimax NS-2502 > >>>>> Memory policy: Data cache writeback > >>>>> Zone ranges: > >>>>> Normal [mem 0x0000000000000000-0x0000000007ffffff] > >>>>> HighMem empty > >>>>> Movable zone start for each node > >>>>> Early memory node ranges > >>>>> node 0: [mem 0x0000000000000000-0x0000000007ffffff] > >>>>> Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff] > >>>>> crashkernel reservation failed - No suitable area found. > >>>>> Built 1 zonelists, mobility grouping on. Total pages: 32512 > >>>>> Kernel command line: console=ttyS0,19200n8 ip=dhcp crashkernel=8M > >>>>> Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear) > >>>>> Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear) > >>>>> mem auto-init: stack:off, heap alloc:off, heap free:off > >>>>> Memory: 119476K/131072K available (5034K kernel code, 579K rwdata, 1372K rodata, 3020K init, 210K bss, 11596K reserved, 0K cma-reserved, 0K highmem) > >>>>> SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > >>>>> > >>>>> What can I do ? > >>>>> > >>>>> Thanks > >>>>> Regards > >>>>> > >>>>> _______________________________________________ > >>>>> kexec mailing list > >>>>> kexec@xxxxxxxxxxxxxxxxxxx > >>>>> http://lists.infradead.org/mailman/listinfo/kexec > >>>>> > >>>> > >>>> Hello Corentin, > >>>> > >>>> I see much larger crashkernel=xxM being shown here > >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kdump/kdump.rst > >>>> and from many of my other searches. > >>>> > >>>> Here is an interesting article on kdump for ARM-32 > >>>> https://kaiwantech.wordpress.com/2017/07/13/setting-up-kdump-and-crash-for-arm-32-an-ongoing-saga/ > >>>> > >>>> > >>>> Here is the kernel command line reference > >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt?h=v5.11#n732 > >>>> > >>>> I feel your frustrations too. > >>> > >>> Hello > >>> > >>> Thanks but I have already read those documentation. > >>> I search to know why the kernel cannot find 8M of memory ouf of 128. > >>> > >>> Regards > >>> > >> > >> How much more memory does the kernel and initrd above and beyond just > >> their physical size? (heaps, stacks, buffers, virtual filesystems) > > > > The kernel size include a rootfs.cpio.lzma of 3MB and dtb is appended. > > The total kernel size is 7MB. > > The uncompressed size of the kernel is 13M (size of vmlinux) > > The uncompressed size of rootfs is 11M. > > > > cat /proc/meminfo > > MemTotal: 122496 kB > > MemFree: 103700 kB > > MemAvailable: 101936 kB > > Buffers: 0 kB > > Cached: 10904 kB > > SwapCached: 0 kB > > Active: 4304 kB > > Inactive: 8012 kB > > Active(anon): 4304 kB > > Inactive(anon): 8012 kB > > Active(file): 0 kB > > Inactive(file): 0 kB > > Unevictable: 0 kB > > Mlocked: 0 kB > > HighTotal: 0 kB > > HighFree: 0 kB > > LowTotal: 122496 kB > > LowFree: 103700 kB > > SwapTotal: 0 kB > > SwapFree: 0 kB > > Dirty: 0 kB > > Writeback: 0 kB > > AnonPages: 1428 kB > > Mapped: 3552 kB > > Shmem: 10904 kB > > KReclaimable: 608 kB > > Slab: 2960 kB > > SReclaimable: 608 kB > > SUnreclaim: 2352 kB > > KernelStack: 312 kB > > PageTables: 136 kB > > NFS_Unstable: 0 kB > > Bounce: 0 kB > > WritebackTmp: 0 kB > > CommitLimit: 61248 kB > > Committed_AS: 14336 kB > > VmallocTotal: 901120 kB > > VmallocUsed: 64 kB > > VmallocChunk: 0 kB > > Percpu: 32 kB > > CmaTotal: 0 kB > > CmaFree: 0 kB > > > > I believe you need space for all of that, > the smallest that would work for me was 20MB. I tried without any change. Anyway when trying to kexec I got: kexec --no-ifdown --command-line="console=ttyS0,19200n8" /tmp/kernel | Could not find a free area of memory of 0x668a8a bytes... Cannot load /tmp/kernel So reserving 8M is enough according to what kexec said. So anyone know why the kernel cannot reserve 8M ? Thanks _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec