From: Ingo Molnar <mingo@elte.hu> Date: Tue, 22 Apr 2008 11:14:56 +0200I looked more closely at this. There is no way the patch in question can work properly. The algorithm is, essentialy "if time - prev_cpu_time is large enough, call __sync_cpu_clock()" which if fine, except that nothing ever sets prev_cpu_time. The code is fatally flawed, once __sync_cpu_clock() calls start happening, they will happen on every cpu_clock() call. So like my bisect showed from the get-go, these cpu_clock() changes have major problems, so it was quite a mind boggling stretch to stick a touch_softlockup_watchdog() call somewhere to try and fix this when the guilty change in question didn't touch that area at all. :-( Furthermore, this is an extremely expensive way to ensure monotonic per-rq timestamps. A global spinlock taken every 100000 ns on every cpu?!?! :-/ At least move any implication of "high speed" from the comments above cpu_clock() if we're going to need something like this. I have 128 cpus, that's 128 grabs of that spinlock every quantum. My next system I'm getting will have 256 cpus. The expense of your solution increases linearly with the number of cpus, which doesn't scale. Anyways, I'll work on the group sched lockup bug next. As if I have nothing better to do during the merge window than fix sched tree regressions :-( --
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Mike Travis | [RFC 00/15] x86_64: Optimize percpu accesses |
| Dave Jones | agp / cpufreq. |
| Willy Tarreau | Re: [PATCH] tcp: splice as many packets as possible at once |
| Gerrit Renker | [PATCH 14/37] dccp: Tidy up setsockopt calls |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Natalie Protasevich | [BUG] New Kernel Bugs |
git: | |
