Article View: pl.comp.os.linux.programowanie
Article #72421Re: Połączenie jądro -> program.
From: macu
Date: Mon, 30 Jan 2012 11:06
Date: Mon, 30 Jan 2012 11:06
37 lines
2508 bytes
2508 bytes
On 01/29/2012 08:09 PM, Andrzej W. wrote: > W dniu 2012-01-29 13:42, Krzysztof Magosa pisze: >> Witam. >> >> A w jaki sposób masz rozwiązaną na tę chwilę komunikację między kernelem >> a programem? >> >> Zastanów się nad utworzeniem urządzenia w /dev. >> Program mógłby spać w oczekiwaniu na dane. >> >> Zrób sobie np. cat /dev/input/mice i poruszaj myszką - dopóki nie ma >> danych cat śpi i nie żżera CPU. > > > W tej chwili w moim programie, w pętli odczytuje stan licznika przerwań. > Licznik przerwań zaś jest obsługiwany (zwiększany) przez kod modułu > urządzenia. > Pomyślałem sobie, żeby w kodzie modułu zamiast "count++" dać > "kill(PID,SIGUSR1)" a w moim programie dać "pause". > Pytanie tylko o ile dłużej od "++" będzie się wykonywał "kill" w tym module. > > Zrob dokladnie tak jak napisal Krzysztof Magosa, aby modul byl dostepny przez noda w /dev/ wtedy funkcjami poll/epoll/select uspisz swoj userspace'owy program w oczekiwaniu na zdarzenie (w twoim przypadku inkrementacja licznika), a potem program odczyta dzieki ioctl stan licznika w module (wtedy nie "zgubisz" zadnego przerwania nawet jak czas miedzy odebraniem eventa a odczytem biezacej wartosci bedzie zbyt duzy) Sygnaly maja pewna "nieprzyjemna" wlasciwosc a mianowicie w programie wielowatkowym przerywaja wszystkie watki "czekajace" w wywolaniach jak select(), sem_wait() itp a wtedy te zwracaja -1 i maja ustawiony errno na EINTR co musisz sobie sprawdzic i spowrotem wywolac w/w funkcje Mariusz
Technical Details
Message-ID:
<jg5tir$hd7$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<jg1r2c$814$1@mx1.internetia.pl> <jg3es1$49a$1@news.task.gda.pl> <jg45im$9tb$1@mx1.internetia.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: macu <macu@polbox.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: Połączenie jądro -> program. Date: Mon, 30 Jan 2012 12:06:02 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 37 Message-ID: <jg5tir$hd7$1@inews.gazeta.pl> References: <jg1r2c$814$1@mx1.internetia.pl> <jg3es1$49a$1@news.task.gda.pl> <jg45im$9tb$1@mx1.internetia.pl> NNTP-Posting-Host: 85.94.231.209 Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1327921563 17831 85.94.231.209 (30 Jan 2012 11:06:03 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Mon, 30 Jan 2012 11:06:03 +0000 (UTC) X-User: marcukr In-Reply-To: <jg45im$9tb$1@mx1.internetia.pl> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100430 Fedora/3.0.4-2.fc11 Thunderbird/3.0.4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit