Re: [Lse-tech] Re: A common layer for Accounting packages

Jay Lan
2005-02-25T22:18:47Z

Andrew Morton wrote:
> Jay Lan <jlan@sgi.com> wrote:
>
>>Andrew Morton wrote:
>> > 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.
>> >
>> > Question is: is this sufficient for CSA?
>>
>> Yes, fork, exec, and exit upcalls are sufficient for CSA.
>>
>> The framework i proposed earlier should satisfy your requirement a
>> and b, and provides upcalls needed by BSD, ELSA and CSA. Maybe i
>> misunderstood your concern of the 'very light weight' framework
>> i proposed besides being "overkill"?
>
>
> "upcall" is poorly defined.
>
> What I meant was that ELSA can perform its function when the kernel merely
> sends asynchronous notifications of forks out to userspace via netlink.
>
> Further, I'm wondering if CSA can perform its function with the same level
> of kernel support, perhaps with the addition of netlink-based notification
> of exec and exit as well.
>
> The framework patch which you sent was designed to permit the addition of
> more kernel accounting code, which is heading in the opposite direction.
>
> In other words: given that ELSA can do its thing via existing accounting
> interfaces and a fork notifier, why does CSA need to add lots more kernel
> code?

Here are some codes from do_exit() starting line 813 (based on
2.6.11-rc4-mm1):

813 acct_update_integrals(tsk);
814 update_mem_hiwater(tsk);
815 group_dead = atomic_dec_and_test(&tsk->signal->live);
816 if (group_dead) {
817 del_timer_sync(&tsk->signal->real_timer);
818 acct_process(code);
819 }
820 exit_mm(tsk);

The acct_process() is called to save off BSD accounting data at
line 818. The next statement at 820, tsk->mm is disposed and all
data saved at tsk->mm is gone, including memory hiwater marks
information saved at line 814. The complete tsk is disposed
before exit of do_exit() routine.

In separate emails discussion thread among interested parties,
i asked Guillaume to clarify this question. I suspect ELSA counts
on BSD's acct_process() at line 818 to save most accounting data.
If that is the case and since ELSA wants extended accounting data
collection, a way to save the extended acct data would be essential
to ELSA as well.

I can better asnwer your "why ELSA can do but CSA can't" question
after i learn more from Guilluame.

Later,
- jay

>
> -------------------------------------------------------
> 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
> _______________________________________________
> Lse-tech mailing list
> Lse-tech@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lse-tech