Bruk mutex_lock_avbrytbar funksjon for å la sjåføren din bli avbrutt av et hvilket som helst signal. Dette innebærer at systemkallet ditt skal skrives slik at det kan startes på nytt. (Se også ERESTARTSYS.)
Kan jeg låse en spinlock i én CPU og låse opp en annen CPU?
Å bruke spinlocks på et system med én kjerne/enkelt-CPU gir vanligvis ingen mening, siden så lenge spinlock-pollingen blokkerer den eneste tilgjengelige CPU-kjernen, kan ingen annen tråd kjøres, og siden ingen annen tråd kan kjøre, låsen vil heller ikke låses opp.
Kan jeg ringe Kmalloc Gfp_kernel mens jeg holder en spinlock?
Du kan imidlertid ikke gjøre noe som vil sove mens du holder en spinlock. For eksempel, aldri kall noen funksjon som berører brukerminnet, kmalloc med GFP_KERNEL-flagget, noen semaforfunksjoner eller noen av planfunksjonene mens du holder en spinlock. … Semaforer i Linux er sovende låser.
Hva er Spinlock_t?
int spin_trylock(spinlock_t lock) Låser spinlocken hvis den ikke allerede er låst. Hvis den ikke kan få tak i låsen, avsluttes den med en feil og spinner ikke. spin_lock_irq: spin_lock_irq(spinlock_t lock)
Hva er en kjernemutex?
I Linux-kjernen refererer mutexes til en spesiell låseprimitiv som fremtvinger serialisering på delte minnesystemer, og ikke bare til den generelle termen som refererer til "gjensidig ekskludering" som finnes i akademia eller lignende teoretiske lærebøker.