Описание тега futex
"Фьютекс (сокращение от" быстрый мьютекс в пользовательском пространстве ") - это системный вызов ядра, который программисты могут использовать для реализации базовой блокировки или в качестве строительного блока для абстракций блокировки более высокого уровня, таких как семафоры и мьютексы POSIX или условные переменные". - Из Википедии
1
ответ
Поддержка iOS futex
Есть ли способ реализовать быструю спин-блокировку на iOS, которая превращается в блокировку на примитиве ОС, если и только если есть конфликт? Я ищу что-то эквивалентное этим реализациям: http://locklessinc.com/articles/keyed_events/ (Fast Mutex) h…
02 апр '15 в 04:17
1
ответ
Как я могу отладить сбой приложения User Space?
Я использую приложение Qt5.4.0 в моей встроенной системе Linux (на основе TI AM335x), и оно перестает работать, и мне трудно отлаживать это. Это пример QtWebKit QML (youtubeview), но другие примеры QtWebKit для меня аналогичны, поэтому это что-то вр…
13 янв '15 в 16:23
2
ответа
Почему блокировка в Go намного медленнее, чем в Java? Много времени, проведенного в Mutex.Lock() Mutex.Unlock()
Я написал небольшую библиотеку Go ( go-patan), которая собирает запущенные min / max / avg / stddev определенных переменных. Я сравнил его с эквивалентной реализацией Java ( patan), и, к моему удивлению, реализация Java стала намного быстрее. Я хоте…
02 окт '16 в 09:44
1
ответ
Как отладить утверждение futex, показанное в strace?
Я отлаживаю проблему в многопоточном процессе linux, где определенный поток не выполняется в течение нескольких секунд. Глядя на вывод strace, выяснилось, что он ждет futex, например1673109 14: 36: 28.600329 futex (0x44b8d20, FUTEX_WAIT_PRIVATE,1673…
27 июл '16 в 22:05
1
ответ
Можно ли смешивать мьютексы на основе futex с мьютексами glibc-2.2 linuxthreads?
Если вы не знаете, что такое futex и linuxthreads-0.9, пожалуйста, не отвечайте. Могу ли я смешать в одной программе мьютекс на основе futex с мьютексом из linuxthreads-0.8 или -0.9 (который использовался во всех glibc <=2.2 и во всех uClibc)? Мне н…
10 фев '10 в 18:01
1
ответ
Подход быстрого уведомления пространства пользователя в Linux?
У нас есть два процесса Linux, взаимодействующих с доменным сокетом, цель производительности - 5 тыс. Запросов в секунду с размером запроса 4 тыс. Через соединение с одним доменным сокетом, чтобы уменьшить стоимость процессора, мы заменяем доменный …
05 янв '14 в 08:47
0
ответов
Параллельный (OpenMP) код Fortran останавливается после долгого времени без выдачи ошибки
Запустив код Fortran, содержащий параллельную область OpenMP, я столкнулся с проблемой, заключающейся в том, что после некоторого времени, когда код работает нормально (счетчик =~1 000 000 000 в приведенном ниже коде), он останавливается без сбоев и…
15 мар '17 в 12:08
2
ответа
Использование libcurl в многопоточной среде приводит к ОЧЕНЬ низкой производительности, связанной с поиском DNS
Вам придется простить довольно большой блок кода, но я считаю, что это почти минимальное воспроизведение моей проблемы. Проблема не изолирована от example.com но сохраняется на многих других сайтах. Если у меня 4 потока активно делают сетевые запрос…
01 фев '18 в 04:51
0
ответов
Почему приложение.net core создает слишком много вызовов futex в linux
Всем. У меня проблемы с этой проблемой в течение нескольких дней, у меня есть сайт с ядром.net, работающий за nginx на centos 7 с ядром 4 процессора, который обычно выдает 502 ошибки шлюза. какие-либо предложения? [root @ web10 ~] # dotnet --info .N…
11 окт '18 в 04:11
2
ответа
Как найти причину сбоя установки futex?
Я пытаюсь синхронизировать 5 процессов, они должны быть созданы от одного отца. Я попытался вставить 5 ожиданий, чтобы дождаться завершения дочернего процесса, но код никогда не достигает D4 и D5. #include <unistd.h> #include <semaphore.h&g…
26 дек '18 в 12:17
1
ответ
C - программа зависает; futex_wait_queue_me
По просьбе я включил код целиком, чтобы вы могли его протестировать. Имейте в виду, что это еще далеко не завершено, но должно быть в состоянии отправлять и получать пакеты через стабильное соединение TCP. Когда я запускаю его, я получаю: ./bunny -i…
21 авг '12 в 20:11
1
ответ
Почему однопоточная программа Java использует системные вызовы futex и clone
Это однопотоковая Java-программа для поиска факториала заданного числа, переданного в качестве аргумента, с использованием рекурсии. class factorial{ public static void main(String[] args){ int number=0; try { number = Integer.parseInt(args[0]); } c…
25 окт '15 в 21:46
1
ответ
Испортил использование do_futex?
Я получаю странную ошибку. Я реализовал эти две функции: int flag_and_sleep(volatile unsigned int *flag) { int res = 0; (*flag) = 1; res = syscall(__NR_futex, flag, FUTEX_WAIT, 1, NULL, NULL, 0); if(0 == res && (0 != (*flag))) die("0 == res …
31 авг '10 в 17:16
2
ответа
Отложенный вызов bcast для условных переменных - это действительно?
Я реализую переменные условия pthread (основанные на фьютексах Linux), и у меня есть идея, чтобы избежать "эффекта давки" на pthread_cond_broadcast с общими переменными условия процесса. Для cond-переменных, не относящихся к процессу, операции запро…
24 сен '11 в 01:39
1
ответ
Смотрите трассировку стека зависания Python в futex(..., FUTEX_WAIT_BITSET_PRIVATE|...)
Процесс Python зависает в futex(): root@pc:~# strace -p 9042 strace: Process 9042 attached futex(0x1e61900, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, ffffffff Я хочу увидеть трассировку стека, если процесс зависания. К сожалению Ctrl-…
15 сен '16 в 08:48
0
ответов
Как Futex работает в моем коде?
Я вижу беспорядочный вывод из моего кода futex. Вот мой код, #include <stdio.h> #include <pthread.h> #include <linux/futex.h> #include <syscall.h> #include <unistd.h> #include <limits.h> #include <time.h> #i…
21 июл '14 в 13:00
1
ответ
Каков наиболее эффективный способ управления отслеживанием официантов с помощью блокировок на основе futex?
Я использую подход подсчета официантов для блокировок на основе futex: рядом с futex intимея вторую int это число официантов, которое официанты, борющиеся за блокировку, атомарно увеличивают перед выполнением операции ожидания futex и атомарно умень…
31 июл '14 в 02:26
1
ответ
Прохождение кода Futex - возвращение EFAULT
В futex_wake_op function файла futex.c в исходном коде ядра Linux, я пытался понять, как элемент управления достигает этой точки. Это происходит, когда в вышеупомянутой функции futex_atomic_op_inuser возвращает -EFAULT, и все же uaddr2 доступно для …
15 сен '11 в 17:25
0
ответов
futex возвращает ETIMEDOUT быстрее, чем время ожидания параметра
Я работаю в виртуальной машине Ubuntu на vSphere. Мое приложение ждет сигнала pthread (sem_t) каждую 1 секунду. когда я выполняю системный вызов, обнаруживаю, что системный вызов возвращается намного быстрее, чем 1 секунда. Результат по strace, как …
04 фев '15 в 12:06
1
ответ
Почему sem_t 32 байта в 64-битной Linux?
sem_t в 64-битном linux составляет 32 байта, но с реализацией futex 8 байтов достаточно ( glibc sem_post), это правда? если это правда, зачем делать это тратить байты? На самом деле я хочу использовать пользовательскую реализацию семафора, которая и…
10 окт '12 в 05:46