[pso] [linux4]schedule_work in functia asociata unui timer
catalina caloian
catalina.caloian at gmail.com
Tue Jun 19 21:30:38 EEST 2007
cosminratiu at gmail.com wrote:
Ai dreptate; uitasem de hook-uri.
Am ales sa folosesc un semafor din cauza ca in implementarea actiunii
asociate FW_LIST trebuie sa fac 'copy_to_user' pe regulile din tabela.
Daca protejez tabela cu un spinlock, as putea sa "dorm" detinand un
spinlock ('copy_to_user' poate sa doarma, iar spinlockul trebuie sa-l
iau cand parcurg lista ca sa copiez regulile in userspace). Asa am ajuns
sa folosesc un semafor... desi acum e clar ca nu e o idee prea buna :)
Ce as putea sa fac in conditiile astea?
> Cred ca problema este alta: tu zici ca folosesti un semafor pentru
> protejarea listei de reguli. Lista respectiva de reguli nu o folosesti
> si din context softirq, in hook-uri? Folosirea unui semafor acolo este
> gresita. Nu poti decat cu spinlock-uri.
>
>
> On 6/19/07, *catalina caloian* <catalina.caloian at gmail.com
> <mailto:catalina.caloian at gmail.com>> wrote:
>
> Buna.
>
> Am ales sa protejez tabela de reguli cu ajutorul unui semafor.
> La expirarea unui timer apare insa urmatoarea problema: vreau sa
> scot o
> regula din tabela; pentru aceasta, ar trebui sa fac 'down' pe
> semafor,
> lucru nepermis intrucat functia asociata expirarii timer-ului ma
> duce in
> context intrerupere. Solutia gasita ar fi ca stergerea
> regulii s-o fac
> cu ajutorul unui workqueue, iar in functia asociata timer-ului sa
> apelez doar 'schedule_work'.
>
> V-as ruga sa-mi confirmati ca e in regula sa folosesc
> 'schedule_work' in
> context intrerupere. In plus, e acceptabil ca stergerea regulii sa se
> faca nu imediat ce expira timer-ul, ci la un moment ulterior
> (decis de
> planificator)?
>
> Multumesc,
> Catalina Caloian
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro <mailto:pso at cursuri.cs.pub.ro>
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
More information about the pso
mailing list