[so2] "[Tema1] Kmalloc prins inconsistent"

Cristian-Valeriu SOARE cristian.soare at cti.pub.ro
Wed Mar 16 18:06:53 EET 2016


Ar trebui sa le lasi. Poti folosi api-ul _rcu care permite mai multi readeri, dar doar un singur writer. Oricum, problema cu mai multe instante active simultan ar trebui sa fie doar la un singur test, din cate m-am prins.

Cristi

________________________________________
From: Madalina Hristache <madalina.hristache at gmail.com>
Sent: Wednesday, March 16, 2016 6:00 PM
To: Cristian-Valeriu SOARE
Cc: Costash; Sisteme de Operare 2
Subject: Re: [so2] "[Tema1] Kmalloc prins inconsistent"

 Cristian-Valeriu SOARE <cristian.soare at cti.pub.ro>:
>> On Mar 16, 2016 16:39, "Madalina Hristache via so2" <so2 at cursuri.cs.pub.ro>
>> wrote:
>>>
>>> Madalina Hristache <madalina.hristache at gmail.com>:
>>> > Salut,
>>> >
>>> > Am o mare problemă și mă lupt cu ea de azi-dimineață. Apelurile de
>>> > kmalloc nu îmi sunt prinse și numărate consistent. Sunt dăți când
>>> > totul merge perfect și dăți când numărul de apeluri kmalloc afișate e
>>> > 0. Nu mai am probleme cu nicio altă funcție. Singurul test care pică e
>>> > penultimul.
>>> >
>>> > Sună cunoscut?
>>>
>>> Ceva e foaaarte putred. Dacă adaug printk-uri să număr apelurile de
>>> kmalloc, crește nebunește numărul de kfree-uri...
>>
>> Asigură-te că sincronizezi corect accesul la structurile de date pe care le
>> modifici în kretprobe și jprobe. Eu țin minte că foloseam un spinlock pe
>> accesurile la un hashmap cu informații.
>>
>> Also, vezi să deînregistrezi probele în ordinea inversă, altfel apar
>> probleme.
>
> Spinlock aveam (tot un hashtable am și eu și număr apelurile în el),
> acum am modificat si deînregistrarea cum ai zis. Și nimic...
>

Contextul probelor trebuie sa fie atomic. So, ai grija sa nu folosesti
in interior vreo functie care face in spate vreun wait. Hint, kmalloc
insusi face wait daca are GFP_KERNEL. Also, ai grija cu spinlockurile:
poate dai de cazul in care mai multe instante de kmalloc trebuie sa
fie active.
>
> Sper sa ajute :)

Mersi mult, sunt atenta la tot, dar nimic. Prin cazul în care "mai
multe instanțe de kmalloc _trebuie_ să fie active înțelegi că ar
trebui să mă asigur că am spinlock-uri astfel încât să le împiedic să
ruleze simultan sau că ar trebui să nu am și să le las. Că eu nu le
las..

Mădă


More information about the so2 mailing list