[so2] [Linux][Tema1] Eliminare modul - sincronizare / kfree

Alexandru Juncu alexj at rosedu.org
Tue Mar 12 21:18:12 EET 2013


2013/3/12 Mihail Costea <mihail.costea90 at gmail.com>:
> 2013/3/12 Alexandru Juncu <alexj at rosedu.org>:
>> 2013/3/12 Mihail Costea <mihail.costea90 at gmail.com>:
>>> Salut,
>>>
>>> La eliminare modul mai este nevoie de sincronizare pentru zona de date
>>> globala, gen liste / vector?
>>
>> La ce sincronizare te referi?
>>
>
> Fie urmatorul caz de utilizare:
> Se apeleaza propriul syscall (cu MY_SYSCALL_NO) de catre un program
> aleatoriu (test de exemplu), dar inainte de incheiere apel se ruleaza
> rmmod sci. In acest caz mai e nevoie de sincronizare? Sau mai exact ce
> se intampla cu tot ce tine de modul.

La rmmod se face mymodule_exit(). Tu în mymodule_exit ar trebui să
eliberezi toate resursele. Atunci când eliberezi resurse, ar trebui să
faci lock pe structuri care pot fi citite/scrise de alte procese. Prin
urmare, ar trebui să ai sincronizare și aici. Dacă faci totul ca la
carte, nu ar trebui să să ajungi în situația în care un proces să
ceară un apel interceptat dar tu să faci în același timp rmmod și
modulul chiar să se termine în mijlocul operației de interceptare.


More information about the so2 mailing list