[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