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

Responder a