[Team2013] Blocare delvif

Ionut Nicu ionut.nicu at mindbit.ro
Mon Apr 15 13:04:35 EEST 2013


Buna Mihaela,

M-am uitat pe stack trace-ul tau si am identificat problema. Avem
urmatorul deadlock:

* sw_sock_ioctl() face mutex_lock(&sw_ioctl_mutex)
* din __vif_delif() se apeleaza unregister_netdev() care trimite
notificari pentru event-ul de unregister. In acelasi timp noi ne-am
inregistrat un notifier pentru event-uri pe netdevice-uri. Acesta era
folosit pentru a sti cand un netdevice dispare din sistem pentu a putea
face clean-up-urile necesare.
* din callback-ul notifier-ului sw_netdev_event() se incearca din nou sa
se ia acelasi lock. Aici se produce deadlock-ul pentru ca el era luat
deja din sw_sock_ioctl().

Rezolvarea pe care o vad eu in momentul asta e ca sw_netdev_event() sa
verifice daca netdevice-ul pe care il primeste face parte din switch si
doar in acel caz sa-si ia lock-ul si sa apeleze sw_delif(). Astfel, in
cazul de vif se va iesi direct, pentru ca procesul de cleanup se face
din ioctl handler inainte de unregister_netdev().

Te ocupi tu sa faci un patch pentru chestia asta sau il fac eu?

PS: In alta ordine de idei, cum a zis si Radu, intrebarile tehnice ar
trebui mutate pe lisa-devel. Lista asta e doar pentru discutii
administrative.

Ionut.

On Sat, 2013-04-13 at 19:52 +0300, Mihaela Alexandra Martinas wrote:


> În data de 13 aprilie 2013, 18:12, Ionut Nicu <ionut.nicu at mindbit.ro>
> a scris:
>         Buna Mihaela,
>         
>         Ai cumva IGMP snooping-ul activ? Stiu ca am mai discutat pe
>         lista mai
>         demult ca exista niste bug-uri legate de IGMP snooping in
>         contextul
>         vif-urilor.
>         
>         Daca nu, poti sa incerci sa adaugi niste printk-uri de debug
>         prin codul
>         care trateaza ioctl-ul asta si sa vedem cam pe unde s-ar putea
>         bloca?
>         
>         Mai are cineva problema asta? Eu nu imi aduc aminte sa fi avut
>         problema
>         asta la stergerea vif-urilor ...
>         
>         Ionut.
> 
> Am pus ca atasament stacktraceul pe care l-am primit cand am dat
> delvif.
> 
> Desi am pus mesajele de debug KERN_ALERT nu mi le afiseaza, asa nu am
> detalii mai exacte pe unde se opreste. O sa mai investighez.
> 
> --
> Martinas Mihaela-Alexandra
> 
> _______________________________________________
> Team2013 mailing list
> Team2013 at lisa.mindbit.ro
> http://lisa.mindbit.ro/mailman/listinfo/team2013




More information about the Team2013 mailing list