[pso] [SO2][TEMA 5] Prioritate
Drutu Bogdan
bogdandrutu at gmail.com
Fri May 14 22:12:00 EEST 2010
2010/5/14 Octavian Voicu <octavian.voicu at gmail.com>:
> 2010/5/14 Drutu Bogdan <bogdandrutu at gmail.com>:
>> NET_TX_SOFIRQ și NET_RX_SOFTIRQ - au aceeasi prioritate.
>
> Nu au aceeasi prioritate, vezi [1] sau laboratorul 7. Constantele sunt
> intr-un enum si au valori consecutive. TX are prioritate mai mare
> decat RX.
My Bad:
NET_TX_SOFIRQ și NET_RX_SOFTIRQ - folosite de către subsistemul de networking;
eu vedeeam fiecare bullet ca pe un nivel de prioritizare.
>
>> Nu sunt foarte sigur si de aceea intreb, pentru a preemta un softirq
>> trebuie ca cel care vrea sa faca asta trebuie sa aiba prioritatea
>> strict mai mare ">" (sau mai mare sau egala ">=")?
>
> Softirq-urile ruleaza cu preemptivitatea dezactivata, la fel ca toate
> intreruperile. Asta poti vedea studiand functia ksoftirqd [2]. Ea
> apeleaza do_shiftirq() cu preemptivitatea dezactivata. Aceasta functie
> [3] este responsabila de efectuarea de treceri prin lista de
> softirq-uri si rularea, in ordinea prioritatilor, a celor care sunt in
> statusul pending.
>
> Functia local_softirq_pending() returneaza o valoare cu bitii
> corespunzatori softirq-urilor in starea pending setati, biti care sunt
> verificati incepand cu cel mai putin semnificativ -- adica cu
> prioritatea 0.
>
> Dupa o trecere prin toata lista, se va efectua o noua trecere daca
> alte softirq-uri au trecut in starea pending. Se efectueaza maxim 10
> treceri, asa cum indica constanta MAX_SOFTIRQ_RESTART.
>
> Astfel, prioritatea indica numai in ce ordine sunt executate
> softirq-urile, daca sunt mai multe care asteapta. Nu e vorba de
> preemptare.
E clar, un pic de odihna nu strica la nimeni (ai mare dreptate se
comporta la fel ca irq).
>
> Octavian
>
> [1] http://lxr.linux.no/linux+v2.6.31/include/linux/interrupt.h#L334
> [2] http://lxr.linux.no/linux+v2.6.31/kernel/softirq.c#L700
> [3] http://lxr.linux.no/linux+v2.6.31/kernel/softirq.c#L180
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
--
Bogdan.
More information about the pso
mailing list