Gumamit ng mutex_lock_interruptible function upang payagan ang iyong driver na magambala ng anumang signal. Ito ay nagpapahiwatig na ang iyong system call ay dapat na nakasulat upang ito ay ma-restart. (Tingnan din ang ERESTARTSYS.)
Maaari ko bang i-lock ang isang spinlock sa isang CPU at i-unlock ito sa isa pang CPU?
Ang paggamit ng mga spinlock sa isang single-core/single-CPU system ay karaniwang walang kahulugan, dahil hangga't hinaharangan ng spinlock polling ang tanging available na CPU core, walang ibang thread ang maaaring tumakbo at dahil walang ibang thread ang maaaring tumakbo, hindi rin maa-unlock ang lock.
Maaari ko bang tawagan si Kmalloc Gfp_kernel habang may hawak na spinlock?
Hindi ka maaaring, gayunpaman, gumawa ng anumang bagay na makakatulog habang may hawak na spinlock. Halimbawa, huwag tumawag sa anumang function na humipo sa memorya ng user, kmalloc gamit ang flag ng GFP_KERNEL, anumang function ng semaphore o alinman sa mga function ng iskedyul habang may hawak na spinlock. … Ang mga semaphore sa Linux ay sleeping lock.
Ano ang Spinlock_t?
int spin_trylock(spinlock_t lock) Nila-lock ang spinlock kung hindi pa ito naka-lock. Kung hindi makuha ang lock, lalabas ito nang may error at hindi iikot ang lock. spin_lock_irq: spin_lock_irq(spinlock_t lock)
Ano ang kernel mutex?
Sa Linux kernel, ang mga mutex ay tumutukoy sa isang partikular na locking primitive na nagpapatupad ng serialization sa mga shared memory system, at hindi lamang sa generic na termino na tumutukoy sa 'mutual exclusion' na makikita sa akademya o mga katulad na theoretical text book.