[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