[PATCH] csa: convert CONFIG tag for extended accounting routines
There were a few accounting data/macros that are used in CSA but are #ifdef'ed inside CONFIG_BSD_PROCESS_ACCT. This patch is to change those ifdef's from CONFIG_BSD_PROCESS_ACCT to CONFIG_TASK_XACCT. A few defines are moved from kernel/acct.c and include/linux/acct.h to kernel/tsacct.c and include/linux/tsacct_kern.h. Signed-off-by: Jay Lan <jlan@sgi.com> Cc: Shailabh Nagar <nagar@watson.ibm.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Jes Sorensen <jes@sgi.com> Cc: Chris Sturtivant <csturtiv@sgi.com> Cc: Tony Ernst <tee@sgi.com> Cc: Guillaume Thouvenin <guillaume.thouvenin@bull.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
9acc185351
commit
8f0ab51479
@ -44,7 +44,7 @@
|
|||||||
#include <linux/nfsd/syscall.h>
|
#include <linux/nfsd/syscall.h>
|
||||||
#include <linux/personality.h>
|
#include <linux/personality.h>
|
||||||
#include <linux/rwsem.h>
|
#include <linux/rwsem.h>
|
||||||
#include <linux/acct.h>
|
#include <linux/tsacct_kern.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
|
||||||
#include <net/sock.h> /* siocdevprivate_ioctl */
|
#include <net/sock.h> /* siocdevprivate_ioctl */
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
#include <linux/security.h>
|
#include <linux/security.h>
|
||||||
#include <linux/syscalls.h>
|
#include <linux/syscalls.h>
|
||||||
#include <linux/rmap.h>
|
#include <linux/rmap.h>
|
||||||
#include <linux/acct.h>
|
#include <linux/tsacct_kern.h>
|
||||||
#include <linux/cn_proc.h>
|
#include <linux/cn_proc.h>
|
||||||
#include <linux/audit.h>
|
#include <linux/audit.h>
|
||||||
|
|
||||||
|
@ -124,16 +124,12 @@ extern void acct_auto_close(struct super_block *sb);
|
|||||||
extern void acct_init_pacct(struct pacct_struct *pacct);
|
extern void acct_init_pacct(struct pacct_struct *pacct);
|
||||||
extern void acct_collect(long exitcode, int group_dead);
|
extern void acct_collect(long exitcode, int group_dead);
|
||||||
extern void acct_process(void);
|
extern void acct_process(void);
|
||||||
extern void acct_update_integrals(struct task_struct *tsk);
|
|
||||||
extern void acct_clear_integrals(struct task_struct *tsk);
|
|
||||||
#else
|
#else
|
||||||
#define acct_auto_close_mnt(x) do { } while (0)
|
#define acct_auto_close_mnt(x) do { } while (0)
|
||||||
#define acct_auto_close(x) do { } while (0)
|
#define acct_auto_close(x) do { } while (0)
|
||||||
#define acct_init_pacct(x) do { } while (0)
|
#define acct_init_pacct(x) do { } while (0)
|
||||||
#define acct_collect(x,y) do { } while (0)
|
#define acct_collect(x,y) do { } while (0)
|
||||||
#define acct_process() do { } while (0)
|
#define acct_process() do { } while (0)
|
||||||
#define acct_update_integrals(x) do { } while (0)
|
|
||||||
#define acct_clear_integrals(task) do { } while (0)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -981,7 +981,7 @@ struct task_struct {
|
|||||||
wait_queue_t *io_wait;
|
wait_queue_t *io_wait;
|
||||||
/* i/o counters(bytes read/written, #syscalls */
|
/* i/o counters(bytes read/written, #syscalls */
|
||||||
u64 rchar, wchar, syscr, syscw;
|
u64 rchar, wchar, syscr, syscw;
|
||||||
#if defined(CONFIG_BSD_PROCESS_ACCT)
|
#if defined(CONFIG_TASK_XACCT)
|
||||||
u64 acct_rss_mem1; /* accumulated rss usage */
|
u64 acct_rss_mem1; /* accumulated rss usage */
|
||||||
u64 acct_vm_mem1; /* accumulated virtual memory usage */
|
u64 acct_vm_mem1; /* accumulated virtual memory usage */
|
||||||
clock_t acct_stimexpd; /* clock_t-converted stime since last update */
|
clock_t acct_stimexpd; /* clock_t-converted stime since last update */
|
||||||
|
@ -18,9 +18,15 @@ static inline void bacct_add_tsk(struct taskstats *stats, struct task_struct *ts
|
|||||||
|
|
||||||
#ifdef CONFIG_TASK_XACCT
|
#ifdef CONFIG_TASK_XACCT
|
||||||
extern void xacct_add_tsk(struct taskstats *stats, struct task_struct *p);
|
extern void xacct_add_tsk(struct taskstats *stats, struct task_struct *p);
|
||||||
|
extern void acct_update_integrals(struct task_struct *tsk);
|
||||||
|
extern void acct_clear_integrals(struct task_struct *tsk);
|
||||||
#else
|
#else
|
||||||
static inline void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
|
static inline void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
|
||||||
{}
|
{}
|
||||||
|
static inline void acct_update_integrals(struct task_struct *tsk)
|
||||||
|
{}
|
||||||
|
static inline void acct_clear_integrals(struct task_struct *tsk)
|
||||||
|
{}
|
||||||
#endif /* CONFIG_TASK_XACCT */
|
#endif /* CONFIG_TASK_XACCT */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -602,33 +602,3 @@ void acct_process(void)
|
|||||||
do_acct_process(file);
|
do_acct_process(file);
|
||||||
fput(file);
|
fput(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* acct_update_integrals - update mm integral fields in task_struct
|
|
||||||
* @tsk: task_struct for accounting
|
|
||||||
*/
|
|
||||||
void acct_update_integrals(struct task_struct *tsk)
|
|
||||||
{
|
|
||||||
if (likely(tsk->mm)) {
|
|
||||||
long delta =
|
|
||||||
cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd;
|
|
||||||
|
|
||||||
if (delta == 0)
|
|
||||||
return;
|
|
||||||
tsk->acct_stimexpd = tsk->stime;
|
|
||||||
tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm);
|
|
||||||
tsk->acct_vm_mem1 += delta * tsk->mm->total_vm;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* acct_clear_integrals - clear the mm integral fields in task_struct
|
|
||||||
* @tsk: task_struct whose accounting fields are cleared
|
|
||||||
*/
|
|
||||||
void acct_clear_integrals(struct task_struct *tsk)
|
|
||||||
{
|
|
||||||
tsk->acct_stimexpd = 0;
|
|
||||||
tsk->acct_rss_mem1 = 0;
|
|
||||||
tsk->acct_vm_mem1 = 0;
|
|
||||||
}
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <linux/security.h>
|
#include <linux/security.h>
|
||||||
#include <linux/cpu.h>
|
#include <linux/cpu.h>
|
||||||
#include <linux/acct.h>
|
#include <linux/acct.h>
|
||||||
|
#include <linux/tsacct_kern.h>
|
||||||
#include <linux/file.h>
|
#include <linux/file.h>
|
||||||
#include <linux/binfmts.h>
|
#include <linux/binfmts.h>
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include <linux/profile.h>
|
#include <linux/profile.h>
|
||||||
#include <linux/rmap.h>
|
#include <linux/rmap.h>
|
||||||
#include <linux/acct.h>
|
#include <linux/acct.h>
|
||||||
|
#include <linux/tsacct_kern.h>
|
||||||
#include <linux/cn_proc.h>
|
#include <linux/cn_proc.h>
|
||||||
#include <linux/delayacct.h>
|
#include <linux/delayacct.h>
|
||||||
#include <linux/taskstats_kern.h>
|
#include <linux/taskstats_kern.h>
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/syscalls.h>
|
#include <linux/syscalls.h>
|
||||||
#include <linux/times.h>
|
#include <linux/times.h>
|
||||||
#include <linux/acct.h>
|
#include <linux/tsacct_kern.h>
|
||||||
#include <linux/kprobes.h>
|
#include <linux/kprobes.h>
|
||||||
#include <linux/delayacct.h>
|
#include <linux/delayacct.h>
|
||||||
#include <asm/tlb.h>
|
#include <asm/tlb.h>
|
||||||
|
@ -88,4 +88,34 @@ void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
|
|||||||
stats->read_syscalls = p->syscr;
|
stats->read_syscalls = p->syscr;
|
||||||
stats->write_syscalls = p->syscw;
|
stats->write_syscalls = p->syscw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* acct_update_integrals - update mm integral fields in task_struct
|
||||||
|
* @tsk: task_struct for accounting
|
||||||
|
*/
|
||||||
|
void acct_update_integrals(struct task_struct *tsk)
|
||||||
|
{
|
||||||
|
if (likely(tsk->mm)) {
|
||||||
|
long delta =
|
||||||
|
cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd;
|
||||||
|
|
||||||
|
if (delta == 0)
|
||||||
|
return;
|
||||||
|
tsk->acct_stimexpd = tsk->stime;
|
||||||
|
tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm);
|
||||||
|
tsk->acct_vm_mem1 += delta * tsk->mm->total_vm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* acct_clear_integrals - clear the mm integral fields in task_struct
|
||||||
|
* @tsk: task_struct whose accounting fields are cleared
|
||||||
|
*/
|
||||||
|
void acct_clear_integrals(struct task_struct *tsk)
|
||||||
|
{
|
||||||
|
tsk->acct_stimexpd = 0;
|
||||||
|
tsk->acct_rss_mem1 = 0;
|
||||||
|
tsk->acct_vm_mem1 = 0;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user