[so2] [Tema1] Problema sincronizare

Diana Grecu dianagrecu07 at gmail.com
Fri Mar 27 12:55:23 EET 2020


Am rezolvat pana la urma, in functia de distrugere a listei nu trimiteam
list_head-ul acesteia ca pointer.

Multumesc frumos pentru raspuns,
Diana

On Fri, Mar 27, 2020 at 12:15 PM Daniel Baluta <daniel.baluta at gmail.com>
wrote:

> On Fri, Mar 27, 2020 at 11:43 AM Diana Grecu via so2
> <so2 at cursuri.cs.pub.ro> wrote:
> >
> > Buna,
> >
> > Am o problema cu un deadlock la partea de stergere a unui proces din
> hashtable.
> >
> > In structura pentru un element din hashtable tin si o lista pentru
> asocierile adresa de inceput - dimensiune, iar cand se apeleaza functia de
> stergere pentru un anumit pid, inainte de a da hash_del pe element, vreau
> sa distrug si lista corespunzatoare lui.
> >
> > La partea asta apare deadlock-ul. Am crezut initial ca este din cauza
> faptului ca apelez kfree pentru eliberarea memoriei elementelor din lista,
> dar pana la urma am vazut ca si daca las pur si simplu doar iteratia cu
> list_for_each_safe, fara nimic altceva in interiorul ei, se intampla
> acelasi lucru; daca scot parcurgerea listei nu mai e nicio problema.
> >
> > Nu incerc sa iau de 2 ori acelasi lock, pentru ca fiecare lista are un
> lock asociat ei si nu imi dau seama de la ce ar putea sa apara problema.
> >
> > Are cineva vreo idee?
>
> Lockdep nu zice nimic? Ar trebui sa fie deja activat in setup-ul cu qemu.
> Ar trebui sa-ti apara ceva pe consola seriala.
>
> Ce lock-uri ai?
> 1) lock pentru bucket din hashtable
> 2) lock pentru lista [addresa ..size]
>
> In ce ordine le iei?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20200327/c7c3e022/attachment.html>


More information about the so2 mailing list