Re: Debian i Amd Duron
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
<konik@v-lo.krakow.pl>
--
Peace, n.:
In international affairs, a period of cheating between two
periods of fighting.
-- Ambrose Bierce, "The Devil's Dictionary"
Reply to: