[FUG-BR] kern.ipc.shmmax

Carlos A. M. dos Santos unixmania em gmail.com
Terça Fevereiro 12 03:12:20 BRST 2008


2008/2/12 Carlos A. M. dos Santos <unixmania em gmail.com>:
> On Feb 11, 2008 4:26 PM, mateusgra <mateusgra em bol.com.br> wrote:
> > Tenho um servidor freeBSD 6.2 / AMD64 com 4GB de ram qdo eu executo o comando para liberar mais memoria compartilhada "sysctl -w kern.ipc.shmmax=3145728000" que seria 3GB ele transforma esse numero em "-1149239296" o numero fica negativo não tem como liberar mais memoria ?
>
> O sysctl está configurando o valor corretamente, mas exibindo errado.
> O problema é que o valor é guardado num inteiro de 32 bits. O número
> -1149239296, quando quardado em 32 bits na notação de complemento de
> 2, tem a mesma representação que 3145728000. Para ver isto basta
> digitar, na linha de comando
>
>      % printf '0x%x\n' 3145728000
>      0xbb800000
>      % printf '0x%x\n' -1149239296
>      0xffffffffbb800000
>
> No segundo caso os "ffffffff" mais à esquerda podem ser desprezados.
> Eles aparecem porque o printf usa inteiros de 64 bits.

Adendo: o problema não aparece no FreeBSD 7.0-PRERELEASE #2 i386 que
tenho no meu computador. Não tenho uma máquina AMD64 pra testar agora,
mas seria bom se alguém verificasse se isso acontece com o 7.0 ou 6.3
em AMD64.

-- 
Carlos A. M. dos Santos


Mais detalhes sobre a lista de discussão freebsd