On Sat, 08 Apr 2006 18:44:49 -0300, Patrick Tracanelli <[EMAIL PROTECTED]> wrote:
> Thiago Esteves de Oliveira wrote: >> On Sat, 08 Apr 2006 17:45:55 -0300, Rainer Alves >> <[EMAIL PROTECTED]> >> wrote: >> >> >>> Thiago Esteves de Oliveira wrote: >>> >>>> Li o NOTES/NO_FOOF_HACK, ok, mas gostaria de saber se a opção >>>> NO_FOOF_HACK deve ser usada >>>> apenas em "i586(s)" como dito no NOTES, pois já vi servidores >>>> "i686(s)", >>>> com esta opção abilitada na >>>> compilação do kernel. >>> >>> A primeira edição do Pentium (de séculos atrás) tinha um bug que >>> causava >>> o travamento da CPU se ela recebesse uma sequência de instruções que >>> iniciava com os byte codes 'F0 0F' (em hexadecimal, daí o nome). >>> Esse 'NO_F00F_HACK' nada mais é do que uma proteção do kernel, que gera >>> um erro de instrução ilegal ao detectá-las. >>> A opção só faz sentido se você usar o Pentium 1 (i586), habilitá-la em >>> qualquer outro kernel é desperdício já que a Intel corrigiu o bug no >>> design dos Pentiums seguintes. >>> >>> -- >>> Rainer Alves > > Na verdade, e' exatamente o contrario hehe. > > O F00F_HACK e uma serie de codigos pra evitar o problema muito bem > explicado pelo Rainer, a principal correcao e o codigo a seguir > > #if defined(I586_CPU) && !defined(NO_F00F_HACK) > if (i == -2) { > /* > * The f00f hack workaround has > triggered, so > * treat the fault as an illegal > instruction > * (T_PRIVINFLT) instead of a page > fault. > */ > type = frame.tf_trapno = T_PRIVINFLT; > > /* Proceed as in that case. */ > ucode = type; > i = SIGILL; > break; > } > #endif > > Que fica no sys/i386/i386/trap.c. > > Portanto, note que o F00F_HACK *ja existe* em toda e qualquer situacao > que voce tenha I586 no kernel. Nao e' necessario adiciona-lo para te-lo. > A opcao do NOTES faz o contrario, ela OMITE o F00F_HACK, por isso > chama-se "NO_F00F_HACK", "sem F0 0F hack" que ja existe por padrao, > tendo I586 no kernel. > > Portanto a opcao so deve ser usada se voce *NAO* usar I586 (por exemplo, > mantem apenas classe de CPU I686 no kernel) ou se voce mantem seu kernel > apto a processar instrucoes de classe i586 mas tem certeza que jamais > serao processadores Pentium nessa classe, por exemplo, AMD K6 2, CYRIX e > afins, que sao 586 mas nao sofrem desse bug (bug exclusivo dos Pentium). > > Note que na primeira situacao (nao manter i586 no kernel) colocar a > opcao NO_F00F_HACK e' redundante (note o && do if defined). > > Ok. Então se não estiver usando um I586(ONLY PENTIUM).... Use "NO_FOOF_HACK" = 'SEU PROCESSADOR NÃO PRECISA' he, he, he, he Abraço... -- ======================================= Thiago Esteves de Oliveira < ======================================= _______________________________________________ freebsd mailing list freebsd@fug.com.br http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br