Portál AbcLinuxu, 9. května 2025 06:06

Dotaz: Zavolání user-space kódu z modulu

Luk avatar 22.7.2005 18:37 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Zavolání user-space kódu z modulu
Přečteno: 64×
Odpovědět | Admin

Potřeboval bych na základě určité události v modulu jádra zavolat kus kódu v user space (v programu, který daný modul používá). Šlo by to samozřejmě přes signál, ale ten není selektivní.

Hledal jsem, a našel tyto cesty:

1. Řešení "ála signály" - složité, hlavně kvůli problémům s návratem do kernel space
2. Řešení pomocí kerneld (nemůžu použít - nepoběží tam)
3. Vykonání v jiném vlákně (dtto - do vláken nemohu sahat)

Nevěděl by někdo o něčem lepším? Díky.

Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.7.2005 19:06 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Zavolání user-space kódu z modulu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím jaká je to událost, ale co třeba hotplug?
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
Luk avatar 22.7.2005 19:55 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše Re: Zavolání user-space kódu z modulu
Změna stavu karty. Hotplug nepřipadá v úvahu, ten tam nebude, poběží to na hodně oholeném embedded systému (jen jádro 2.6 + uživatelský program + něco málo k tomu). Ještě upřesním, bude se pravděpodobně používat devfs.
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
22.7.2005 21:48 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Zavolání user-space kódu z modulu
Nemusí tam být kompletní hotplug, ale nějaký jednoduchý program, který bude zpracovávat eventy od kernelu. Je možnost využít rozhraní hotplugu, nebo ho duplikovat, to je celkem jedno.

Jinak devfs, který se už v Linusově kernelu moc dlouho neohřeje (jestli tam ještě vůbec je, viz Documentation/feature-removal-schedule.txt), bych dneska do ničeho necpal, je to věc, která se mimo hlavní strom bude udržovat hodně špatně.
Luk avatar 22.7.2005 23:58 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše Re: Zavolání user-space kódu z modulu
Ad devfs - je to patchovaný embedded kernel, některé věci jsou trochu jinak než ve vanille. Podle všeho tam ten devfs bude ještě dost dlouho (min. tak dlouho, dokud se budou používat jádra z větve 2.6).

Jinak obecně bych to dost nerad řešil samostatným procesem. Ono jde totiž také o to, že je potřeba to zpracovat rychle (což při přepínání kontextu může být docela problém). Takže to asi nejspíš budu řešit signálem...
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
22.7.2005 21:50 iSteve
Rozbalit Rozbalit vše Re: Zavolání user-space kódu z modulu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je mi lito, ale jako jedina trivialni metoda mi pripada vygenerovat hotplug eventu.

Nikdo nerika, ze tam musis mit hotplug. Staci trivialni client, kterej bude zjistovat, jestli je to eventa na nej -- a pokud ano, provede svoje carovani.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.