Я нашел формулировку в этом документе действительно слишком запутанной.Рассмотрение источника в mm/page_alloc.c
помогло прояснить ситуацию, поэтому позвольте мне попробовать более простое объяснение:
Как сказано на цитируемой вами странице, эти числа «являются взаимным числом отношения»,По-разному: эти числа делители.Таким образом, при расчете резервных страниц для данной зоны в узле вы берете сумму страниц в этом узле в зонах выше этой, делите ее на предоставленный делитель, и именно столько страниц вы резервируете для этой зоны.
Пример: предположим, что узел 1 ГиБ с 768 МБ в зоне Normal и 256 МБ в зоне HighMem (предположим, нет зоны DMA).Давайте предположим, что «коэффициент» (делитель) резерва для highmem по умолчанию равен 32. И давайте предположим, что типичный размер страницы 4 КиБ.Теперь мы можем вычислить резервную область для зоны Normal:
- Сумма «более высоких» зон, чем у зоны Normal (только HighMem): 256 МБ = (1024 КБ / 1 МБ) * (1 стр. / 4КиБ) = 65536 страниц
- Область, зарезервированная в зоне Нормально для этого узла: 65536 страниц / 32 = 2048 страниц = 8 МБ.
Концепция остается неизменной при добавлении нескольких зони узлы.Просто помните, что зарезервированный размер указан в страницах - вы никогда не зарезервируете часть страницы.