[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