History

[PATCH] enable PREEMPT_BKL on !PREEMPT+SMP too

The only sane way to clean up the current 3 lock_kernel() variants seems to be to remove the spinlock-based BKL implementations altogether, and to keep the semaphore-based one only. If we dont want to do that for whatever reason then i'm afraid we have to live with the current complexity. (but i'm open for other cleanup suggestions as well.) To explore this possibility we'll (at a minimum) have to know whether the semaphore-based BKL works fine on plain SMP too. The patch below enables this. The patch may make sense in isolation as well, as it might bring performance benefits: code that would formerly spin on the BKL spinlock will now schedule away and give up the CPU. It might introduce performance regressions as well, if any performance-critical code uses the BKL heavily and gets overscheduled due to the semaphore. I very much hope there is no such performance-critical codepath left though.

Ingo Molnar committed 21 years ago

Commit f704f561 parent cc19ca81 file · +1 −1Browse files

Unified · Split

kernel/Kconfig.preempt+1−1
@@ -13,7 +13,7 @@ config PREEMPT · 12 unmodified lines
13 13
14config PREEMPT_BKL14config PREEMPT_BKL
15 bool "Preempt The Big Kernel Lock"15 bool "Preempt The Big Kernel Lock"
16 depends on PREEMPT16 depends on SMP || PREEMPT
17 default y17 default y
18 help18 help
19 This option reduces the latency of the kernel by making the19 This option reduces the latency of the kernel by making the

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t