2006-08-03 04:19:34

by Jay Lan

[permalink] [raw]
Subject: [patch 0/3] System accounting and taskstats update

This posting is to replace the "CSA accounting and taskstats
update" patches i posted on 7/31.

This set of patches would provide basic system accounting
and extended system accounting data to userland using the
taskstats interface.

Patches are created against 2.6.18-rc2.

taskstats-rev2.patch
taskstats-acct.patch
bsd-to-xacct.patch

Regards,
Jay Lan <[email protected]>

ChageLog:
Feedbacks from Shailabh Nagar
- realign new fields, and rename some fields names
- keep ac_ prefix for basic accounting fields but
remove prefix on extended accounting fields.
- fix typos
- use timespec_sub() routine simplify code
- fix compilation issue if some CONFIG flags off
- use 'static inlines' on CONFIG flag '#else' cases

Feedbacks from Balbir Singh
- use 'BUILD_DEBUG_ON' to check TS_COMM_LEN value
- use portable cputime_to_msecs() API
- set system time to 1 usec if both stime and utime
are less than 1 usec.

Since most of the accounting data required by CSA
are also used in BSD Process Accounting, i initially
named those accounting fields handling as "basic
accounting" and the rest as "CSA extension". However,
there is not really much left in CSA. Thus, it makes
sense to eliminate CSA from the kernel all together.

However, Shailabh liked to separate the taskstats
interface part from the accounting data part and i
agreed that it was the right thing to do.

Thus, there will be kernel/tsacct.c and
include/linux/tsacct_kern.h to become home of the
accounting data handling code. A new config flag
"CONFIG_TASK_XACCT" is added so that three routines
dealing with extended accouting can be defined
as dummy.


2006-08-03 07:06:17

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch 0/3] System accounting and taskstats update

On Wed, 02 Aug 2006 21:19:35 -0700
Jay Lan <[email protected]> wrote:

> This posting is to replace the "CSA accounting and taskstats
> update" patches i posted on 7/31.

Could I hassle you for a full API description? I guess the actual
transport and data represenatation is covered by Shailabh's documents, but
it'd be valuable if you could prepare a Documentation file which describes
what the various fields mean and which explains when and how they are
accumulated and when they are delivered to userspace, etc.

Thanks.