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, netdev@oss.sgi.com
Subject: Re: Re: A common layer for Accounting packages
Date: Mon, 28 Feb 2005 10:59:06 +0900 [thread overview]
Message-ID: <42227AEA.6050002@ak.jp.nec.com> (raw)
In-Reply-To: <20050227140355.GA23055@logos.cnet>
Hello,
Marcelo Tosatti wrote:
> Yep, the netlink people should be able to help - they known what would be
> required for not sending messages in case there is no listener registered.
>
> Maybe its already possible? I have never used netlink myself.
If we notify the fork/exec/exit-events to user-space directly as you said,
I don't think some hackings on netlink is necessary.
For example, such packets is sent only when /proc/sys/.../process_grouping is set,
and user-side daemon set this value, and unset when daemon will exit.
It's not necessary to take too seriously.
>>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.
>
>
> The netlink data will be sent to userspace at fork/exec/exit hooks - one wants
> to avoid that if there are no listeners, so setups which dont want to run the
> accounting daemon dont pay the cost of building and sending the information
> through netlink.
>
> Thats what Andrew asked for if I understand correctly.
Does it mean "netlink packets shouled be sent to userspace unconditionally." ?
I have advocated steadfastly that fork/exec/exit hooks is necessary to support
process-grouping and to account per process-grouping.
It intend to be decided whether packets should be sent or not by hooked functions,
in my understanding.
Is it also one of the implementations whether using netlink-socket 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.
>
>
> That would be one hack, although it is uglier than the pure netlink
> selection.
No, I can't agree this opinion.
It means netlink-packets will be sent unconditionally when fork/exec/exit occur.
Nobady can decide which packet is sent user-space, I think.
In addition, the definition of process grouping is lightweight in many cases.
For example, CpuSet can define own process-group by one increment-operation.
I think it's not impossible to implement it in userspace, but it's not reasonable.
An implementation as a kernel loadable module is reasonable and enough tiny.
>>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();
>>}
>
>
> Andrew has been talking about sending data over netlink to implement the
> accounting at userspace, so this piece of code is out of the game, no?
Indeed, I'm not opposed to implement the accounting in userspace and
using netlink-socket for kernel-daemon communication. But definition
of process-grouping based on any grouping policy should be done
in kernel space at reasonability viewpoint.
Thanks.
--
Linux Promotion Center, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
next parent reply other threads:[~2005-02-28 1:59 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <42168D9E.1010900@sgi.com>
[not found] ` <20050218171610.757ba9c9.akpm@osdl.org>
[not found] ` <421993A2.4020308@ak.jp.nec.com>
[not found] ` <421B955A.9060000@sgi.com>
[not found] ` <421C2B99.2040600@ak.jp.nec.com>
[not found] ` <421CEC38.7010008@sgi.com>
[not found] ` <421EB299.4010906@ak.jp.nec.com>
[not found] ` <20050224212839.7953167c.akpm@osdl.org>
[not found] ` <20050227094949.GA22439@logos.cnet>
[not found] ` <4221E548.4000008@ak.jp.nec.com>
[not found] ` <20050227140355.GA23055@logos.cnet>
2005-02-28 1:59 ` Kaigai Kohei [this message]
2005-02-28 2:32 ` [Lse-tech] Re: A common layer for Accounting packages Thomas Graf
2005-02-28 5:17 ` Evgeniy Polyakov
2005-02-28 7:20 ` [Lse-tech] " 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 ` [Lse-tech] " 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 ` [Lse-tech] " 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
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=42227AEA.6050002@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 \
--cc=netdev@oss.sgi.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;
as well as URLs for NNTP newsgroup(s).