diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-09-19 03:15:50 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-09-19 03:15:50 -0400 |
| commit | 5e51900be6c15488b80343d3c3e62d4d605ba9a9 (patch) | |
| tree | 99e60bbc949e066503b598893998286c8a42861d /fs/proc | |
| parent | 998564789137921acae9e367b61c5a1dc295653d (diff) | |
| parent | adee14b2e1557d0a8559f29681732d05a89dfc35 (diff) | |
Merge commit 'v2.6.27-rc6' into x86/cleanups
Diffstat (limited to 'fs/proc')
| -rw-r--r-- | fs/proc/array.c | 59 | ||||
| -rw-r--r-- | fs/proc/generic.c | 1 | ||||
| -rw-r--r-- | fs/proc/proc_misc.c | 7 |
3 files changed, 6 insertions, 61 deletions
diff --git a/fs/proc/array.c b/fs/proc/array.c index 0d6eb33597c6..71c9be59c9c2 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c | |||
| @@ -337,65 +337,6 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, | |||
| 337 | return 0; | 337 | return 0; |
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | /* | ||
| 341 | * Use precise platform statistics if available: | ||
| 342 | */ | ||
| 343 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | ||
| 344 | static cputime_t task_utime(struct task_struct *p) | ||
| 345 | { | ||
| 346 | return p->utime; | ||
| 347 | } | ||
| 348 | |||
| 349 | static cputime_t task_stime(struct task_struct *p) | ||
| 350 | { | ||
| 351 | return p->stime; | ||
| 352 | } | ||
| 353 | #else | ||
| 354 | static cputime_t task_utime(struct task_struct *p) | ||
| 355 | { | ||
| 356 | clock_t utime = cputime_to_clock_t(p->utime), | ||
| 357 | total = utime + cputime_to_clock_t(p->stime); | ||
| 358 | u64 temp; | ||
| 359 | |||
| 360 | /* | ||
| 361 | * Use CFS's precise accounting: | ||
| 362 | */ | ||
| 363 | temp = (u64)nsec_to_clock_t(p->se.sum_exec_runtime); | ||
| 364 | |||
| 365 | if (total) { | ||
| 366 | temp *= utime; | ||
| 367 | do_div(temp, total); | ||
| 368 | } | ||
| 369 | utime = (clock_t)temp; | ||
| 370 | |||
| 371 | p->prev_utime = max(p->prev_utime, clock_t_to_cputime(utime)); | ||
| 372 | return p->prev_utime; | ||
| 373 | } | ||
| 374 | |||
| 375 | static cputime_t task_stime(struct task_struct *p) | ||
| 376 | { | ||
| 377 | clock_t stime; | ||
| 378 | |||
| 379 | /* | ||
| 380 | * Use CFS's precise accounting. (we subtract utime from | ||
| 381 | * the total, to make sure the total observed by userspace | ||
| 382 | * grows monotonically - apps rely on that): | ||
| 383 | */ | ||
| 384 | stime = nsec_to_clock_t(p->se.sum_exec_runtime) - | ||
| 385 | cputime_to_clock_t(task_utime(p)); | ||
| 386 | |||
| 387 | if (stime >= 0) | ||
| 388 | p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime)); | ||
| 389 | |||
| 390 | return p->prev_stime; | ||
| 391 | } | ||
| 392 | #endif | ||
| 393 | |||
| 394 | static cputime_t task_gtime(struct task_struct *p) | ||
| 395 | { | ||
| 396 | return p->gtime; | ||
| 397 | } | ||
| 398 | |||
| 399 | static int do_task_stat(struct seq_file *m, struct pid_namespace *ns, | 340 | static int do_task_stat(struct seq_file *m, struct pid_namespace *ns, |
| 400 | struct pid *pid, struct task_struct *task, int whole) | 341 | struct pid *pid, struct task_struct *task, int whole) |
| 401 | { | 342 | { |
diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 4fb81e9c94e3..bca0f81eb687 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c | |||
| @@ -330,6 +330,7 @@ retry: | |||
| 330 | spin_lock(&proc_inum_lock); | 330 | spin_lock(&proc_inum_lock); |
| 331 | ida_remove(&proc_inum_ida, i); | 331 | ida_remove(&proc_inum_ida, i); |
| 332 | spin_unlock(&proc_inum_lock); | 332 | spin_unlock(&proc_inum_lock); |
| 333 | return 0; | ||
| 333 | } | 334 | } |
| 334 | return PROC_DYNAMIC_FIRST + i; | 335 | return PROC_DYNAMIC_FIRST + i; |
| 335 | } | 336 | } |
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index ded969862960..00f10a2dcf12 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/tty.h> | 24 | #include <linux/tty.h> |
| 25 | #include <linux/string.h> | 25 | #include <linux/string.h> |
| 26 | #include <linux/mman.h> | 26 | #include <linux/mman.h> |
| 27 | #include <linux/quicklist.h> | ||
| 27 | #include <linux/proc_fs.h> | 28 | #include <linux/proc_fs.h> |
| 28 | #include <linux/ioport.h> | 29 | #include <linux/ioport.h> |
| 29 | #include <linux/mm.h> | 30 | #include <linux/mm.h> |
| @@ -189,7 +190,8 @@ static int meminfo_read_proc(char *page, char **start, off_t off, | |||
| 189 | "Committed_AS: %8lu kB\n" | 190 | "Committed_AS: %8lu kB\n" |
| 190 | "VmallocTotal: %8lu kB\n" | 191 | "VmallocTotal: %8lu kB\n" |
| 191 | "VmallocUsed: %8lu kB\n" | 192 | "VmallocUsed: %8lu kB\n" |
| 192 | "VmallocChunk: %8lu kB\n", | 193 | "VmallocChunk: %8lu kB\n" |
| 194 | "Quicklists: %8lu kB\n", | ||
| 193 | K(i.totalram), | 195 | K(i.totalram), |
| 194 | K(i.freeram), | 196 | K(i.freeram), |
| 195 | K(i.bufferram), | 197 | K(i.bufferram), |
| @@ -221,7 +223,8 @@ static int meminfo_read_proc(char *page, char **start, off_t off, | |||
| 221 | K(committed), | 223 | K(committed), |
| 222 | (unsigned long)VMALLOC_TOTAL >> 10, | 224 | (unsigned long)VMALLOC_TOTAL >> 10, |
| 223 | vmi.used >> 10, | 225 | vmi.used >> 10, |
| 224 | vmi.largest_chunk >> 10 | 226 | vmi.largest_chunk >> 10, |
| 227 | K(quicklist_total_size()) | ||
| 225 | ); | 228 | ); |
| 226 | 229 | ||
| 227 | len += hugetlb_report_meminfo(page + len); | 230 | len += hugetlb_report_meminfo(page + len); |
