liberando memória do kernel vazada pelo driver nvidia

2
Estou executando uma biblioteca de aprendizado profunda em uma placa gráfica e a biblioteca faz algumas coisas extravagantes como instalar alguns arquivos enormes na memória e passar buffers de memória ram para placa gráfica. Depois de algum tempo notei um uso de memória bastante significativo quando nada pesado estava rodando no sistema (sem servidor X, algo como 10 processos: getty, sshd, syslog-ng, bash, ...):

MemTotal:       24688288 kB
MemFree:        19112788 kB
MemAvailable:   19102240 kB
Buffers:            6632 kB
Cached:            14892 kB
SwapCached:            0 kB

A ser observado, deixo os caches usando echo 3 > /proc/sys/vm/drop_caches . Então, isso é aproximadamente 5GiB usado para alguma coisa. E um número muito próximo é contabilizado aqui:

Active:          4658852 kB        <-- here
Inactive:           2312 kB 
Active(anon):    4644112 kB        <--- and here
Inactive(anon):      760 kB
Active(file):      14740 kB
Inactive(file):     1552 kB
Unevictable:        6352 kB
Mlocked:        17111149713616 kB  <-- that is also strange

Ao verificar a ideia de vazamentos da nvidia no espaço do kernel, encontrei linhas como:

0xffffc90005562000-0xffffc900055af000  315392    os_alloc_mem+0xc2/0xf0               [nvidia]       pages=76   vmalloc  N0=76

O que confirma o vazamento do driver nvidia. É possível limpar de alguma forma essas alocações? E, como posso descartar a memória do mlocked acima?

    
por Alexander Sergeev 08.04.2016 / 10:22

1 resposta

1

Aparentemente, isso foi um erro no driver nvidia. Depois de atualizar o driver de 361.18-r4 até 364.15, não consigo mais reproduzir o problema. Então, estou considerando que a atualização corrige vazamentos de memória.

    
por 08.04.2016 / 15:31