Exceção ao liberar a memória initrd no linux

0

Estou usando o sistema de arquivos initramfs junto com uma imagem de kernel e uma árvore de dispositivos. Estou recebendo uma exceção enquanto libero a memória do initrd após descompactá-lo.

O initramfs é descompactado com sucesso no processo de inicialização do kernel, mas há algum problema em liberar a memória.

meus bootargs:

setenv bootargs 'noinitrd init = / exemplo_exemplo console = ttySC0,115200 root = / dev / ram0 rw ramdisk_size = 16384'

Por favor, encontre o log de inicialização abaixo:

[ 0.175117] Trying to unpack rootfs image as initramfs...

[ 0.631972] ##free_initrd initrd_start ffffffc028000040

[ 0.631972] initrd_end ffffffc028d72ea3

[ 0.634079] BUG: Bad page state in process swapper/0 pfn:70400

[ 0.634089] page:ffffffbdc1c10000 count:0 mapcount:-127 mapping:
(null) index:0x0 [ 0.634093] flags: 0x0()

[ 0.634098] page dumped because: nonzero mapcount

[ 0.634102] Modules linked in:

[ 0.634112] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-yocto-standard #14

[ 0.634122] Call trace:

[ 0.634139] [] dump_backtrace+0x0/0x180

[ 0.634144] [] show_stack+0x14/0x20

[ 0.634153] [] dump_stack+0x90/0xc8

[ 0.634163] [] bad_page+0xc8/0x118

[ 0.634167] [] free_pages_prepare+0x1dc/0x248

[ 0.634172] [] free_hot_cold_page+0x28/0x1b8

[ 0.634176] [] __free_pages+0x40/0x50

[ 0.634180] [] free_reserved_area+0x8c/0x110

[ 0.634190] [] free_initrd_mem+0x20/0x2c

[ 0.634196] [] free_initrd+0x40/0x54

[ 0.634201] [] populate_rootfs+0xf4/0x110

[ 0.634206] [] do_one_initcall+0x8c/0x190

[ 0.634211] [] kernel_init_freeable+0x148/0x1ec

[ 0.634223] [] kernel_init+0x10/0xe8

[ 0.634228] [] ret_from_fork+0x10/0x40

    
por Rajeshkumar 29.09.2016 / 16:41

1 resposta

0

Meu tamanho de imagem initrd é muito menor em comparação com a RAM. Então eu retive a imagem initrd sem liberar no kernel usando abaixo bootarfs.

defina bootargs 'retain_initrd'

    
por 04.04.2017 / 15:21