Comments 9
Отличная статья, спасибо!
Всегда хотел понять различия между способами)
Всегда хотел понять различия между способами)
+1
Все обсуждавшиеся коды (для проверки, или использования, или дальнейшего улучшения) могут быть взяты здесь или здесь.
yadi.sk
drive.google.comМожет, лучше GitHub, не?
+3
может и лучше ;-)
но я специально не размещал такие мизерные архивы на GitHub.
но я специально не размещал такие мизерные архивы на GitHub.
+1
Есть такой вариант: gist.github.com
+5
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) preempt_enable_no_resched(); #else preempt_count_dec(); #endif
…
preempt_enable_no_resched() был доступен до ядра 3.13
А зачем здесь вообще preempt_enable_no_resched? Чем плох preempt_enable?
static inline unsigned long native_pai_open_kernel( void ) { ... local_irq_disable(); ... } static inline unsigned long native_pai_close_kernel( void ) { ... local_irq_enable(); ... }
Правильнее было бы local_irq_save… local_irq_restore.
0
А зачем здесь вообще preempt_enable_no_resched? Чем плох preempt_enable?
1. я написал, может, значит, недостаточно внятно, что я постарался максимально неприкосновенно сохранить код, так как он написан был в первоисточнике… у автора там preempt_enable_no_resched()
2.… но preempt_enable() столь же плох — в ядре >3.14 он порождает warning показанный в тексте
0
честный способ — только наложение. остальные чреваты races condition.
0
Sign up to leave a comment.
4 способа писать в защищённую страницу