[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.