Понимание RCU при Конфигурировании Ядра Linux

Используя Мерзавца дата так же допустима как использующий любую другую форму нумерации версии.

Относительно того, как получить новейшую версию пакета/программы, загружающего от мерзавца и компилирующего себя если, вероятно, лучший способ получить "новую" версию пакета.

С другой стороны, если Вы захотите уже-скомпилированную-версию, которая была по крайней мере незначительно протестирована и найдена умеренно стабильная, то затем я рекомендую пакет из репозитория.

4
20.06.2013, 05:06
1 ответ

Существуют некоторые детали об этих опциях, законченных на Стройплощадке LTTng. RCU's (обновление копии чтения). Это структуры данных в ядре, которые позволяют, чтобы те же данные копировались через ядра в многоядерном ЦП, и они гарантируют, что данные будут сохранены в синхронизации через копии.

выборка

liburcu является пространством пользователя LGPLv2.1 RCU (обновление копии чтения) библиотека. Эта библиотека синхронизации данных обеспечивает доступ стороны чтения, который масштабируется линейно с количеством ядер. Это делает так, позволяя копиям кратных чисел структуры определенных данных жить одновременно, и путем контроля доступов структуры данных для обнаружения льготных периодов, после которых восстановление памяти возможно.

Ресурсы

Таким образом, каковы эти опции?

Эта опция наборы зацепляет ядро / границы пространства пользователя и помещает RCU в расширенное состояние покоя, когда ЦП работает в пространстве пользователя. Это означает, что, когда ЦП работает в пространстве пользователя, он исключен из глобального конечного автомата RCU и таким образом не пытается сохранить галочку таймера на для RCU.

Если Вы не хотите взломать и помочь разработке полного dynticks режима, Вы не должны включать эту опцию. Это также добавляет ненужные издержки.

Если не уверенный скажите N

Эта опция управляет разветвлением на выходе иерархических реализаций RCU, позволяя RCU работать эффективно над машинами с большими количествами центральных процессоров. Это значение должно быть, по крайней мере, четвертым корнем NR_CPUS, который позволяет NR_CPUS быть безумно большим. Значение по умолчанию RCU_FANOUT должно использоваться для производственных систем, но если Вы - стресс-тестирование сама реализация RCU, маленькие значения RCU_FANOUT позволяют Вам тестировать пути большого системного кода в маленьких (er) системах.

Выберите определенное число при тестировании самого RCU. Возьмите значение по умолчанию, если не уверенный.

Эта опция вызывает использование точного указанного значения RCU_FANOUT, независимо от неустойчивости в иерархии. Это полезно для тестирования самого RCU и могло бы однажды быть полезно в системах с сильным поведением NUMA.

Без RCU_FANOUT_EXACT код сбалансирует иерархию.

Скажите N, если не уверенный.

Эта опция разрешает центральным процессорам вводить dynticks-состояние-ожидания, даже если у них есть обратные вызовы RCU, поставленные в очередь, и препятствует тому, чтобы RCU будил эти центральные процессоры больше, чем примерно один раз в четыре мига (по умолчанию, можно скорректировать это использование rcutree.rcu_idle_gp_delay параметра), таким образом повышение энергоэффективности. С другой стороны, эта опция увеличивает продолжительность льготных периодов RCU, например, замедляясь synchronize_rcu ().

Скажите Y, если энергоэффективность критически важна, и Вы не заботитесь об увеличенных продолжительностях льготного периода.

Скажите N, если Вы не уверены.

Используйте эту опцию уменьшить дрожание ОС для агрессивного HPC или рабочих нагрузок в реальном времени. Это может также использоваться для разгрузки вызова обратного вызова RCU к энергосберегающим центральным процессорам в работающих от аккумулятора асимметричных многопроцессорных системах.

Эта опция разгружает вызов обратного вызова от набора центральных процессоров, указанных во время начальной загрузки rcu_nocbs параметром. Для каждого такого ЦП kthread ("rcuox/N") будет создан для вызова обратных вызовов, где "N" является ЦП, разгружаемый, и где "x" является "b" для RCU-bh, "p" для RCU-вытесняют, и "s" для RCU-sched. Ничто не препятствует тому, чтобы этот kthread работал на указанных центральных процессорах, но (1) kthreads может быть вытеснен между каждым обратным вызовом и (2) привязка или cgroups могут использоваться, чтобы вынудить kthreads работать независимо от того, что набор центральных процессоров желаем.

Скажите Y здесь, если Вы хотите помочь отладить уменьшенное дрожание ОС. Скажите N здесь, если Вы не уверены.

Вам нужен он?

Я сказал бы, не знаете ли Вы то, что конкретная опция делает при компиляции ядра затем, это - вероятно, безопасная ставка, что можно жить без него. Таким образом, я сказал бы "нет" тем вопросам.

Также при выполнении этого типа работы я обычно получаю файл конфигурации для ядра, которое я использую со своим дистрибутивом и делаю сравнение, чтобы видеть, пропускаю ли я какие-либо функции. Это - вероятно, Ваш лучший ресурс с точки зрения изучения, о чем все функции.

Например, в Fedora существуют демонстрационные конфигурации, включенные это, можно обратиться к. Смотрите на эту страницу для получения дополнительной информации: Создание пользовательского ядра.

9
27.01.2020, 20:49

Теги

Похожие вопросы