A recompilação do kernel do Ubuntu não é capaz de ativar o sinalizador: CONFIG_ZSMALLOC_STAT

2

Eu quero ver as informações internas do ZSMALLOC no Ubuntu 16.04 (em amd64 kvm-qemu). Então eu tentei recompilar o kernel do Ubuntu adicionando CONFIG_ZSMALLOC_STAT = y no arquivo .config.

A seguir, o que tentei:

$ mkdir linux.ubuntu-16.04
$ cd linux.ubuntu-16.04
apt-get source linux-image-$(uname -r)
$ make -j8
$ make install

No entanto, não consigo encontrar informações de depuração do ZSMALLOC. Não consigo encontrar um diretório chamado zsmalloc dentro de /sys/kernel/debug

O que devo fazer para ver as informações de depuração do zsmalloc?

Result of command : 

#grep -irn CONFIG_ZSMALLOC_STAT *

    [12:57:13] mac@mac-qemu:~/linux.ubuntu-16.04/linux-hwe-4.8.0 $ grep -irn CONFIG_ZSMALLOC_STAT *
    arch/s390/configs/default_defconfig:73:CONFIG_ZSMALLOC_STAT=y
    arch/s390/configs/gcov_defconfig:69:CONFIG_ZSMALLOC_STAT=y
    arch/s390/configs/performance_defconfig:69:CONFIG_ZSMALLOC_STAT=y
    arch/s390/defconfig:60:CONFIG_ZSMALLOC_STAT=y
    debian/build/build-generic/.config:578:CONFIG_ZSMALLOC_STAT=y
    debian/build/build-generic/.config.old:9395:CONFIG_ZSMALLOC_STAT=y
    debian/tmp/boot/config-4.8.17:578:CONFIG_ZSMALLOC_STAT=y
    debian/linux-image-4.8.0-54-hello-generic/boot/config-4.8.0-54-hello-generic:578:CONFIG_ZSMALLOC_STAT=y
    debian/hdrtmp/usr/src/linux-headers-4.8.17/.config:578:CONFIG_ZSMALLOC_STAT=y
    debian/linux-headers-4.8.0-54-hello-generic/usr/src/linux-headers-4.8.0-54-hello-generic/.config:578:CONFIG_ZSMALLOC_STAT=y
    debian/linux-headers-4.8.0-54-hello-generic/usr/src/linux-headers-4.8.0-54-hello-generic/.config.old:578:CONFIG_ZSMALLOC_STAT=y
    debian.hwe/config/annotations:9494:CONFIG_ZSMALLOC_STAT                            policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'n', 'i386': 'y', 'powerpc': 'n', 'ppc64el': 'n', 's390x': 'n'}>
    debian.hwe/config/config.common.ubuntu:9396:CONFIG_ZSMALLOC_STAT=y
    debian.master/config/annotations:9494:CONFIG_ZSMALLOC_STAT                            policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'n', 'i386': 'y', 'powerpc': 'n', 'ppc64el': 'n', 's390x': 'n'}>
    debian.master/config/config.common.ubuntu:9396:CONFIG_ZSMALLOC_STAT=y
    debian.master/info/OVERRIDES:4:CONFIG_ZSMALLOC_STAT=y
    Documentation/vm/zsmalloc.txt:36:With CONFIG_ZSMALLOC_STAT, we could see zsmalloc internal information via
include/generated/autoconf.h:1142:#define CONFIG_ZSMALLOC_STAT 1
include/config/auto.conf:1140:CONFIG_ZSMALLOC_STAT=y
mm/zsmalloc.c:163:#ifdef CONFIG_ZSMALLOC_STAT
mm/zsmalloc.c:262:#ifdef CONFIG_ZSMALLOC_STAT
mm/zsmalloc.c:579:#ifdef CONFIG_ZSMALLOC_STAT
mm/zsmalloc.c:701:#else /* CONFIG_ZSMALLOC_STAT */
    
por aMa 23.08.2017 / 13:01

1 resposta

1

Você edita as configurações em um arquivo errado e constrói o kernel de maneira errada. A maneira do Ubuntu (na verdade, Debian) de alterar as configurações e a construção é a seguinte:

A configuração deve ser definida em debian.master/config/config.common.ubuntu

Está lá, mas comentou

# CONFIG_ZSMALLOC_STAT is not set

Altere para

CONFIG_ZSMALLOC_STAT=y

Em seguida, execute

fakeroot debian/rules clean
fakeroot debian/rules binary-generic binary-headers

para compilar.

Em vez do último comando, você pode usar

fakeroot debian/rules DEB_BUILD_OPTIONS=parallel=8  binary-headers binary-generic

se você quiser ter 8 processos paralelos (analógico de -j8).

Outra maneira (provavelmente mais convencional) é executar

fakeroot debian/rules clean
fakeroot debian/rules editconfigs

Em seguida, escolha a configuração que você deseja editar e vá para

"Tipo de processador e recursos - > Alocador de memória para páginas compactadas" e habilite-o aqui.

    
por Pilot6 23.08.2017 / 13:07