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

Intel Inspector сообщает о гонке данных в моей реализации спин-блокировки
Я сделал очень простую спин-блокировку, используя функции Interlocked в Windows, и протестировал ее на двухъядерном процессоре (два потока, которые увеличивают переменную); Программа вроде работает нормально (каждый раз выдает один и тот же...
2834 просмотров

Есть ли способ заставить sem_wait не вращаться?
В настоящее время я работаю над кросс-платформенным планировщиком задач, но у меня проблема с вращением sem_wait во время ожидания семафора. В Windows я использую WaitForSingleObject, который выдает поток во время ожидания, чего я и хочу. Но...
508 просмотров
schedule 05.01.2023

Почему спин-блокировка не работает в ядре Linux (не SMP)?
Я читал это в течение довольно долгого времени, но для меня это не имеет смысла. Возможно, потому, что я новичок во всем этом и до сих пор не понимаю несколько концепций ядра. Это было то, что я придумал (без ошибок или передачи NULL, это просто...
3043 просмотров
schedule 16.07.2023

Безопасно ли вызывать непустую функцию внутри ядра без назначения переменной
Я пытаюсь отладить код ядра из-за "планирования в атомарном режиме", которое приводит к сбою моей системы. В какой-то момент реального модуля ядра я добавил строку для вызова функции, определенной в другом модуле ядра (этот создан мной). Вызов:...
203 просмотров
schedule 08.05.2022

Как использовать спин-блокировку, если необходимо вызвать copy_to_user?
Я написал небольшой драйвер для чтения некоторых данных и передачи их пользователю. Мой драйвер может использоваться более чем одним приложением, т. е. это реентерабельный драйвер, отсюда и использование спин-блокировки. Но я обнаружил, что...
3643 просмотров
schedule 21.03.2022

Почему Linux отключает вытеснение ядра после того, как код ядра содержит спин-блокировку?
Я новичок в Linux и читаю книгу о драйверах устройств для Linux от Rubini & Corbet. Меня смущает одно утверждение, относящееся к spinlocks ; в книге говорится Если бы непреодолимая однопроцессорная система когда-либо переключилась на...
7641 просмотров
schedule 05.01.2023

Реализация спин-блокировки в Boost. Нужен пример
Я хотел знать, есть ли у boost какие-либо библиотеки, которые помогают реализовать спин-блокировки. Я знаю, что boost поддерживает мьютексы, но я не смог найти примеров, которые показывают или описывают спин-блокировки в boost. Любые примеры,...
4953 просмотров
schedule 13.08.2022

что происходит, когда тасклет прерывается аппаратным прерыванием?
Я хотел знать эту часть. Мы знаем, что тасклеты не могут спать, тогда, если приходит аппаратное прерывание, что происходит с тасклетами? Я столкнулся со сбоем, при котором тасклет прерывается аппаратным прерыванием. Я использовал спин-блокировку...
668 просмотров

Спинлок против std::mutex::try_lock
Каковы преимущества использования специально разработанной спин-блокировки (например, http://anki3d.org/spinlock ) по сравнению с кодом нравится: std::mutex m; while (!m.try_lock()) {} # do work m.unlock();
5839 просмотров
schedule 05.05.2023

Спин-блокировка портативных Writer-Readers
Я использовал boost::shared_mutex в качестве объектов синхронизации в модели Writer-Readers. Однако это значительно медленнее по сравнению с отсутствием блокировок (в моем тесте: без каких-либо считывателей для записи 500 000 значений требуется 100...
290 просмотров
schedule 28.08.2022

Блокирует манипуляции с памятью через встроенную сборку
Я новичок в низкоуровневом материале, поэтому я совершенно не понимаю, с какими проблемами вы можете столкнуться, и я даже не уверен, правильно ли я понимаю термин «атомарный». Прямо сейчас я пытаюсь сделать простые атомарные блокировки вокруг...
2110 просмотров
schedule 01.05.2022

Почему производительность всегда показывает _raw_spin_unlock_irqrestore или какую-либо другую функцию разблокировки вращения
Кто-нибудь знает, почему производительность всегда показывает _raw_spin_unlock_irqrestore или какую-либо другую функцию разблокировки вращения? Реализация spin_unlock обычно проще, чем spin_lock. Если на spin_lock высокая конкуренция, разве...
6113 просмотров
schedule 07.07.2022

Использование функции spinlock_check()
У меня есть вопрос о функции spinlock_check() используется в макросе spin_lock_init() . Код spinlock_check написан ниже и возвращает адрес rlock static __always_inline raw_spinlock_t *spinlock_check(spinlock_t *lock) { return...
222 просмотров
schedule 09.02.2023

Использование спин-блокировки с С++ openmp
У меня этот метод реализован с уникальной блокировкой и условной переменной. Он добавляет элемент в массив, но только если массив не заполнен. Если он заполнен, он ждет, пока другие потоки извлекут элемент, и только после этого вставляет новый....
381 просмотров
schedule 04.09.2022

спиновые блокировки, не потребляющие 100% ЦП
#include "boost/smart_ptr/detail/spinlock.hpp" boost::detail::spinlock lock; main(){ std::lock_guard<boost::detail::spinlock> guard(lock); while(true) { i=i+100; } } Детали машины: ЦП: 2...
210 просмотров