swapon/swapoff будет абсолютно ясный Ваша область подкачки, но можно освободить часть от него через/proc файловую систему также. Вы хотите первый:
# To free pagecache
echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes
echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes
echo 3 > /proc/sys/vm/drop_caches
с помощью http://linux-mm.org/Drop_Caches
На сегодняшний день можно главным образом забыть о SA_INTERRUPT
флаг.
Промежуточные 2.6.18 и 2.6.24 это был просто помощник миграции для нового IRQF_DISABLED
флаг.
2.6.24 удалил все SA_*
флаги и замененный их IRQF_*
флаги.
2.6.35 отметил этот "новый" флаг, как удерживается от использования.
Если у Вас будет ядро прежде 2.6.18, то Вы будете, вероятно, не использовать его (см. ответ Justin).
Сегодняшнее использование IRQF_DISABLE
отличается среди архитектуры. x86 все еще только использует его для строго ограниченных во времени функций (time.c
, hpet.c
) и некоторые xen
материал.
Относительно различия; нормальное прерывание может быть прервано другим прерыванием (вытеснение), "быстрое", с другой стороны, не может.
Существует хорошая запись здесь:
Более старые версии ядра Linux предприняли большие усилия для различения "быстрые" и "медленные" прерывания. Быстрые прерывания были теми, которые могли быть обработаны очень быстро, тогда как обработка медленных прерываний взяла значительно дольше. Медленные прерывания могли быть достаточно требовательными из процессора, и стоило повторно включить прерывания, в то время как они обрабатывались. Иначе задачи, требующие быстрого внимания, могли быть отложены слишком долго.
В современных ядрах исчезло большинство различий между быстрыми и медленными прерываниями. Там остается только одним: быстрые прерывания (те, которых требовали с флагом SA_INTERRUPT) выполняются со всеми другими прерываниями, отключенными на текущем процессоре. Обратите внимание, что другие процессоры могут все еще обработать прерывания, хотя Вы никогда не будете видеть, что два процессора обрабатывают тот же IRQ одновременно.
Так, какой тип прерывания Ваш драйвер должен использовать? В современных системах SA_INTERRUPT предназначается только для использования в некоторых, определенные ситуации, такие как прерывания по таймеру. Если у Вас нет веской причины запустить Вашего обработчика прерываний с другими отключенными прерываниями, Вы не должны использовать SA_INTERRUPT.
Таким образом, единственной разницей является та, которую Вы упомянули; тот быстрые обработчики прерываний выполняются со всеми другими отключенными обработчиками прерываний для более быстрой производительности.
Я как раз рассматриваю ARM Cortex A57. В архитектуре ARM быстрое прерывание имеет 8 выделенных регистров, поэтому время переключения контекста минимизируется как при входе, так и при выходе из прерывания. Я пока не знаю, интегрировано ли это в Linux, который собирается предоставить наш поставщик SOC (если, конечно, они его предоставят).