From: KaiGai Kohei <kaigai@ak.jp.nec.com>
To: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Cc: Andrew Morton <akpm@osdl.org>,
davem@redhat.com, jlan@sgi.com, lse-tech@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [Lse-tech] Re: A common layer for Accounting packages
Date: Mon, 28 Feb 2005 00:20:40 +0900 [thread overview]
Message-ID: <4221E548.4000008@ak.jp.nec.com> (raw)
In-Reply-To: <20050227094949.GA22439@logos.cnet>
Hi,
>>Kaigai Kohei <kaigai@ak.jp.nec.com> wrote:
>>
>>>In my understanding, what Andrew Morton said is "If target functionality can
>>> implement in user space only, then we should not modify the kernel-tree".
>>
>>fork, exec and exit upcalls sound pretty good to me. As long as
>>
>>a) they use the same common machinery and
>>
>>b) they are next-to-zero cost if something is listening on the netlink
>> socket but no accounting daemon is running.
>
>
> b) would involved being able to avoid sending netlink messages in case there are
> no listeners. AFAIK that isnt possible currently, netlink sends
> packets unconditionally.
>
> Am I wrong?
In current implementaion, you might be right.
But we should make an effort to achieve the requirement-(b) from now.
And, why can't netlink packets send always?
If there are fork/exec/exit hooks, and they call CSA or other process-grouping modules,
then those modules will decide whether packets for interaction with the daemon should be
sent or not.
In most considerable case, CSA's kernel-loadable-module using such hooks will not be loaded
when no accounting daemon is running. Adversely, this module must be loaded when accounting
daemon needs CSA's netlink packets.
Thus, it is only necessary to refer flag valiable and to execute conditional-jump
when no-accounting daemon is running.
In my estimation, we must pay additional cost for an increment-operation, an decrement-op,
an comparison-op and an conditional jump-op. It's enough lightweight, I think.
For example:
If CSA's module isn't loaded, 'privates_for_grouping' will be empty.
inline int on_fork_hook(task_struct *parent, task_struct *newtask){
rcu_read_lock();
if( !list_empty(&parent->privates_for_grouping) ){
..<Calling to any process grouping module>..;
}
rcu_read_unlock();
}
Thanks,
--
Linux Promotion Center, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>
next prev parent reply other threads:[~2005-02-27 15:20 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-19 0:51 A common layer for Accounting packages Jay Lan
2005-02-19 1:16 ` Andrew Morton
2005-02-21 6:51 ` Guillaume Thouvenin
2005-02-22 20:11 ` [Lse-tech] " Jay Lan
2005-02-23 7:30 ` Guillaume Thouvenin
2005-02-21 7:54 ` Kaigai Kohei
2005-02-22 20:26 ` Jay Lan
2005-02-23 7:07 ` Kaigai Kohei
2005-02-23 7:20 ` Andrew Morton
2005-02-23 8:33 ` Guillaume Thouvenin
2005-02-23 8:51 ` Andrew Morton
2005-02-23 9:30 ` Guillaume Thouvenin
2005-02-23 9:36 ` Andrew Morton
2005-02-23 19:11 ` Jay Lan
2005-02-24 7:42 ` Guillaume Thouvenin
2005-02-23 9:50 ` Tim Schmielau
2005-02-24 22:27 ` Jay Lan
2005-02-23 11:29 ` Kaigai Kohei
2005-02-23 20:48 ` Jay Lan
2005-02-25 5:07 ` Kaigai Kohei
2005-02-25 5:28 ` Andrew Morton
2005-02-25 17:32 ` Jay Lan
2005-02-25 17:45 ` Chris Wright
2005-02-25 18:11 ` Jay Lan
2005-02-25 21:30 ` Andrew Morton
2005-02-25 22:18 ` Jay Lan
2005-02-27 9:49 ` Marcelo Tosatti
2005-02-27 15:20 ` KaiGai Kohei [this message]
2005-02-27 14:03 ` Marcelo Tosatti
2005-02-27 19:27 ` David S. Miller
2005-02-28 1:59 ` Kaigai Kohei
2005-02-28 2:32 ` Thomas Graf
2005-02-28 5:17 ` Evgeniy Polyakov
2005-02-28 7:20 ` Guillaume Thouvenin
2005-02-28 7:39 ` Andrew Morton
2005-02-28 8:04 ` Evgeniy Polyakov
2005-02-28 12:10 ` jamal
2005-02-28 9:29 ` Marcelo Tosatti
2005-02-28 13:20 ` Thomas Graf
2005-02-28 13:40 ` jamal
2005-02-28 13:53 ` Thomas Graf
2005-02-28 9:52 ` Marcelo Tosatti
2005-02-28 14:10 ` jamal
2005-02-28 14:25 ` Thomas Graf
2005-02-28 15:31 ` jamal
2005-02-28 16:17 ` Evgeniy Polyakov
2005-03-01 8:21 ` Guillaume Thouvenin
2005-03-01 13:38 ` Kaigai Kohei
2005-03-01 13:53 ` Guillaume Thouvenin
2005-03-01 14:17 ` Evgeniy Polyakov
2005-03-02 4:50 ` Paul Jackson
2005-03-02 8:58 ` Guillaume Thouvenin
2005-03-02 9:06 ` Andrew Morton
2005-03-02 9:25 ` Guillaume Thouvenin
2005-03-02 15:30 ` Paul Jackson
2005-03-01 20:40 ` Paul Jackson
2005-02-24 1:25 ` Paul Jackson
2005-02-24 1:56 ` Jay Lan
2005-02-24 2:07 ` Paul Jackson
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=4221E548.4000008@ak.jp.nec.com \
--to=kaigai@ak.jp.nec.com \
--cc=akpm@osdl.org \
--cc=davem@redhat.com \
--cc=jlan@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
--cc=marcelo.tosatti@cyclades.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