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: [Lse-tech] 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>
WARNING: multiple messages have this Message-ID (diff)
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 prev parent reply other threads:[~2005-02-28 1:58 UTC|newest]
Thread overview: 63+ 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
2005-02-27 14:03 ` Marcelo Tosatti
2005-02-27 19:27 ` David S. Miller
2005-02-28 1:59 ` Kaigai Kohei [this message]
2005-02-28 1:59 ` Kaigai Kohei
2005-02-28 2:32 ` [Lse-tech] " Thomas Graf
2005-02-28 5:17 ` Evgeniy Polyakov
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 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-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
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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.