Вопросы по теме '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 просмотров
schedule
25.11.2023
Почему отключение прерываний отключает вытеснение ядра и как блокировка вращения отключает вытеснение
Я недавно читаю Разработка ядра Linux , и у меня есть несколько вопросов, связанных с отключением вытеснения.
# P2 # # P3 # # P4 # # P5 # # P6 #
# P7 # # P8 # # P9 # # P10 #
14782 просмотров
schedule
17.03.2022
Сборник 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 просмотров
schedule
06.07.2023
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 просмотров
schedule
24.04.2022
Могут ли аппаратные прерывания вытеснить процесс, удерживая спин-блокировку (вытеснение отключено)?
Кто-то задает аналогичный вопрос:
Как ядро обрабатывает блокировку в контексте процесса при возникновении прерывания?
Но все же неясно, когда прерывание приходит на один ЦП, а процесс выполняется на том же ЦП с удерживаемой...
147 просмотров
schedule
02.04.2024
Может ли SoftIRQ прервать текущий запуск того же SoftIRQ с ядром Linux?
Я работаю над улучшением производительности драйвера и должен учитывать возможность взаимоблокировки. В контексте SoftIRQ spin_lock будет удерживаться и защищать некоторую переменную. В этом случае мне следует использовать spin_lock или...
263 просмотров
schedule
07.03.2023