Ovladac, kontext jadra, uzivatelsky prostor, ...

Petr Baláš petr na balas.cz
Neděle Květen 22 09:48:25 CEST 2011


2011/5/21 d.petr <d.petr na post.cz>:
>> >>>>> 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


Další informace o konferenci Linux