[pso] tema1 linux - kmalloc in spinlock
Octavian Purdila
pso@cursuri.cs.pub.ro
Sun, 20 Mar 2005 14:31:47 +0200
On Sunday 20 March 2005 01:49 pm, George Adrian Drumea wrote:
>
> Insa fiind un kernel preemptible, acest busy waiting poate aparea (mai
> rar probabil) si in lipsa acestui kmalloc, nu?
>
Nu inteleg exact la ce te referi, dar spin_lock() dezactiveaza preemptivitatea
ca altfel ar exista race-uri... Deci raspunsul corect la intrebarea
anterioara era ca apare deadlock :)
> Inca o intrebare (ca deja cred ca am insistat prea mult pe asta): kfree e
> safe sa folosit in spinlocks?
Da.
Iar, ca regula generala: de cele mai multe ori doar 2-3 linii de cod trebuiesc
incadrate cu lock/unlock. Daca pastrati intre lock si unlock numarul minim de
instructiuni necesare pentru a evita race-urile, evitati si dead-lock-urile.