LINUX.ORG.RU

подскажите способ дождатся изменения некоторого участка шаренной памяти без расходования ресурсов процессора на поллинг

 remote processor, ,


0

1

может както с защитой памяти поигратся? память будет изменятся удаленным (ремотным) процессором.

под удаленным процессором поразумевается ядро которое шарит с основным ядром память/контроллер памяти/шину/MMU но при этом живет собственной жизнью.

PS: извеняюсь за путанное изложение мыслей.

★★★★★

Последнее исправление: cvv (всего исправлений: 4)

удаленным процессором

Это как?

Пусть кидает сигнал. Или, например, заюзай межпроцессный семафор.

intelfx ★★★★★
()

У тебя сопроцессор в стиле NM на MB7.77 или DSP на Эльбрусе-S? Тогда на аппаратном уровне это не разруливается. Дергай хост-процессор прерыванием после записи данных.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Тогда на аппаратном уровне это не разруливается

Вообще-то это в любом современном процике есть, виртуальная память без этого не работает. Даже если забыть про дебаг-режимы и виртуалочки.

Другой вопрос, как это использовать из юзерспейса.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Тогда на аппаратном уровне это не разруливается

Вообще-то это в любом современном процике есть, виртуальная память без этого не работает

Один из нас не понял вопроса, и думаю, что это ты. Подождем ответа ТС.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

да там и вопрос от ТС не очень понятен... изменения обычно не атомарны, и чаще нужно ждать пока изменения не начнутся, а закончатся. самое универсальное (но может и не самое удачное) решение здесь - использовать семафор

hoopoe ★★
()

Я думаю что стоит просто использовать о отдельные примитивы синхронизации. Подумай об этом по другому, два потока и два процесса с общей памятью в твоей задаче - практически одно и то же. Но в потоках ты меняешь переменную, а потом сигнализируешь с помощью condition variable или мьютексов. Почему тут по другому будет?

vertexua ★★★★★
()
Ответ на: комментарий от tailgunner

Ну не знаю, что тут непонятного. ТС не хочет постоянно проверять память на предмет изменений. Ок, чуть выше я дал ссылочку на отлов page fault в юзерспейс. Осталось только: заполнить шареную память и сделать финт ушами с anon_remap. Теперь при попытке потыкать эту память будет пейждфолт с вызовом обработчика, который и проверит характер шевеления - были изменения или нет. Как-то так. Допускаю, что на деле это окажется не так красиво и просто, но уж всяко интереснее опроса.

no-such-file ★★★★★
()
Ответ на: комментарий от hoopoe

решение здесь - использовать семафор

Я так понимаю, что ТС использует что-то стороннее и вариант с введением каких-то семафоров, мьютекстов и т.д. исключается, а нужен именно хак.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от no-such-file

Ну не знаю, что тут непонятного.

Тебе просто опыта не хватает. Словосочетание «удаленный процессор» можно понимать по-разному, в том числе - как «процессор на плате расширения, подключенной через стандартную шину». Если ситуация такова, то предложенное в этом топике либо просто неприменимо, либо применимо только на уровне общих принципов.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

процессор на плате расширения, подключенной через стандартную шину

Человек, который щупает такую штуку, не будет спрашивать на ЛОРе, как её правильно щупать. Очевидно же.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от tailgunner

может оказаться вполне доступной простому смертному MB77.07.

Дело не в доступности, а в знаниях. Если человек возится с MB77.07, то он не станет спрашивать тут такую чепуху.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Если человек возится с MB77.07, то он не станет спрашивать тут такую чепуху.

Как скажешь.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

сами придумаем проблему, сами будем её героически решать. в оп-посте ничего про удалённый процессор нет («придумаем проблему», да) и я разделяю мнение вашего оппонента по поводу того, что тс сам не знает чего хочет.

anonymous
()

Удалённым от слова удалили?

Кстати почему remote перевели как удалённый, а не отдалённый например?

nanoolinux ★★★★
()
Ответ на: комментарий от anonymous

в оп-посте ничего про удалённый процессор нет

Неужели? «Память будет изменятся удаленным процессором», не?

tailgunner ★★★★★
()
Ответ на: комментарий от no-such-file

Ок, чуть выше я дал ссылочку на отлов page fault в юзерспейс.

для второго кора page fault не будет. так же не будет page fault если в эту память через pci какое-нибудь устройство запишет.

можно ли контролировать события через cache coherence протокол, не знаю, может и можно.

dimon555 ★★★★★
()
Ответ на: комментарий от nanoolinux

Удалённым от слова удалили?

от слова «даль»

Кстати почему remote перевели как удалённый, а не отдалённый например?

возможно потому что мой русский хромает

cvv ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

У тебя сопроцессор в стиле NM на MB7.77 или DSP на Эльбрусе-S? Тогда на аппаратном уровне это не разруливается.

да

Дергай хост-процессор прерыванием после записи данных.

у меня юзерспейс. дополнительные прерывания и K - нежелательны. Хотя возмжно я хочу невозможного.

Ремотный проц прикрыт MMU.

cvv ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Эти все варианты, насколько я их понимаю, без поллинга не летают.

cvv ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

ссылка интересная. благодарю.

cvv ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

вполне будет. ЛОР - оччччень неплохое место чтобы определить направление движения ибо здесь просто нереальное количество СПВ.

cvv ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

вот если бы еще найти как зароутить к нам обработку ремотного пейдж-фолта - было бы совсем класно.

cvv ★★★★★
() автор топика
Последнее исправление: cvv (всего исправлений: 1)
Ответ на: комментарий от cvv

у меня юзерспейс. дополнительные прерывания и K - нежелательны

Если архитектура системы такова, как я ее понимаю, без этого не обойтись. Но обычно общение с удаленным процессором идет с помощью какой-то библиотеки, которая прячет детали (и у которой запросто может быть ядерный компонент).

Ремотный проц прикрыт MMU.

Хм. Ты хочешь сказать, что операции обращения к памяти, выполняемые удаленным процессором, контролируются тем же MMU, что и операции от локального процессора? Если да - не секрет, как называется твоя железка?

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.