[pso] [linux4]schedule_work in functia asociata unui timer

cosminratiu at gmail.com cosminratiu at gmail.com
Tue Jun 19 22:08:06 EEST 2007


Solutia este simpla: fa o copie la lista de reguli intr-un buffer temporar
cand faci FW_LIST.

On 6/19/07, catalina caloian <catalina.caloian at gmail.com> wrote:
>
> 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
> >
>
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20070619/61ecd15c/attachment.htm


More information about the pso mailing list