Alex,Shi
70ba76a0c4
sched: Fix over-scheduling bug
...
commit 3c93717cfa upstream.
Commit e70971591 ("sched: Optimize unused cgroup configuration") introduced
an imbalanced scheduling bug.
If we do not use CGROUP, function update_h_load won't update h_load. When the
system has a large number of tasks far more than logical CPU number, the
incorrect cfs_rq[cpu]->h_load value will cause load_balance() to pull too
many tasks to the local CPU from the busiest CPU. So the busiest CPU keeps
going in a round robin. That will hurt performance.
The issue was found originally by a scientific calculation workload that
developed by Yanmin. With that commit, the workload performance drops
about 40%.
CPU before after
00 : 2 : 7
01 : 1 : 7
02 : 11 : 6
03 : 12 : 7
04 : 6 : 6
05 : 11 : 7
06 : 10 : 6
07 : 12 : 7
08 : 11 : 6
09 : 12 : 6
10 : 1 : 6
11 : 1 : 6
12 : 6 : 6
13 : 2 : 6
14 : 2 : 6
15 : 1 : 6
Reviewed-by: Yanmin zhang <yanmin.zhang@intel.com >
Signed-off-by: Alex Shi <alex.shi@intel.com >
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl >
LKML-Reference: <1276754893.9452.5442.camel@debian>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de >
2010-08-02 10:20:52 -07:00
..
2009-09-21 14:29:21 +02:00
2010-04-26 07:41:18 -07:00
2010-04-26 07:41:17 -07:00
2010-04-01 15:58:14 -07:00
2010-05-12 14:57:14 -07:00
2008-02-09 23:27:01 -08:00
2009-12-18 14:03:52 -08:00
2009-06-08 12:31:53 -07:00
2010-01-18 10:19:50 -08:00
2009-09-24 03:50:25 -04:00
2009-09-24 03:50:26 -04:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:00:52 -04:00
2009-09-24 03:50:26 -04:00
2008-06-27 18:09:16 +02:00
2008-04-29 08:06:29 -07:00
2009-01-14 14:15:19 +01:00
2010-04-26 07:41:17 -07:00
2010-01-18 10:19:32 -08:00
2010-07-05 11:10:27 -07:00
2008-10-20 08:52:34 -07:00
2010-01-28 15:01:14 -08:00
2010-04-01 15:58:46 -07:00
2008-11-14 10:39:23 +11:00
2010-05-12 14:57:10 -07:00
2009-09-18 09:48:52 -07:00
2008-10-16 11:21:30 -07:00
2009-03-31 23:00:27 -04:00
2009-10-29 07:39:25 -07:00
2009-04-05 11:04:19 -07:00
2010-05-26 14:29:19 -07:00
2009-07-18 14:19:53 +02:00
2009-08-10 15:41:12 +02:00
2010-02-23 07:37:43 -08:00
2009-06-16 19:47:48 -07:00
2010-04-01 15:58:14 -07:00
2009-09-24 07:21:04 -07:00
2009-08-29 14:10:07 +02:00
2009-09-23 07:39:30 -07:00
2008-10-20 08:52:34 -07:00
2008-07-28 14:37:38 +02:00
2008-12-25 09:31:28 +01:00
2009-07-29 19:10:34 -07:00
2009-09-19 13:13:17 -07:00
2009-05-15 07:56:24 -05:00
2009-09-23 18:12:10 -07:00
2009-10-01 16:11:11 -07:00
2009-01-06 10:44:31 -08:00
2010-04-01 15:58:46 -07:00
2009-02-11 10:18:04 +01:00
2009-07-24 10:53:29 +02:00
2009-09-23 07:39:29 -07:00
2009-02-14 23:27:59 +01:00
2010-06-01 09:45:46 -07:00
2009-12-01 08:20:31 -08:00
2010-08-02 10:20:47 -07:00
2009-10-11 11:20:58 -07:00
2009-01-14 18:09:02 +01:00
2010-07-05 11:10:31 -07:00
2009-01-14 18:09:02 +01:00
2008-11-26 08:22:50 +01:00
2009-09-24 07:20:58 -07:00
2009-06-18 13:03:56 -07:00
2009-10-08 12:16:35 -07:00
2009-10-29 08:56:20 +10:30
2010-07-05 11:10:30 -07:00
2009-09-24 07:21:04 -07:00
2009-09-22 07:17:38 -07:00
2008-09-02 19:21:40 -07:00
2009-08-29 14:10:07 +02:00
2010-07-05 11:10:30 -07:00
2009-09-23 07:39:28 -07:00
2010-05-26 14:29:18 -07:00
2009-09-24 07:20:59 -07:00
2009-10-07 08:11:20 +02:00
2009-09-23 19:46:30 +02:00
2009-12-18 14:03:04 -08:00
2009-10-07 08:11:20 +02:00
2009-12-18 14:03:01 -08:00
2009-12-18 14:03:04 -08:00
2009-09-27 11:39:25 -07:00
2009-10-01 16:11:13 -07:00
2009-09-23 07:39:41 -07:00
2009-04-06 11:14:02 +02:00
2008-02-08 09:22:41 -08:00
2006-07-03 15:27:01 -07:00
2008-07-21 21:55:02 -07:00
2009-08-06 05:50:21 +02:00
2006-07-03 15:27:01 -07:00
2007-12-18 15:21:13 +01:00
2010-01-22 15:18:30 -08:00
2009-08-02 14:26:09 +02:00
2009-03-30 22:05:17 +10:30
2009-12-18 14:03:13 -08:00
2010-01-28 15:01:11 -08:00
2009-09-17 10:17:25 +02:00
2009-09-21 09:53:55 +02:00
2009-09-21 09:53:55 +02:00
2009-03-24 23:16:51 +01:00
2010-08-02 10:20:52 -07:00
2009-03-02 15:41:30 -08:00
2008-08-05 14:33:47 -07:00
2010-07-05 11:10:56 -07:00
2009-12-01 08:20:31 -08:00
2009-12-01 08:20:31 -08:00
2009-12-01 08:20:31 -08:00
2009-09-24 09:34:47 +09:30
2009-09-17 15:53:44 -04:00
2010-04-01 15:58:47 -07:00
2009-08-31 18:08:50 +02:00
2008-02-06 10:41:02 -08:00
2008-12-25 11:44:43 +01:00
2009-03-30 22:05:17 +10:30
2009-09-24 15:13:11 -07:00
2009-10-29 08:20:00 -07:00
2010-02-09 04:51:02 -08:00
2010-01-18 10:19:49 -08:00
2009-07-12 14:03:27 -07:00
2009-01-06 15:59:20 -08:00
2009-09-15 10:17:30 +02:00
2008-05-02 16:18:42 -07:00
2009-09-23 09:46:15 -07:00
2009-09-21 15:14:55 +02:00
2009-03-09 08:13:35 -07:00
2009-09-23 18:13:10 -07:00
2009-01-12 16:04:37 +01:00
2009-02-27 16:26:21 -08:00
2009-11-02 16:02:39 +01:00
2009-09-24 07:21:04 -07:00
2009-06-18 13:03:55 -07:00
2009-08-10 14:43:09 +02:00
2009-11-17 17:40:33 -08:00