[pso] [Tema1] Comportament ciudat spin_lock?

Laurențiu Dascălu dascalu.laurentziu at gmail.com
Thu Mar 25 20:46:25 EET 2010


Salut,

Pe Linux am încercat să stresez puțin tema:

for i in seq `1 1000`; do ./test; done

După câteva zeci de teste, s-a blocat. Mă uit prin cod, fac afișări dar 
nimic nu era suspect. Am făcut două funcții care abstractizează 
operațiile de lock și unlock; le-am folosit în temă și surpriză: tema 
n-a mai crăpat.

void acquire() { spin_lock(&lock); }
void release() { spin_unlock(&lock); }

E probabil să am un race în temă? Totuși, nu fac decât 3 operații de 
lock. Operațiile pe spin_lock se pot depana? Am găsit 
CONFIG_DEBUG_SPINLOCK[0], dar trebuie să recompilez kernelul cu această 
configurație.

[0] http://cateee.net/lkddb/web-lkddb/DEBUG_SPINLOCK.html

-- 
Laurențiu Dascălu



More information about the pso mailing list