2008/2/12 Carlos A. M. dos Santos <[EMAIL PROTECTED]>: > On Feb 11, 2008 4:26 PM, mateusgra <[EMAIL PROTECTED]> 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 ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

