diff options
| author | Jens Axboe <axboe@kernel.dk> | 2012-05-01 08:29:55 -0400 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2012-05-01 08:29:55 -0400 |
| commit | 0b7877d4eea3f93e3dd941999522bbd8c538cb53 (patch) | |
| tree | ade6d4e411b9b9b569c802e3b2179826162c934c /fs/proc | |
| parent | bd1a68b59c8e3bce45fb76632c64e1e063c3962d (diff) | |
| parent | 69964ea4c7b68c9399f7977aa5b9aa6539a6a98a (diff) | |
Merge tag 'v3.4-rc5' into for-3.5/core
The core branch is behind driver commits that we want to build
on for 3.5, hence I'm pulling in a later -rc.
Linux 3.4-rc5
Conflicts:
Documentation/feature-removal-schedule.txt
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/proc')
| -rw-r--r-- | fs/proc/root.c | 9 | ||||
| -rw-r--r-- | fs/proc/stat.c | 34 | ||||
| -rw-r--r-- | fs/proc/task_mmu.c | 3 |
3 files changed, 33 insertions, 13 deletions
diff --git a/fs/proc/root.c b/fs/proc/root.c index 46a15d8a29ca..eed44bfc85db 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c | |||
| @@ -115,12 +115,13 @@ static struct dentry *proc_mount(struct file_system_type *fs_type, | |||
| 115 | if (IS_ERR(sb)) | 115 | if (IS_ERR(sb)) |
| 116 | return ERR_CAST(sb); | 116 | return ERR_CAST(sb); |
| 117 | 117 | ||
| 118 | if (!proc_parse_options(options, ns)) { | ||
| 119 | deactivate_locked_super(sb); | ||
| 120 | return ERR_PTR(-EINVAL); | ||
| 121 | } | ||
| 122 | |||
| 118 | if (!sb->s_root) { | 123 | if (!sb->s_root) { |
| 119 | sb->s_flags = flags; | 124 | sb->s_flags = flags; |
| 120 | if (!proc_parse_options(options, ns)) { | ||
| 121 | deactivate_locked_super(sb); | ||
| 122 | return ERR_PTR(-EINVAL); | ||
| 123 | } | ||
| 124 | err = proc_fill_super(sb); | 125 | err = proc_fill_super(sb); |
| 125 | if (err) { | 126 | if (err) { |
| 126 | deactivate_locked_super(sb); | 127 | deactivate_locked_super(sb); |
diff --git a/fs/proc/stat.c b/fs/proc/stat.c index 6a0c62d6e442..64c3b3172367 100644 --- a/fs/proc/stat.c +++ b/fs/proc/stat.c | |||
| @@ -18,19 +18,39 @@ | |||
| 18 | #ifndef arch_irq_stat | 18 | #ifndef arch_irq_stat |
| 19 | #define arch_irq_stat() 0 | 19 | #define arch_irq_stat() 0 |
| 20 | #endif | 20 | #endif |
| 21 | #ifndef arch_idle_time | 21 | |
| 22 | #define arch_idle_time(cpu) 0 | 22 | #ifdef arch_idle_time |
| 23 | #endif | 23 | |
| 24 | static cputime64_t get_idle_time(int cpu) | ||
| 25 | { | ||
| 26 | cputime64_t idle; | ||
| 27 | |||
| 28 | idle = kcpustat_cpu(cpu).cpustat[CPUTIME_IDLE]; | ||
| 29 | if (cpu_online(cpu) && !nr_iowait_cpu(cpu)) | ||
| 30 | idle += arch_idle_time(cpu); | ||
| 31 | return idle; | ||
| 32 | } | ||
| 33 | |||
| 34 | static cputime64_t get_iowait_time(int cpu) | ||
| 35 | { | ||
| 36 | cputime64_t iowait; | ||
| 37 | |||
| 38 | iowait = kcpustat_cpu(cpu).cpustat[CPUTIME_IOWAIT]; | ||
| 39 | if (cpu_online(cpu) && nr_iowait_cpu(cpu)) | ||
| 40 | iowait += arch_idle_time(cpu); | ||
| 41 | return iowait; | ||
| 42 | } | ||
| 43 | |||
| 44 | #else | ||
| 24 | 45 | ||
| 25 | static u64 get_idle_time(int cpu) | 46 | static u64 get_idle_time(int cpu) |
| 26 | { | 47 | { |
| 27 | u64 idle, idle_time = get_cpu_idle_time_us(cpu, NULL); | 48 | u64 idle, idle_time = get_cpu_idle_time_us(cpu, NULL); |
| 28 | 49 | ||
| 29 | if (idle_time == -1ULL) { | 50 | if (idle_time == -1ULL) |
| 30 | /* !NO_HZ so we can rely on cpustat.idle */ | 51 | /* !NO_HZ so we can rely on cpustat.idle */ |
| 31 | idle = kcpustat_cpu(cpu).cpustat[CPUTIME_IDLE]; | 52 | idle = kcpustat_cpu(cpu).cpustat[CPUTIME_IDLE]; |
| 32 | idle += arch_idle_time(cpu); | 53 | else |
| 33 | } else | ||
| 34 | idle = usecs_to_cputime64(idle_time); | 54 | idle = usecs_to_cputime64(idle_time); |
| 35 | 55 | ||
| 36 | return idle; | 56 | return idle; |
| @@ -49,6 +69,8 @@ static u64 get_iowait_time(int cpu) | |||
| 49 | return iowait; | 69 | return iowait; |
| 50 | } | 70 | } |
| 51 | 71 | ||
| 72 | #endif | ||
| 73 | |||
| 52 | static int show_stat(struct seq_file *p, void *v) | 74 | static int show_stat(struct seq_file *p, void *v) |
| 53 | { | 75 | { |
| 54 | int i, j; | 76 | int i, j; |
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 2b9a7607cbd5..2d60492d6df8 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
| @@ -597,9 +597,6 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, | |||
| 597 | if (!page) | 597 | if (!page) |
| 598 | continue; | 598 | continue; |
| 599 | 599 | ||
| 600 | if (PageReserved(page)) | ||
| 601 | continue; | ||
| 602 | |||
| 603 | /* Clear accessed and referenced bits. */ | 600 | /* Clear accessed and referenced bits. */ |
| 604 | ptep_test_and_clear_young(vma, addr, pte); | 601 | ptep_test_and_clear_young(vma, addr, pte); |
| 605 | ClearPageReferenced(page); | 602 | ClearPageReferenced(page); |
