From: Shailabh Nagar <nagar@watson.ibm.com>
To: Mike Fedyk <mfedyk@matchmail.com>
Cc: Peter Williams <peterw@aurema.com>,
Timothy Miller <miller@techsource.com>,
linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH] O(1) Entitlement Based Scheduler
Date: Thu, 26 Feb 2004 14:23:48 -0500 [thread overview]
Message-ID: <403E47C4.4080104@watson.ibm.com> (raw)
In-Reply-To: <403D73B4.4060600@matchmail.com>
Mike Fedyk wrote:
> Peter Williams wrote:
>
>> Mike Fedyk wrote:
>>
>>> Peter Williams wrote:
>>>
>>>> 2. have a user space daemon poll running tasks periodically and
>>>> renice them if they are running specified binaries
>>>>
>>>> Both of these solutions have their advantages and disadvantages, are
>>>> (obviously) complicated than I've made them sound and would require
>>>> a great deal of care to be taken during their implementation.
>>>> However, I think that they are both doable. My personal preference
>>>> would be for the in kernel solution on the grounds of efficiency.
The CKRM project (http://ckrm.sf.net) took the kernel approach too, for the
same reason you mentioned - efficiency.
Having a userspace daemon poll and readjust priorities/entitlements is
possible but it will not be able to react as quickly when entitlements
change and will incur overheads for unnecessary polls when they don't.
In CKRM, the corresponding problem being solved is what should be done when
a task moves from one "class" to another with a potentially different
entitlement (we call them guarantees and limits). Since class changes can
happen relatively often (compared to changes to entitlements for ebs), it
was even more imperative to be efficient.
>>>
>>>
>>>
>>>
>>> Better would be to have the kernel tell the daemon whenever a process
>>> in exec-ed, and you have simplicity in the kernel, and policy in user
>>> space.
As it turns out, one can still use a fairly simple in-kernel module which
provides a *mechanism* for effectively changing a process' entitlement
while retaining the policy component in userland.
CKRM has a rule-based classification engine that allows simple rules to be
defined by the user/sysadmin and evaluated by the kernel at various kernel
events. Using this, its not only possible to catch exec's but
setuids/setgids etc. (which are also legitimate points at which a sysadmin
may want a task's entitlement changed). The RBCE we wrote was fairly
efficient though we didn't do specific measurements of the overhead as the
interfaces started changing.
>>
>>
>> Yes. That would be a good solution. Does a mechanism that allows the
>> kernel to notify specific programs about specific events like this exist?
>
I guess there are two subparts to this question:
a) Are there efficient kernel-user communication mechanisms which could be
used to do such event notifications ? Yes, netlink is one, relayfs
(http://www.opersys.com/relayfs) is another.
b) Are the hooks in place at the right points ? Except for the LSM
security* calls, no.
Which leaves you with two options - put your own hooks into do_execve,
either custom or using some general hook interface like KHI
(http://www-124.ibm.com/linux/projects/kernelhooks/)
OR
find a way to stack your function with LSM's calls.
CKRM is looking at both these options since we need hooks in several places
(fork, exec, setuid, setgid....)
> I'm sure DaveM would suggest Netlink, but there are probably several
> implementations for Linux.
>
> I'll let other more knowledgeable people fill in the list.
Disclaimer : no claim to be knowledgeable....:-)
Just sharing some of our experiences going over similar problems in a
slightly broader context i.e. class-based resource management.
-- Shailabh
next prev parent reply other threads:[~2004-02-26 19:24 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-25 14:35 [RFC][PATCH] O(1) Entitlement Based Scheduler John Lee
2004-02-25 17:09 ` Timothy Miller
2004-02-25 22:12 ` John Lee
2004-02-26 0:31 ` Timothy Miller
2004-02-26 2:04 ` John Lee
2004-02-26 2:18 ` Peter Williams
2004-02-26 2:42 ` Mike Fedyk
2004-02-26 4:10 ` Peter Williams
2004-02-26 4:19 ` Mike Fedyk
2004-02-26 19:23 ` Shailabh Nagar [this message]
2004-02-26 19:46 ` Mike Fedyk
2004-02-26 20:42 ` Shailabh Nagar
2004-02-26 16:10 ` Timothy Miller
2004-02-26 19:47 ` Mike Fedyk
2004-02-26 22:51 ` Peter Williams
2004-02-27 10:06 ` Helge Hafting
2004-02-27 11:04 ` Peter Williams
2004-02-26 16:08 ` Timothy Miller
2004-02-26 16:51 ` Rik van Riel
2004-02-26 20:15 ` Peter Williams
2004-02-27 14:46 ` Timothy Miller
2004-02-28 5:00 ` Peter Williams
2004-03-04 21:18 ` Robert White
2004-03-04 23:15 ` Peter Williams
2004-02-26 2:48 ` Nuno Silva
2004-02-26 4:25 ` Peter Williams
2004-02-26 15:57 ` Rik van Riel
2004-02-26 19:28 ` Shailabh Nagar
2004-02-26 16:12 ` Timothy Miller
2004-02-25 22:51 ` Pavel Machek
2004-02-26 3:14 ` John Lee
2004-02-25 23:45 ` Rik van Riel
2004-02-26 7:18 ` John Lee
[not found] <fa.f12rt3d.c0s9rt@ifi.uio.no>
[not found] ` <fa.ishajoq.q5g90m@ifi.uio.no>
2004-02-25 23:33 ` Junio C Hamano
2004-02-26 8:15 ` Catalin BOIE
-- strict thread matches above, loose matches on Subject: below --
2004-02-26 3:30 Albert Cahalan
2004-02-26 6:19 ` Peter Williams
2004-02-26 17:57 ` Albert Cahalan
2004-02-26 23:24 ` Peter Williams
2004-03-01 3:47 ` Peter Williams
[not found] <1tfy0-7ly-29@gated-at.bofh.it>
[not found] ` <1thzJ-A5-13@gated-at.bofh.it>
[not found] ` <1tjrN-2m5-1@gated-at.bofh.it>
[not found] ` <1tjLa-2Ab-9@gated-at.bofh.it>
[not found] ` <1tlaf-3OY-11@gated-at.bofh.it>
[not found] ` <1tljX-3Wf-5@gated-at.bofh.it>
[not found] ` <1tznd-CP-35@gated-at.bofh.it>
[not found] ` <1tzQe-10s-25@gated-at.bofh.it>
2004-02-26 20:14 ` Bill Davidsen
[not found] <1t8wp-qF-11@gated-at.bofh.it>
[not found] ` <1th6J-az-13@gated-at.bofh.it>
[not found] ` <403E2929.2080705@tmr.com>
2004-02-27 3:44 ` Rik van Riel
2004-02-28 21:27 ` Bill Davidsen
2004-02-28 23:55 ` Peter Williams
2004-03-04 21:08 ` Timothy Miller
[not found] <fa.fi4j08o.17nchps@ifi.uio.no>
[not found] ` <fa.ctat17m.8mqa3c@ifi.uio.no>
2004-02-29 11:58 ` Joachim B Haga
2004-02-29 20:39 ` Paul Jackson
2004-02-29 22:56 ` Peter Williams
[not found] <894006121@toto.iv>
2004-03-01 0:00 ` Peter Chubb
2004-03-02 1:25 ` Peter Williams
[not found] <fa.jgj0bdi.b3u6qk@ifi.uio.no>
2004-03-01 1:54 ` Andy Lutomirski
2004-03-01 2:54 ` Peter Williams
2004-03-01 3:46 ` Andy Lutomirski
2004-03-01 4:18 ` Peter Williams
2004-03-02 23:36 ` Peter Williams
[not found] <fa.ftul5bl.nlk3pr@ifi.uio.no>
[not found] ` <fa.cvc8vnj.ahebjd@ifi.uio.no>
2004-03-01 9:18 ` Joachim B Haga
2004-03-01 10:18 ` Paul Wagland
2004-03-01 19:11 ` Mike Fedyk
[not found] <fa.fi4j08o.17nchps@ifi.uio.no.suse.lists.linux.kernel>
[not found] ` <fa.ctat17m.8mqa3c@ifi.uio.no.suse.lists.linux.kernel>
[not found] ` <yydjishqw10p.fsf@galizur.uio.no.suse.lists.linux.kernel>
[not found] ` <40426E1C.8010806@aurema.com.suse.lists.linux.kernel>
2004-03-03 2:48 ` Andi Kleen
2004-03-03 3:45 ` Peter Williams
2004-03-03 10:13 ` Andi Kleen
2004-03-03 23:46 ` Peter Williams
2004-03-03 15:57 ` Andi Kleen
2004-03-04 0:41 ` Peter Williams
2004-03-05 3:55 ` Andi Kleen
[not found] <1vuMd-5jx-5@gated-at.bofh.it>
[not found] ` <1vuMd-5jx-7@gated-at.bofh.it>
[not found] ` <1vuMd-5jx-9@gated-at.bofh.it>
[not found] ` <1vuMd-5jx-11@gated-at.bofh.it>
[not found] ` <1vuMd-5jx-3@gated-at.bofh.it>
[not found] ` <1vvyx-6jy-13@gated-at.bofh.it>
[not found] ` <1vBE2-48V-21@gated-at.bofh.it>
2004-03-03 21:38 ` Bill Davidsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=403E47C4.4080104@watson.ibm.com \
--to=nagar@watson.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mfedyk@matchmail.com \
--cc=miller@techsource.com \
--cc=peterw@aurema.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox