Вопросы по теме 'spinlock'

Влияют ли spin_lock и spin_unlock на производительность ядра SMP на однопроцессорной машине?
На моей машине с Ubuntu работающий образ ядра по умолчанию создан для smp ( CONFIG_SMP=y ). Но эта машина имеет только 1 процессор. В однопроцессорном ядре, в отличие от ядра smp, spin_lock/unlock являются нулевыми функциями. Итак, как...
980 просмотров
schedule 29.05.2023

Spinlock в драйвере устройства
Может ли кто-нибудь объяснить точное использование спин-блокировки в случае драйвера устройства. Я просто сбит с толку, так как во многих процедурах обработчика прерываний я видел спин-блокировки. Так как спинлок занят ожиданием. это может привести...
1335 просмотров
schedule 21.06.2023

Эквивалент инструкции x86 PAUSE для PPC
Существует ли эквивалент инструкции x86 PAUSE, которая помещается в занятые циклы ожидания для повышения производительности, особенно на машинах SMT, на PowerPC?
2945 просмотров
schedule 05.11.2022

Решение проблемы со спинлоком
В драйверах устройств Linux. Когда он вводит спин-блокировки, он дает следующий пример: Ваш драйвер работает и только что снял блокировку, которая контролирует доступ к его устройству. Пока блокировка удерживается, устройство выдает...
1749 просмотров
schedule 29.07.2022

Понимание связи между CONFIG_SMP, Spinlocks и CONFIG_PREEMPT в последней версии (3.0.0 и выше) ядра Linux
Чтобы дать вам полный контекст, мое обсуждение началось с наблюдения, что я запускаю SMP linux (3.0.1-rt11) на SoC на базе ARM Cortex A8, который является однопроцессорным. Мне было любопытно узнать, будет ли какое-либо преимущество в...
4615 просмотров
schedule 28.06.2023

Спин-блокировки в однопроцессорном и многопроцессорном режимах
Я прочитал и изучил, как работают спин-блокировки. Теперь у меня вопрос, на который я не могу найти исчерпывающий ответ: как они работают в среде UP (однопроцессорная) и в среде SMP (симметричная многопроцессорная)? В чем отличия и проблемы?
1369 просмотров

Почему отключение прерываний отключает вытеснение ядра и как блокировка вращения отключает вытеснение
Я недавно читаю Разработка ядра Linux , и у меня есть несколько вопросов, связанных с отключением вытеснения. # P2 # # P3 # # P4 # # P5 # # P6 # # P7 # # P8 # # P9 # # P10 #
14782 просмотров

Сборник Broken GLSL Spinlock/GLSL Locks
У меня есть настройка, в которой мне нужно заблокировать, прочитать некоторые данные, обработать, записать некоторые данные, а затем разблокировать. С этой целью я сделал текстуру блокировки в виде layout(r32ui) coherent uniform uimage2D ....
604 просмотров
schedule 11.11.2022

Как решить проблемы со спин-блокировкой с многопоточным python?
Я пишу многопоточное приложение на Python и столкнулся с проблемой, когда время ядра резко возрастает. Используя perf , я вижу, что это действительно спин-блокировка: 54.89% python [kernel.kallsyms] [k] __ticket_spin_lock...
2023 просмотров
schedule 27.12.2022

Что обеспечивает эффективность спин-блокировок?
Спин-блокировки могут быть эффективны только в системах с реальным параллелизмом, то есть в многоядерных/процессорных системах. Это неудивительно, учитывая их дизайн. Тем не менее потоки, совместно использующие ресурс, должны выполняться на...
190 просмотров
schedule 05.11.2022

Какова минимальная сборка X86, необходимая для спин-блокировки?
Чтобы реализовать спин-блокировку в сборке. Здесь я размещаю решение, которое я придумал. Это правильно? Знаете короче? замок: mov ecx, 0 .loop: xchg [eax], ecx cmp ecx, 0 je .loop выпуск: lock dec dword [eax]...
933 просмотров
schedule 25.03.2022

Как защитить данные, совместно используемые несколькими обработчиками прерываний в ядре Linux?
Насколько я понимаю, если в обработчике прерываний есть какие-то данные, которые используются совместно с другим процессом, то они должны быть защищены с помощью спин-блокировки, также нам нужно отключить локальное прерывание. Но что, если данные...
893 просмотров
schedule 26.08.2022

Понимание спин-блокировок в хуке netfilter
Я пишу небольшой модуль ядра для измерения времени, которое требуется сетевому пакету для выхода из узла. Этот модуль представляет собой хук в библиотеке netfilter. Для каждого полученного пакета он вычисляет хэш, получает tstamp от skbuff и...
1262 просмотров
schedule 19.04.2022

Как реализовать спин-блокировку, чтобы избежать блокировки
Рассмотрим следующий код: // Below block executed by thread t1 synchronized(obj) { obj.wait(0); } // This block executed by thread t2 synchronized(obj) { obj.notify(); } Я понимаю, что в приведенном выше коде, если t1 стал...
8006 просмотров

c — ядро ​​— спин-блокировки против очередей
Я думаю, несмотря на всю доступную документацию, я не понимаю, почему нужно ждать спин-блокировки в контексте ядра. Почему нет конкретной очереди с процессом, требующим блокировки с помощью атомарного счетчика/индекса, и с отключенным вытеснением...
359 просмотров
schedule 14.08.2022

c++: спин-блокировка или сравнение мьютексов (простые вычисления)
Спин-блокировка должна иметь лучшую производительность, чем мьютекс для простых задач. Однако в этом простом тесте (8 потоков, увеличивающих счетчик) результаты выглядят иначе: #include <iostream> #include <thread> #include...
1023 просмотров
schedule 25.09.2022

Можно ли использовать LDREX/STREX для реализации спин-блокировки без включения SCU в многоядерной SoC ARM Cortex-A9?
Я знаю, что это может быть странным использованием. Я просто хочу знать, могу ли я использовать LDREX/STREX с отключенным SCU. Я использую двухъядерный процессор Cortext-A9 SoC. Два ядра работают в режиме AMP: у каждого ядра своя ОС. Хотя...
1668 просмотров
schedule 18.05.2023

Масштабируемость и ограничения SpinLock
Я написал простую программу для проверки пропускной способности блокировки CLH. У меня есть код, как описано в книге "Искусство многоядерного программирования". Затем я запустил счетчик изменяющегося количества потоков на 10 секунд и определил...
360 просмотров

Могут ли аппаратные прерывания вытеснить процесс, удерживая спин-блокировку (вытеснение отключено)?
Кто-то задает аналогичный вопрос: Как ядро ​​обрабатывает блокировку в контексте процесса при возникновении прерывания? Но все же неясно, когда прерывание приходит на один ЦП, а процесс выполняется на том же ЦП с удерживаемой...
147 просмотров
schedule 02.04.2024

Может ли SoftIRQ прервать текущий запуск того же SoftIRQ с ядром Linux?
Я работаю над улучшением производительности драйвера и должен учитывать возможность взаимоблокировки. В контексте SoftIRQ spin_lock будет удерживаться и защищать некоторую переменную. В этом случае мне следует использовать spin_lock или...
263 просмотров
schedule 07.03.2023