2005-05-19 14:59:09

by Dinakar Guniguntala

[permalink] [raw]
Subject: [PATCH 1/3] Dynamic sched domains: sched changes

Hello Andrew,

The following patches add dynamic sched domains functionality that was
extensively discussed on lkml and lse-tech.
I would like to see this added to -mm

o The main advantage with this feature is that it ensures that the scheduler
load balacing code only balances against the cpus that are in the sched
domain as defined by an exclusive cpuset and not all of the cpus in the
system. This removes any overhead due to load balancing code trying to
pull tasks outside of the cpu exclusive cpuset only to be prevented by
the tasks' cpus_allowed mask.
o cpu exclusive cpusets are useful for servers running orthogonal
workloads such as RT applications requiring low latency and HPC
applications that are throughput sensitive

o It provides a new API partition_sched_domains in sched.c
that makes dynamic sched domains possible.
o cpu_exclusive cpusets sets are now associated with a sched domain.
Which means that the users can dynamically modify the sched domains
through the cpuset file system interface
o ia64 sched domain code has been updated to support this feature as well
o Currently, this does not support hotplug. (However some of my tests
indicate hotplug+preempt is currently broken)
o I have tested it extensively on x86.
o This should have very minimal impact on performance as none of
the fast paths are affected

-Dinakar

Signed-off-by: Dinakar Guniguntala <[email protected]>
Acked-by: Paul Jackson <[email protected]>
Acked-by: Nick Piggin <[email protected]>

linux-2.6.12-rc4-mm1-1/include/linux/sched.h | 2
linux-2.6.12-rc4-mm1-1/kernel/sched.c | 130 +++++++++++++++--------
linux-2.6.12-rc4-mm1-2/Documentation/cpusets.txt | 16 ++
linux-2.6.12-rc4-mm1-2/kernel/cpuset.c | 89 +++++++++++++--
linux-2.6.12-rc4-mm1-3/arch/ia64/kernel/domain.c | 76 +++++++------
5 files changed, 225 insertions(+), 88 deletions(-)




Attachments:
(No filename) (1.87 kB)
dyn-sd-rc4mm1-v0.6-1.patch (9.99 kB)
Download all attachments

2005-05-19 15:00:25

by Dinakar Guniguntala

[permalink] [raw]
Subject: [PATCH 2/3] Dynamic sched domains: cpuset changes


Adds the core update_cpu_domains code and updated cpusets documentation

Signed-off-by: Dinakar Guniguntala <[email protected]>
Acked-by: Paul Jackson <[email protected]>
Acked-by: Nick Piggin <[email protected]>




Attachments:
(No filename) (215.00 B)
dyn-sd-rc4mm1-v0.6-2.patch (6.43 kB)
Download all attachments

2005-05-19 15:03:01

by Dinakar Guniguntala

[permalink] [raw]
Subject: [PATCH 3/3] Dynamic sched domains: ia64 changes


ia64 changes similar to kernel/sched.c. This patch compiles ok, but has
not been tested

Signed-off-by: Dinakar Guniguntala <[email protected]>
Acked-by: Paul Jackson <[email protected]>
Acked-by: Nick Piggin <[email protected]>




Attachments:
(No filename) (232.00 B)
dyn-sd-rc4mm1-v0.6-3.patch (6.66 kB)
Download all attachments

2005-05-19 20:09:44

by Matthew Dobson

[permalink] [raw]
Subject: Re: [PATCH 1/3] Dynamic sched domains: sched changes

Dinakar Guniguntala wrote:
> Hello Andrew,
>
> The following patches add dynamic sched domains functionality that was
> extensively discussed on lkml and lse-tech.
> I would like to see this added to -mm
>
> o The main advantage with this feature is that it ensures that the scheduler
> load balacing code only balances against the cpus that are in the sched
> domain as defined by an exclusive cpuset and not all of the cpus in the
> system. This removes any overhead due to load balancing code trying to
> pull tasks outside of the cpu exclusive cpuset only to be prevented by
> the tasks' cpus_allowed mask.
> o cpu exclusive cpusets are useful for servers running orthogonal
> workloads such as RT applications requiring low latency and HPC
> applications that are throughput sensitive
>
> o It provides a new API partition_sched_domains in sched.c
> that makes dynamic sched domains possible.
> o cpu_exclusive cpusets sets are now associated with a sched domain.
> Which means that the users can dynamically modify the sched domains
> through the cpuset file system interface
> o ia64 sched domain code has been updated to support this feature as well
> o Currently, this does not support hotplug. (However some of my tests
> indicate hotplug+preempt is currently broken)
> o I have tested it extensively on x86.
> o This should have very minimal impact on performance as none of
> the fast paths are affected
>
> -Dinakar
>
> Signed-off-by: Dinakar Guniguntala <[email protected]>
> Acked-by: Paul Jackson <[email protected]>
> Acked-by: Nick Piggin <[email protected]>
>
> linux-2.6.12-rc4-mm1-1/include/linux/sched.h | 2
> linux-2.6.12-rc4-mm1-1/kernel/sched.c | 130 +++++++++++++++--------
> linux-2.6.12-rc4-mm1-2/Documentation/cpusets.txt | 16 ++
> linux-2.6.12-rc4-mm1-2/kernel/cpuset.c | 89 +++++++++++++--
> linux-2.6.12-rc4-mm1-3/arch/ia64/kernel/domain.c | 76 +++++++------
> 5 files changed, 225 insertions(+), 88 deletions(-)

Looks good to me, Dinakar!

Acked-by: Matthew Dobson <[email protected]>

-Matt