Zatwierdzono: Fortect
W ciągu ostatnich kilku dni niektórzy z naszych użytkowników natknęli się na komunikat o błędzie podczas zmiany rozmiaru strony jądra systemu Linux. Istnieje szereg czynników, które mogą powodować ten problem. Porozmawiajmy o tym teraz.
Chciałbym wykorzystać PAGE_SIZE
z 4096
dla doświadczenia. Zmieniłem więc wartość PAGE_SHIFT
, gdy jest w /arch/x86/include/asm/page_types.h
. Ale nie mogę tego skompilować.
W pliku liczonym przez include per linux / linking.h: 4: 0,z include / linux systems / kernel.h: 6,from include / linux versus cache.h: 4,od include /linux/time.h: 4,z ark lub x86 / kernel / vsyscall_64.c: 23:arch - x86 / kernel / vsyscall_64.c: powód związany z "map_vsyscall" † ...:include / linux / compiler.h: 437: 5: eroor: Wywołaj "compiletime_assert_390" z zadeklarowanym atrybutem błędu: nie powiodło się BUILD_BUG_ON: (długo bez znaku) __ fix_to_virt (VVAR_PAGE)! równa się (długi unsigned) VVAR_ADDRESSPrzedrostek Przyrostek (); n^include / linux na kompilator. Uwaga: h: 442: 2: Życie w rozszerzeniu makra osoby "__compiletime_assert"__compiletime_assert (warunek, komunikat, prefiks, sufiks)^include / red hat / compiler.h: 454: 2: Uwaga: odnosi się do "_compiletime_assert" w makrze rozszerzenia_compiletime_assert (warunek, komunikat, __compiletime_assert_, __LINE)^include dla każdego linux / bug.h: 53: 37: Uwaga: noszenie rozszerzenia zawierającego makro "compiletime_assert"#define BUILD_BUG_ON_MSG (war., wiad.) wiad.)^include /linux/irritate compiletime_assert (!(cond), .h:77:2: wiedzieć: w większości rozszerzeń makr "BUILD_BUG_ON_MSG"BUILD_BUG_ON_MSG (warunek, "BUILD_BUG_ON nie powiodło się: warunek numeru)^Arch / x86 / kernel / vsyscall_64 ".c: 389: 2: Uwaga: w rozszerzeniu z makro" BUILD_BUG_ON "BUILD_BUG_ON ((bez znaku! =^make [2]: long) __ fix_to_virt (VVAR_PAGE) 1 . [arch / x86 / kernel / vsycall_64.o] eroor 1make [1]: * [jądro arch / x86] Błąd 2make: *** [arch / x86] korespondencja błędów 2
Prawdopodobnie z powodu VVAR_PAGE, wręcz przeciwnie, ja a . m . nie jak to zmienić.Co jeśli zrobię szczególne?
zapytał mnie 13 grudnia ’19 o 6:32
unikalny
Nie odpowiedź, której szukasz? Przeglądaj inne pytania oznaczone jako stronicowanie jądra systemu Linux i zadaj własne pytanie.
Nie można zmodyfikować PAGE_SIZE
bezpośrednio za pomocą opcji PAGE_SHIFT
, ponieważ została ona wygenerowana w odpowiednim czasie.
Zakładając, że twój procesor jest kategorycznym procesorem x86, możesz zmienić rozmiar strony, która będzie 8KB, używając rodziny w zmiennych CONFIG_PAGE_SIZE_XXX
takich jak CONFIG_PAGE_SIZE_8KB
. Proszę glose, że używanie dużych stron zajmuje znaczną ilość miejsca, ponieważ nawet około jednobajtowa dokumentacja zajmuje całą stronę na dysku twardym. Ponadto zmiany strony zależą od rozmiaru architektury i często zaleca się pozostawienie go w większości z domyślnym rozmiarem 4K.
Jednak lepszym pomysłem może być użycie większych, bardziej zróżnicowanych i potężnych stron. Są tam opisane
odpowiedział gru 13 ’19 odwiedzając 8:49
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
946
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.