Kasutage funktsiooni mutex_lock_interruptible , et lubada teie draiverit mis tahes signaaliga katkestada. See tähendab, et teie süsteemikõne tuleks kirjutada, et seda saaks taaskäivitada. (Vt ka ERESTARTSYS.)
Kas ma saan lukustada spinlocki ühes CPU-s ja avada selle teises CPU-s?
Spinlockide kasutamisel ühetuumalise/ühe protsessoriga süsteemis pole tavaliselt mõtet, kuna seni, kuni spinlocki küsitlus blokeerib ainsa saadaoleva CPU-tuuma, ei saa käitada ühtegi teist lõime ja kuna ükski teine lõim ei tööta, lukku ka ei avata.
Kas ma saan helistada Kmalloc Gfp_kernelile, hoides spinlocki?
Te ei saa aga teha midagi, mis spinlocki hoides magab. Näiteks ärge kunagi kutsuge spinlocki hoides mitte ühtegi funktsiooni, mis puudutab kasutaja mälu, kmalloci lipuga GFP_KERNEL, mis tahes semaforifunktsioone ega ajakavafunktsioone. … Linuxi semafoorid on uinuvad lukud.
Mis on Spinlock_t?
int spin_trylock(spinlock_t lock) Lukustab spinlocki kui see pole juba lukus. Kui lukku ei õnnestu hankida, väljub see veaga ja lukku ei keerata. spin_lock_irq: spin_lock_irq(spinlock_t lock)
Mis on tuuma mutex?
Linux'i tuumas viitavad mutexid teatele lukustusprimitiivile, mis jõustab serialiseerimise ühismälusüsteemides, mitte ainult üldisele terminile, mis viitab 'vastastikusele välistamisele'. akadeemilised või sarnased teoreetilised õpikud.