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). -- Patrick Tracanelli FreeBSD Brasil LTDA. (31) 3281-9633 / 3281-3547 [EMAIL PROTECTED] http://www.freebsdbrasil.com.br "Long live Hanin Elias, Kim Deal!" _______________________________________________ freebsd mailing list freebsd@fug.com.br http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br