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

From: Jay Lan
Date: Fri Feb 25 2005 - 17:20:24 EST


Andrew Morton wrote:
Jay Lan <jlan@xxxxxxx> wrote:

Andrew Morton wrote:
> Kaigai Kohei <kaigai@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/lse-tech

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/