Pull to refresh

Comments 18

 Если для наблюдения за операциями оборота вы используете авторский инструментарий Berkley Packet Filter (BPF), то вам это желательно знать

If you use Berkeley Packet Filter (BPF) authoring tools to observe recycling operations, you need to know this

Кажется тут уж совсем не "операции оборота" должны были быть, скорее уж операции высвобождения или что то в таком духе.

Действительно. Под page recycling здесь подразумевается именно высвобождение/возврат страниц для дальнейшего использования. Сбило с толку использование особого термина.

Ну и authoring tools это далеко от авторского инструментария.

Ваш вариант? В словаре этот термин переводится именно так. Есть вариации, но смысл один. Вероятно, он здесь просто не уместен. Можно просто назвать инструментом, и это окажется верным. Но странно, почему автор взял именно это выражение.

Инструментарий создания или разработки. Даже банальный google translate это знает.

2. Начало сбора событий ftrace

cat /sys/kernel/debug/tracing/trace_pipe> ~/extfrag.log

Как-то странновато автор пользует ftrace, на мой взгляд. Ручками это долго и постоянно что-то забываешь. Скриптом куда как проще и очевидней:

echo 1 > /sys/kernel/debug/tracing/events/kmem/mm_page_alloc_extfrag/enable

echo "fallback_order pageblock order" > set_ftrace_filter

echo 1 > /sys/kernel/debug/tracing/tracing_on

read enter

echo 0 > /sys/kernel/debug/tracing/tracing_on

echo 0 > /sys/kernel/debug/tracing/events/kmem/mm_page_alloc_extfrag/enable

echo > set_ftrace_filter

И, собственно, все. Запустил скрипт, нажал Enter когда все, дальше cat /sys/kernel/debug/tracing/tracе

Ну да о вкусах не спорят.

А как это решается в real time системах?

Нет

Я имел в виду что real time система не может сказать: сейчас сейчас, я тут память дефрагментирую, а потом обработаю прерывание.

Обрабатывает прерывание,а в простое продолжает дефрагментацию аллоцированной памяти? (Ваш кэп(?))

А если коду в прерывании нужны дефрагментируемые структуры?

Использовать структуры данных с такими инвариантами, которые позволяют выполнить команды обработчика прерывания гарантированно за О(1).

(Ваш кэп(?))

Похоже на совет филина ежикам

Ну или первые лекции по алгоритмам. Или рекомендации по многопоточному программированию: avoid shared mutable state.

Да и в линуксе дефрагментация управляется отдельным процессом, обработка прерываний не обязана останавливаться на дефрагментацию.

А критические секции при дефрагментации есть? Их не может не быть. А значит будет задержка, что ок для обычных, но не подходит для real time

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

Sign up to leave a comment.