* [RFC] dynsched - different cpu schedulers per cpuset @ 2006-11-26 16:06 Felix Obenhuber 2006-11-30 4:13 ` Paul Jackson 0 siblings, 1 reply; 5+ messages in thread From: Felix Obenhuber @ 2006-11-26 16:06 UTC (permalink / raw) To: linux-kernel; +Cc: dynsched-devel Hej, we're a student group witch is working on a research project concerning the ability to switch the cpu scheduler of the linux kernel at runtime. We use Peter Williams Plugsched patch [1] to get an interface for the different scheduler implementations. Some month ago we started to modify the code to allow different scheduler running on each cpu on an SMP system. The cpu<->scheduler mapping is controlled via cpusets. Thus you can switch the scheduler for a cpuset containing multiple cpus and keep the rest untouched. The project is hosted on Sourceforge [2] and the current patch applies against 2.6.18 patched with plugsched. Threre are still lots of issues - especially the migration of tasks between cpus with different schedulers is quite buggy. Switching the scheduler on non smp configured systems works fine (tested x86) Refer the project instruction site [3] for further information and usage / patch instructions. We'd be quite happy, if someone could take a look at what we've done to gain some feedback/suggestions about the used techniques and implementation. Some changes are already queued. The project documentation (description/benchmarks/usage/bugs) is in progress and will be completed in about 4 weeks. Thanks a lot. cheers, Felix [1] http://sourceforge.net/projects/cpuse/ [2] http://sourceforge.net/projects/dynsched/ [3] http://dynsched.sourceforge.net -- Felix Obenhuber felixatobenhuber.de www.obenhuber.de/felix GPG: F696D489 Sat Nov 18 15:56:31 CET 2006 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC] dynsched - different cpu schedulers per cpuset 2006-11-26 16:06 [RFC] dynsched - different cpu schedulers per cpuset Felix Obenhuber @ 2006-11-30 4:13 ` Paul Jackson 2006-11-30 4:48 ` Paul Jackson 2006-11-30 8:08 ` Paul Menage 0 siblings, 2 replies; 5+ messages in thread From: Paul Jackson @ 2006-11-30 4:13 UTC (permalink / raw) To: Felix Obenhuber; +Cc: linux-kernel, dynsched-devel, menage Felix wrote: > The cpu<->scheduler mapping is controlled via cpusets. Thus you > can switch the scheduler for a cpuset containing multiple cpus and > keep the rest untouched. I don't have comments on the main focus of this work - schedulers are not my expertise. I just noticed this lkml post because of my interest in cpusets. You should take a look at the work of Paul Menage (added to the cc list), who is splitting the cpuset code into: 1) a generic "container" mechanism, 2) separate CPU and Memory "controllers", and 3) various other additional "controllers". See Paul Menage's most recent patch proposal at: http://lkml.org/lkml/2006/11/17/217 Subject: [PATCH 0/6] Multi-hierarchy Process Containers Date: Fri, 17 Nov 2006 11:11:59 -0800 The container mechanism uses a virtual file system derived from the cpuset code to provide a file system style (hierarchical names and classic Unix style file and directory permissions) naming of a partitioning of the tasks on a system. By partitioning here, I mean a division of the tasks into several subsets, aka partition elements, which are non-overlapping and covering. That is, each task is in one and only one of the partition elements, these partitions elements are named by the directories in the container file system, and the regular files in the container file system provide per-element attributes. Then kernel facilities that can be considered as providing attributes for and control of subsets of tasks is represented as a controller, and attached to such a container. Your dynamic scheduler mechanisms appear (from what I can tell after a brief glance) to be a candidate for being such a controller. The upshot of this is that, if your work should proceed and eventually be considered for inclusion in the kernel (I have --no-- idea if that would be a good idea, either for the purposes of your student group, or for the kernel itself) then it would likely (if Menage's work is accepted) need to be recast as a "controller" in Menage's terms, not as an extension to cpusets. If Menage succeeds, that should not actually be that big of a change, either semantically, or in coding details. Good luck. -- I won't rest till it's the best ... Programmer, Linux Scalability Paul Jackson <pj@sgi.com> 1.925.600.0401 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC] dynsched - different cpu schedulers per cpuset 2006-11-30 4:13 ` Paul Jackson @ 2006-11-30 4:48 ` Paul Jackson 2006-11-30 8:08 ` Paul Menage 1 sibling, 0 replies; 5+ messages in thread From: Paul Jackson @ 2006-11-30 4:48 UTC (permalink / raw) To: Paul Jackson; +Cc: felix, linux-kernel, dynsched-devel, menage pj wrote: > See Paul Menage's most recent patch proposal at: > http://lkml.org/lkml/2006/11/17/217 > Subject: [PATCH 0/6] Multi-hierarchy Process Containers > Date: Fri, 17 Nov 2006 11:11:59 -0800 I'm behind the times. Paul Menage's most recent proposal is at: http://lkml.org/lkml/2006/11/23/95 Subject: [PATCH 0/7] Generic Process Containers (+ ResGroups/BeanCounters) Date: Thu, 23 Nov 2006 04:08:48 -0800 -- I won't rest till it's the best ... Programmer, Linux Scalability Paul Jackson <pj@sgi.com> 1.925.600.0401 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC] dynsched - different cpu schedulers per cpuset 2006-11-30 4:13 ` Paul Jackson 2006-11-30 4:48 ` Paul Jackson @ 2006-11-30 8:08 ` Paul Menage 2006-11-30 19:40 ` Felix Obenhuber 1 sibling, 1 reply; 5+ messages in thread From: Paul Menage @ 2006-11-30 8:08 UTC (permalink / raw) To: Paul Jackson; +Cc: Felix Obenhuber, linux-kernel, dynsched-devel On 11/29/06, Paul Jackson <pj@sgi.com> wrote: > > Your dynamic scheduler mechanisms appear (from what I can tell after a > brief glance) to be a candidate for being such a controller. Possibly, if it was some kind of multi-level scheduler - i.e. a top-level scheduler picks which container to run, and then a configurable per-container scheduler picks a task from that container. But (having glanced at the code even less than you) it sounded like it was intended to be a single level scheduler, configured on a per-cpu basis. In that case tying it to (exclusive) cpusets sounds like it might be more reasonable. Paul. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC] dynsched - different cpu schedulers per cpuset 2006-11-30 8:08 ` Paul Menage @ 2006-11-30 19:40 ` Felix Obenhuber 0 siblings, 0 replies; 5+ messages in thread From: Felix Obenhuber @ 2006-11-30 19:40 UTC (permalink / raw) To: Paul Menage; +Cc: Paul Jackson, linux-kernel, dynsched-devel > Possibly, if it was some kind of multi-level scheduler - i.e. a > top-level scheduler picks which container to run, and then a > configurable per-container scheduler picks a task from that container. What do you think about Plugsched? Peter Williams introduced a simple scheduler interface for scheduler testing purposes. It should be possible to integrate into your CPU Controller. The CPU Controller seems to be quite suited for that purpose, as far as I can appraise after reading some of your documentation. Unfortunately, I didn't know about CKRM some months ago, when we decided to use cpusets. As I wrote, Dynsched is a student project at sunset and it's future is quite ambiguous. Maybe we'll find some time to take a look at. > But (having glanced at the code even less than you) it sounded like it > was intended to be a single level scheduler, configured on a per-cpu > basis. In that case tying it to (exclusive) cpusets sounds like it > might be more reasonable. You're right. We tie up the scheduler to cpus with some per_cpu functionality, and chose cpusets for management, cause we didn't want add another interface (e.g sysfs files for each cpu). Cpusets is quite adequate for our purpose, but there are lots of issues we're currently dealing with. Think about (not exclusive) subsets with different schedulers... Felix ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-11-30 19:40 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-11-26 16:06 [RFC] dynsched - different cpu schedulers per cpuset Felix Obenhuber 2006-11-30 4:13 ` Paul Jackson 2006-11-30 4:48 ` Paul Jackson 2006-11-30 8:08 ` Paul Menage 2006-11-30 19:40 ` Felix Obenhuber
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox