On Mon, 12 May 2008, Bart Van Assche wrote:No released kernels are affected. It's purely a matter that has happened after 2.6.25. The semaphore simplifcation in -rc1 caused a huge performance regression on some benchmarks, and the fix to that in turn caused a semaphore correctness issue, so I just rolled back to the original BKL code that doesn't have any of those interactions. In a historical context, the issues involved would only have happened with CONFIG_PREEMPT_BKL. That config option was made the only one in January, and as a result of these issues, we effectively switched it off. So you can *think* of the effect of the changes as having gone from CONFIG_PREEMPT_BKL=y to CONFIG_PREEMPT_BKL=n, even though technically we had removed the actual config option to let people choose (so the config option has basically become a static code change). We may end up having to re-instate the config option due to this. Personally, I hope not. It would be nicer if we could just avoid PREEMPT_BKL entirely. (To make things somewhat more confusing, some non-PREEMPT_BKL code has then bitrotted since, so if can actually see latency issues, you might want to try the patch here at the end of this email to see if it fixes the worst of them. "cond_resched()" has regressed since the PREEMPT_BKL config option went away). Linus --- include/linux/sched.h | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 5a63f2d..75c284f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2038,17 +2038,10 @@ static inline int need_resched(void) * cond_resched_softirq() will enable bhs before scheduling. */ extern int _cond_resched(void); -#ifdef CONFIG_PREEMPT -static inline int cond_resched(void) -{ - return 0; -} -#else static inline int cond_resched(void) { return _cond_resched(); } -#endif extern int cond_resched_lock(spinlock_t * lock); extern int cond_resched_softirq(void); static inline int cond_resched_bkl(void) --
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Linux 2.6.27 |
| Eric Paris | [RFC 0/5] [TALPA] Intro to a linux interface for on access scanning |
git: | |
| Denis Bueno | Recovering from repository corruption |
| Linus Torvalds | I'm a total push-over.. |
| J. Bruce Fields | "failed to read delta base object at..." |
| Robin Rosenberg | Re: [wishlist] graphical diff |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Richard Stallman | Real men don't attack straw men |
| Marcos Laufer | dmesg IBM x3650 OpenBSD 4.3 |
| Paolo Supino | order |
| Simon Horman | Possible regression in HTB |
| Corey Hickey | SFQ: backport some features from ESFQ (try 4) |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Ingo Molnar | Re: [crash] kernel BUG at net/core/dev.c:1328! |
| usb mic not detected | 24 minutes ago | Applications and Utilities |
| Problem in Inserting a module | 1 hour ago | Linux kernel |
| Treason Uncloaked | 6 hours ago | Linux kernel |
| Shared swap partition | 17 hours ago | Linux general |
| high memory | 2 days ago | Linux kernel |
| semaphore access speed | 2 days ago | Applications and Utilities |
| the kernel how to power off the machine | 2 days ago | Linux kernel |
| Easter Eggs in windows XP | 2 days ago | Windows |
| Root password | 2 days ago | Linux general |
| Where/when DNOTIFY is used? | 2 days ago | Linux kernel |
