<br><br><div class="gmail_quote">2013/3/24 Cosmin Paraschiv <span dir="ltr"><<a href="mailto:csmnprschv@gmail.com" target="_blank">csmnprschv@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 3/24/2013 6:02 PM, Claudiu Ghioc wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Am o intrebare pentru kfree. Am adaugat un .handler si un .entry_handler si observ foarte mult hit-uri pe aceste functii, de foarte multe ori chiar cu acelasi parametru. Se mai intampla asta altcuiva? Adresa am luat-o in entry_handler din ax, iar in handler din bx.<br>

</blockquote>
<br></div>
Pentru kfree trebuie inregistrat un jprobe, nu un kretprobe. Astfel, vei defini campul entry cu adresa unei functii de callback, avand signatura kfree-ului. Unicul parametru este fix adresa care te intereseaza.<br>
Incearca sa printezi current->comm. Cel mai probabil, multiplele kfree-uri pentru aceeasi adresa sunt venite de la un rmmod, care apeleaza module_exit si, mai departe, cleanup_module, unde se intampla magia.<div class="im">
<br></div></blockquote><div><br></div><div>Daca e ok cu jprobe, asa facem. In enunt se povesteste de kretprobe pentru kmalloc, se mentioneaza kfree, iar apoi "<span style="font-size:13px;color:rgb(51,51,51);font-family:Verdana,'Lucida Grande',Lucida,Helvetica,Arial,sans-serif;line-height:19px;text-align:justify;background-color:rgb(255,255,255)">Pentru toate celelalte funcții se va folosi o probă de tipul </span><code style="font-size:13px;padding:0px;margin:0px;font-family:monospace,serif;color:rgb(51,51,51);line-height:19px;text-align:justify;background-color:rgb(255,255,255)">jprobe".</code></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
De asemenea incerc sa imi dau seama cand se reuseste eliberarea de memorie, verificand daca este vreo diferenta la pointerul salvat in entry_handler, insa diferenta nu apare doar odata pentru un pointer ci de foarte multe ori. Si nu pot sa gasesc cazul in care chiar se elibereaza memoria.<br>

</blockquote>
<br></div>
Pointer-ii care trebuie comparati sunt cel primit ca parametru in handler-ul pentru kfree si cel intors de __kmalloc, care poate fi obtinut in handler-ul de iesire pentru __kmalloc, din registrul ax.<br></blockquote><div>
<br></div><div>Ok, mersi! </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
______________________________<u></u>_________________<br>
<a href="http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii" target="_blank">http://ocw.cs.pub.ro/courses/<u></u>so2/resurse/lista-discutii</a></blockquote></div><br><br clear="all"><div><br></div>