[so2] Bug în checker

Mihail Dunaev ddryhten at gmail.com
Tue Mar 18 10:34:57 EET 2014


Hello,

(1) Deşi folosesc kmalloc în ret_handler nu îmi ciclează la infinit.
Am văzut că dacă apelez kmalloc din modulul meu, nu mi se apelează
handler-ul pe care îl ataşez lui __kmalloc cu jprobe/kretprobe, adică :

my_krp.handler = ret_handler;
my_krp.kp.symbol_name = “__kmalloc”;

ptr = __kmalloc (size, flag); // aici se apelează

ptr = kmalloc (size, flag); // aici nu se apelează

Teoretic ar trebui ca “__kmalloc” să se apeleze în ambele cazuri.
Aş vrea să ştiu şi eu de ce nu se întâmplă asta. Aparent pentru
alte module funcţionează, pentru că îmi trece testele.

(2) Legat de altă soluţie, ar trebui să folosim direct slab în “ret_handler”
sau ar fi ok dacă folosim ceva de genul “#define MAX_KMALLOCS 32”
(sau 128, am văzut că se testează maxim cu 32 de apeluri, iar vectorul
în care se salvează dimensiunile alocate are 128 de elemente, static).

(3) Mai am o problemă la “kfree” (handler) : dacă îi dau “read_lock “
când parcurg lista de pid-uri urmarite, şi eu explicit nu mai apelez
niciun kfree între timp, chiar dacă îi dau “read_unlock” înainte de toate
ieşirile din funcţie, mi se blochează.

(4) Am văzut că a întrebat asta cineva şi anul trecut, ce facem în cazul :

(pid x) : kmalloc (...)
trace (pid x)
(pid x) : kfree ()

Ignorăm sau salvăm dimensiunea alocată pentru toate pid-urile, nu doar
cele urmărite, ca să ştim ce să adăugăm la kfree ?

În data de 17 martie 2014, 23:00, Victor Dodon <dodonvictor at gmail.com> a scris:
> 2014-03-17 22:49 GMT+02:00 Daniel Baluta <daniel.baluta at gmail.com>:
>
>> Aici ramane sa te gandesti tu. O idee ar fi sa aloci memoria atunci cand
>> se primeste comanda de monitorizare pentru proces.
>
> Da, dar nu știu câtă memorie ar trebui să aloc. Mi se pare rezonabil
> să țin o listă cu zonele de memorie alocate, dar nu știu apriori de
> câte ori va fi apelat kmalloc de un task.
>
> Victor.
>
>>
>> Daniel.
>> _______________________________________________
>> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii


More information about the so2 mailing list