Skip to content

Commit

Permalink
[PATCH] make taskstats sending completely independent of delay accoun…
Browse files Browse the repository at this point in the history
…ting on/off status

Complete the separation of delay accounting and taskstats by ignoring the
return value of delay accounting functions that fill in parts of taskstats
before it is sent out (either in response to a command or as part of a task
exit).

Also make delayacct_add_tsk return silently when delay accounting is turned
off rather than treat it as an error.

Signed-off-by: Shailabh Nagar <nagar@watson.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Shailabh Nagar authored and Linus Torvalds committed Jul 31, 2006
1 parent 15a647e commit 7d94ddd
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
4 changes: 1 addition & 3 deletions include/linux/delayacct.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,7 @@ static inline void delayacct_blkio_end(void)
static inline int delayacct_add_tsk(struct taskstats *d,
struct task_struct *tsk)
{
if (likely(!delayacct_on))
return -EINVAL;
if (!tsk->delays)
if (likely(!delayacct_on) || !tsk->delays)
return 0;
return __delayacct_add_tsk(d, tsk);
}
Expand Down
8 changes: 3 additions & 5 deletions kernel/taskstats.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ static int send_cpu_listeners(struct sk_buff *skb, unsigned int cpu)
static int fill_pid(pid_t pid, struct task_struct *pidtsk,
struct taskstats *stats)
{
int rc;
int rc = 0;
struct task_struct *tsk = pidtsk;

if (!pidtsk) {
Expand All @@ -196,12 +196,10 @@ static int fill_pid(pid_t pid, struct task_struct *pidtsk,
* Each accounting subsystem adds calls to its functions to
* fill in relevant parts of struct taskstsats as follows
*
* rc = per-task-foo(stats, tsk);
* if (rc)
* goto err;
* per-task-foo(stats, tsk);
*/

rc = delayacct_add_tsk(stats, tsk);
delayacct_add_tsk(stats, tsk);
stats->version = TASKSTATS_VERSION;

/* Define err: label here if needed */
Expand Down

0 comments on commit 7d94ddd

Please sign in to comment.