Messages in this thread |  | | | Date | Fri, 25 Feb 2005 14:18:43 -0800 | | From | Jay Lan <> | | Subject | Re: [Lse-tech] Re: A common layer for Accounting packages |
| |
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
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |