Описание тега softirq
Softirqs are software interrupts, which does not interrupt the processor like normal irqs.
1
ответ
Может ли SoftIRQ предотвращать запуск того же SoftIRQ с ядром Linux?
Я работаю над улучшением производительности драйвера и должен рассмотреть возможность тупика. В контексте SoftIRQ, spin_lock будет удерживаться и защищать некоторую переменную. В этом случае я должен использовать spin_lock или spin_lock_bh? spin_loc…
13 янв '17 в 22:44
0
ответов
Серия amd radeon r9 smp_affinity
Используя taskset -c 1 с программой opencl, она работает с той же скоростью, что и без использования на четырехъядерной машине. Но загрузка с набором задач составляет 13%, без него 50%. Я использую драйверы AMD 13.12 в fedora 20, после слишком больш…
08 янв '14 в 23:30
1
ответ
PID в случае irq контекста
Что выводит "current->pid" в случае ниже 2 1) Жесткий IRQ контекст 2) Мягкий IRQ контекст Я знаю, что контекст IRQ и контекст процесса различны, и PID должен быть недействительным в случае контекста IRQ. Но когда вы пытаетесь напечатать "current->pi…
01 фев '17 в 05:55
1
ответ
Linux IRQ: снятие маски с IRQ в ISR
У меня есть IRQ, который использует handle_level_irq(), Большую часть времени ISR требует, чтобы нижняя половина была запланирована, но иногда она может определить, что она ложная, и не хочет планировать нижнюю половину (по соображениям производител…
14 дек '12 в 15:04
1
ответ
Существует ли заголовок linux для хэш-таблицы с корзинами, защищенными от спин-блокировки?
Я пишу код, который редко создает / удаляет объекты (до нескольких тысяч), но очень часто модифицирует их в контексте мягкого IRQ. Эти объекты также редко читаются (и, вероятно, также редко изменяются) из контекста задачи (через procfs: файл на объе…
13 янв '17 в 08:52
1
ответ
Как ядро отключает softirq в локальном процессоре при запуске обработчика softirq
Недавно я изучал Linux-Kernel-Development Роберта Лава. Существует параграф, описывающий механизм размягчения. Обработчики softirq работают с включенными прерываниями и не могут спать. В то время как обработчик работает, softirqs на текущем процессо…
09 окт '15 в 15:01
1
ответ
Почему softirq используется для высокопоточных и высокочастотных применений?
Что делает softirq настолько особенным, что мы используем его для высокочастотных применений, например, в сетевых драйверах и блочных драйверах.
02 янв '14 в 17:07
1
ответ
Как остановить / отключить IPI(межпроцессное прерывание) в Linux?
Я пытаюсь отключить вызовы irq из ядра при выполнении какого-либо приложения, я вызываю local_irq_disable(), прежде чем выполнить мое приложение, достаточно ли для отключения флагов IRQ. Любой другой способ отключить IRQ, пожалуйста, предложите мне.
22 дек '17 в 11:54
1
ответ
Причины, по которым процедура rps использует spinlock с local_irq_disable
Сейчас я изучаю код внутренней сети ядра, особенно код RPS. Вы знаете, есть много функций об этом. Но я сосредоточен на некоторых функциях обработки очереди SMP, таких как enqueue_to_backlog а также process_backlog, Интересно о синхронизации между д…
05 окт '18 в 05:15
3
ответа
В каком контексте находятся softirq и tasklet?
Я знаю, что есть контекст процесса и контекст прерывания, но я не понимаю, когда выполняется softirq или тасклет, в каком контексте он запускается. Я видел, как некоторые люди используют термин "контекст нижних половин", если такой термин есть, в че…
21 авг '11 в 02:13
1
ответ
Есть ли способ позвонить в ядро Linux с моей собственной Softirq
Аналогично тому, как работает системный вызов int 0x80Можно ли реализовать свой собственный ISR внутри ядра, чтобы на softirq предполагать int 0x120 или с любым другим программным счетчиком softirq можно переходить из пространства пользователя в про…
17 апр '16 в 21:05
1
ответ
Как прикрепить прерывание к процессору в драйвере
Можно ли прикрепить программный процессор или любую другую нижнюю половину к процессору. У меня есть сомнения, что это можно сделать из кода softirq. Но тогда внутри драйвера можно привязать конкретный IRQ к ядру.
21 янв '16 в 11:48
1
ответ
Запуск нескольких процессов не масштабируется
Существует два процесса C++, по одному потоку в каждом процессе. Поток обрабатывает сетевой трафик (Diameter) от 32 входящих TCP-соединений, анализирует его и пересылает разделенные сообщения через 32 исходящих TCP-соединения. Давайте назовем этот п…
04 сен '14 в 09:09
2
ответа
Почему один и тот же TASKLET не может выполняться одновременно на двух ядрах?
В реализации ядра Linux для платформы ARM отложенная работа в тасклете добавлена в список percpu vec|vec_hi. теперь, возвращаясь к выполнению ISR, он обращается к отложенной работе в softirq и тасклетах. теперь об этой отложенной работе можно поза…
14 окт '15 в 14:01
2
ответа
Почему время обслуживания softirqs увеличено в ядре 4.1 по сравнению с ядром 3.4?
Мы обнаружили проблему снижения производительности при выполнении поднятия Linux с версии 3.4 до версии 4.1. Кажется, это связано с тем, что новое ядро тратит гораздо больше времени на обслуживание softirqs. Мы провели тест с использованием генера…
25 дек '17 в 14:09
1
ответ
Приостановка kthread в Linux
Здесь https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/ написано: Как вы увидите из предыдущего поста, в NET_TX_SOFTIRQ softirq зарегистрирована функция net_tx_action. Это означает, что есть поток ядр…
25 авг '18 в 14:58
1
ответ
ksoftirq не использует процессор и должно быть, почему?
Оба Linux 2.6 и 3.8. Настройка Linux как роутера с передачей файла 3 гигабайта При достижении вершины%SI имеет высокий уровень 30%, но ksoftirqd использует 0% CPU. Так что вопрос в том, "Какая нить обрабатывает softirq???" Я прочитал код, и предпола…
25 янв '14 в 03:10
0
ответов
Почему вы не можете включить нижние половины, когда IRQ отключены?
В __local_bh_enable, у нас есть WARN_ON_ONCE(!irqs_disabled()); Мне интересно, какова цель этого предупреждения - я думаю, вы захотите иметь возможность сдавать в аренду нижних половин, когда, скажем, spinlock_irq защищенный код... (примечание: я см…
18 ноя '15 в 16:27
1
ответ
Зачем атомарное чтение считать переменную в структуре тасклета?
В подпрограмме tasklet_action - при обработке записи из списка tasklet_vec ядро, мы атомарно читаем atomic_read(&t-;>count), я не вижу любое из его использования в рутине, что является значительным? if (tasklet_trylock(t)) { // check is it is not al…
16 окт '15 в 09:19
0
ответов
Безопасно ли вызывать send_sig_info() внутри процедуры завершения URB?
Как известно, обратный вызов завершения USB URB будет выполняться в контексте softIRQ. Позвольте мне объяснить фон, в котором я пытаюсь использовать send_sig_info(). В настоящее время я работаю над Советом по сбору данных. Для этого на стороне USB-у…
22 сен '18 в 17:04