Одобрено: Fortect
За несколько дней до этого некоторые из наших пользователей уже сообщали об ошибке, касающейся изменения размера отчета ядра Linux. Есть ряд факторов, которые могут вызвать эту проблему. Давай обсудим все это сейчас.
Мне нужно было бы выкупить PAGE_SIZE
из 4096
для опыта. Поэтому я изменил количество PAGE_SHIFT
во время /arch/x86/include/asm/page_types.h
. Но я не могу это скомпилировать.
В этом файле подсчитывается include / linux для каждого linking.h: 4: 0,из include / linux / kernel.h: 6,из add / linux / cache.h: 4,from include по сравнению с linux / time.h: 4,из ark / x86 для каждого ядра / vsyscall_64.c: 23:arch / x86 - kernel / vsyscall_64.c: причина "map_vsyscall" † ...:include для каждого linux / compiler.h: 437: 20: eroor: Вызов "compiletime_assert_390" с объявленным атрибутом ошибки: failed BUILD_BUG_ON: (long unsigned) __ fix_to_virt (VVAR_PAGE)! = (длинный беззнаковый) VVAR_ADDRESSПрефикс Суффикс (); n^include / linux / compiler.Note: h: 442: 2: Размещение в расширении макроса «__compiletime_assert»__compiletime_assert (условие, сообщение, префикс, суффикс)^include / linux / compiler.h: 454: 2: Примечание: относится к "_compiletime_assert" в макросе отсрочки._compiletime_assert (условие, сообщение, __compiletime_assert_, __LINE)^include / linux для каждой ошибки. h: 53: 37: Примечание: в расширении, которое, по мнению экспертов, есть макрос "compiletime_assert"#define BUILD_BUG_ON_MSG (cond, msg) msg)^include по сравнению с linux / bug compiletime_assert (! (cond), .l: 77: 2: know: в расширении макроса "BUILD_BUG_ON_MSG"BUILD_BUG_ON_MSG (условие, "BUILD_BUG_ON не удалось: # условие)^Arch / x86 и kernel / vsyscall_64 ".c: 389: 2: Примечание: из расширения с макросом" BUILD_BUG_ON "BUILD_BUG_ON ((без знака! =^make [2]: long) __ fix_to_virt (VVAR_PAGE) * [Arch против x86 / kernel / vsycall_64.o] eroor 1make [1]: (пробел) [arch / x86 / kernel] Ошибка 2make: *** [arch / x86] сообщение об ошибке 2
Наверное, из-за VVAR_PAGE, наоборот, я не умею его преобразовывать.Что, если я сделаю это?
спросил меня 13 дек.
1 11 коричневый значок
Не тот ответ, который вам нужен? Просмотрите другие вопросы, помеченные как пейджинг ядра Linux, и задайте свой вопрос.
Невозможно изменить PAGE_SIZE
напрямую, задав PAGE_SHIFT
, учитывая тот факт, что он был создан во время компиляции.
Предполагая, что ваш процессор является конкретным процессором x86, люди могут изменить размер страницы до 8 КБ, используя все семейство в переменных CONFIG_PAGE_SIZE_XXX
, например, CONFIG_PAGE_SIZE_8KB
. Обратите внимание, что использование огромных страниц занимает много места, точно так же, как даже однобайтовая документация занимает всю страницу описания на вашем жестком диске. Кроме того, изменения страницы действительно зависят от размера архитектуры, и часто рекомендуется оставить его в спецификациях 4K по умолчанию.
Однако может быть лучше, если будут использоваться более крупные, более разнообразные и эффективные страницы. Они описаны там
решено 13 дек.
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>
946
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.