Re: Ovladac, kontext jadra, uzivatelsky prostor, ...

d.petr d.petr na post.cz
Pondělí Květen 23 16:26:07 CEST 2011


> >> >>>>> Jsem tedy zmaten. Mohl by mi, prosím, někdo stručně vysvětlit, jakým
> >> >>>>> způsobem
> >> >>>>
> >> >>>> vlastně ovladač pracuje, zda jako jádro, nebo jako obyčejný proces,
> nebo
> >> >>>> nějak
> >> >>>> jinak, ...? Pracuje snad ovladač, i přes všechna varování v mně
> dostupné
> >> >>>> literatuře, pouze jako součást volající aplikace, pouze s možností
> >> >>>> přístupu k
> >> >>>> HW?
> >> >>>>>
> >> >>>>> Za případné vysvětlení předem díky.
> >> >>>>> Petr
> >> >>>>
> >> >>>> Hint 1 - kolikajádrový je procesor na kterém to běželo?
> >> >>>> Hint 2 - CONFIG_PREEMPT
> >> >>>>
> >> >>>> Petr Baláš - petr at balas dot cz
> >> >>>
> >> >>>
> >> >>> Jednojádrové ARM, RT-verze jádra 2.6.18 (verze 2.6.18 doufám, teď u něj
> >> >>> nejsem), ovladač CANovského řadiče napevno zkompilovaný do jádra,
> nekonečná
> >> >>> smyčka byla ve funkci write volané při zápisu do /dev/can0.
> >> >>> PM
> >> >>
> >> >> A jak je nastaven CONFIG_PREEMPT při kompilaci daného jádra? U RT
> >> >> jádra předpokládám povolen že?
> >> >
> >> >
> >> > Jsem přesvědčen, že ano.
> >> > PM
> >>
> >> A také máte u této volby jako nápovědu toto:
> >>
> >> This option reduces the latency of the kernel when reacting to
> >> real-time or interactive events by allowing a low priority process to
> >> be preempted even if it is in kernel mode executing a system call.
> >> ?
> >> Petr Baláš - petr at balas dot cz
> >
> >
> > Jé, to já teď nevím, mám to v práci. Ale standardně to tam je, tak asi ano.
> > No, dlouze jsem to zkoumal (uf, ta anglina :-( ), ..., myslíte, že bez této
> volby by se jádro na té smyčce zakouslo?
> 
> Zakouslo.
> Ale pokud jenom chcete zatuhnout stroj, tak by mělo stačit použít
> preempt_disable a preempt_enable okolo té smyčky.
> Petr Baláš - petr at balas dot cz


A fakt! Tuto hypotézu nakonec potvrdila i knížka pana Jelínka, přesto jsem učinil praktický pokus: přeložil jádro bez PREEMPT, spustil aplikaci a ... watchdog to celé restartnul. To jsou teda souvislosti.
Jen zatuhnout stroj nepotřebuji, chtěl jsem prověřit chování v ovladači. :-)
Velice děkuji za objasnění, už jsem začínal pochybovat o chytrých knihách.
PM


Další informace o konferenci Linux