Ubuntu 14.04 32 bits swapfile max 60k issue

5

Tenho um problema estranho, onde de repente todo o meu swapfile (1gb cada) fica truncado para usar apenas 60k. Eu posso remover / recriar etc, mas o que eu faço, o máximo parece limitado a 60k com a seguinte mensagem no syslog:

Truncating oversized swap area, only using 60k out of 1048572k
kernel: [  406.348815] Adding 60k swap on /mnt/swapfile.  Priority:-1 extents:1 across:60k FS

Não há diferença se eu usar uma partição ou arquivo.

procedimento usado para criar novos swaps:

> dd if=/dev/zero of=/swapfile bs=1M count=1000
> mkswap /swapfile
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=ba344dc1-61aa-4847-bbc4-0a78cbf05546
> swapon /swapfile

Que cria um arquivo de 1 GB, mas depois verifica com swapon -s mostra:

Filename                Type        Size    Used    Priority

/mnt/swapfile           file        60  60  -1

Agora, temos um total de arquivos swap de 4 x 1GB que resultam apenas em espaço de troca de 240k (confirmado com olhos livres, etc)

A versão do kernel é:

$ uname -rvmpi
3.13.0-157-generic #207-Ubuntu SMP Mon Aug 20 23:17:45 UTC 2018 i686 i686 i686

edit: instalado / revertido para a última versão do kernel de trabalho 3.13.0-153. Parece relacionado ao material de mitigação de L1TF como sugerido por Byte Commander abaixo.

    
por Glenn Venghaus 30.08.2018 / 12:31

1 resposta

3

Parece que você pode ter se deparado com uma regressão no kernel causada por recentes atenuações de L1TF, que agora fazem com que o seu valor máximo de tamanho de swap seja excedido e redefinido para zero ou um pequeno número.

Meu palpite é baseado nesta entrada da lista de discussão do kernel do Linux da semana passada: link

From    Vlastimil Babka <>
Subject [PATCH] x86/speculation/l1tf: fix overflow on l1tf_pfn_limit() on 32bit
Date    Mon, 20 Aug 2018 11:58:35 +0200

On 32bit PAE kernels on 64bit hardware with enough physical bits,
l1tf_pfn_limit() will overflow unsigned long. This in turn affects
max_swapfile_size() and can lead to swapon returning -EINVAL. This has been
observed in a 32bit guest with 42 bits physical address size, where
max_swapfile_size() overflows exactly to 1 << 32, thus zero, and produces the
following warning to dmesg:

[    6.396845] Truncating oversized swap area, only using 0k out of 2047996k

Fix this by using unsigned long long instead.

Reported-by: Dominique Leuenberger <[email protected]>
Reported-by: Adrian Schroeter <[email protected]>
Fixes: 17dbca119312 ("x86/speculation/l1tf: Add sysfs reporting for l1tf")
Fixes: 377eeaa8e11f ("x86/speculation/l1tf: Limit swap file size to MAX_PA/2")
[...]

Eu receio que provavelmente não há muito que você possa fazer, exceto esperar até que esse bug do kernel seja corrigido e a versão corrigida seja lançada no Ubuntu.

Editar: como alternativa, é claro que você pode reverter para uma das versões anteriores do kernel sem nenhuma correspondência de mitigação de L1TF para poder usar o swap novamente. Tenha em mente que, é claro, isso o torna vulnerável a um problema de segurança crítico, portanto, seja cuidadoso e atualize-o assim que houver uma correção.

    
por 30.08.2018 / 13:01