On Fri, Jul 26, 2002 at 11:37:52PM +0200, Karol Czachorowski wrote: > > Żadnych. Tylko jeśli masz płytę z chipsetem VIA, nie optymalizuj jądra pod > K7/Athlon. Zdaje się, że do tej pory jest jakiś bug z optymalizacją. > Kiedyś miałem z tym problemy na RedHacie - wybierał mi domyślnie takie > jądro i nie było szans na start systemu po instalacji. > >
Prawda jest taka, że wystarczy przegrepować źródło kernela (w moim przypadku 2.4.19), żeby przekonać się, że ustawienie (przy konfiguracji jądra) opcji CONFIG_MK7 zmienia niewiele. Po pierwsze, standardowe gcc-2.95 dołączone do Debiana nie obsługuje optymalizacji właściwych dla athlona (-march=athlon), więc arch/i386/Makefile ustawia architekturę na i686 (-march=i686). Po drugie, jedynymi poza tym, znaczącymi wystąpieniami CONFIG_MK7 są pliki arch/i386/lib/mmx.c (ok 120 linijek specyficznego dla architektury procesora kodu dotyczącego cache'u) oraz arch/i386/config.in, który definiuje kilka stałych. Jedyne wątpliwości mogą budzić właśnie flagi ustawiane w arch/i386/config.in. Dla CONFIG_MK7 (athlon i s-ka) są to: if [ "$CONFIG_MK7" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 6 define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_GOOD_APIC y define_bool CONFIG_X86_USE_3DNOW y define_bool CONFIG_X86_PGE y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y fi Dla porównania odpowiedni fragment dla 'zwykłych' procesorów 686: if [ "$CONFIG_M686" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_bool CONFIG_X86_TSC y define_bool CONFIG_X86_GOOD_APIC y define_bool CONFIG_X86_PGE y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y define_bool CONFIG_X86_PPRO_FENCE y fi Pozostaje zatem przyjrzeć się tymże flagom. CONFIG_X86_TSC, CONFIG_X86_GOOD_APIC, CONFIG_X86_PGE oraz CONFIG_X86_USE_PPRO_CHECKSUM powtarzają się (identycznie) w obu 'konfiguracjach', więc możemy je pominąc. Pozostają zatem następujące różnice: CONFIG_X86_L1_CACHE_SHIFT (MK7=6, M686=5) CONFIG_X86_USE_3DNOW (MK7=y, M686=n/a) CONFIG_X86_PPRO_FENCE (MK7=n/a, M686=y) Pierwsza stała (L1_CACHE_SHIFT) dotyczy wewnętrznego cache'u procesora, więc nie ma raczej wiele wspólnego z chipsetem płyty głownej. Druga włącza obsługę 3DNOW, który też zdaje się nie dotykać problemu chipsetu. Co do trzeciej z nich (PPRO_FENCE), której wszakże brakuje dla MK7 w stosunku do M686, nie jestem pewien. Zdaje mi się, że jest to jedyna różnica między konfiguracją CONFIG_MK7 i CONFIG_M686, która może powodować jakieś problemy w zależności od chipsetu, a i to wysoce wątpliwe. Chciałbym podkreślić, że nie jestem jakimś szczególnym specjalistą od kernela (choć niejedno jajo połatałem i wysiedziałem) i równie dobrze to co napisałem może być kompletnym stekiem bzdur (;-p) ale zawsze interesowało czym w jądrze różnią się konfiguracje poszczególnych procesorów (w szczególności tej samej generacji). Jeśli ktoś wie o tym cokolwiek więcej to bylbym wdzięczny za jakieś informacje. Pozdrawiam Grzegorz "Konik" Kuśnierz <[EMAIL PROTECTED]> -- Peace, n.: In international affairs, a period of cheating between two periods of fighting. -- Ambrose Bierce, "The Devil's Dictionary"