diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2014-08-07 14:07:57 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-08-07 14:07:57 -0400 |
| commit | 82df9c8bebeff610705f30315f3903cbcb3aa58b (patch) | |
| tree | 0d54eac4e7b46876111256caf169b22627441453 /kernel | |
| parent | 19583ca584d6f574384e17fe7613dfaeadcdc4a6 (diff) | |
| parent | ccbf62d8a284cf181ac28c8e8407dd077d90dd4b (diff) | |
Merge commit 'ccbf62d8a284cf181ac28c8e8407dd077d90dd4b' into for-next
backmerge to avoid kernel/acct.c conflict
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/Makefile | 25 | ||||
| -rw-r--r-- | kernel/acct.c | 10 | ||||
| -rw-r--r-- | kernel/debug/kdb/kdb_main.c | 2 | ||||
| -rw-r--r-- | kernel/delayacct.c | 16 | ||||
| -rw-r--r-- | kernel/fork.c | 5 | ||||
| -rw-r--r-- | kernel/time/Kconfig | 4 | ||||
| -rw-r--r-- | kernel/time/Makefile | 19 | ||||
| -rw-r--r-- | kernel/time/hrtimer.c (renamed from kernel/hrtimer.c) | 125 | ||||
| -rw-r--r-- | kernel/time/itimer.c (renamed from kernel/itimer.c) | 0 | ||||
| -rw-r--r-- | kernel/time/ntp.c | 15 | ||||
| -rw-r--r-- | kernel/time/ntp_internal.h | 2 | ||||
| -rw-r--r-- | kernel/time/posix-cpu-timers.c (renamed from kernel/posix-cpu-timers.c) | 0 | ||||
| -rw-r--r-- | kernel/time/posix-timers.c (renamed from kernel/posix-timers.c) | 2 | ||||
| -rw-r--r-- | kernel/time/tick-internal.h | 2 | ||||
| -rw-r--r-- | kernel/time/time.c (renamed from kernel/time.c) | 64 | ||||
| -rw-r--r-- | kernel/time/timeconst.bc (renamed from kernel/timeconst.bc) | 0 | ||||
| -rw-r--r-- | kernel/time/timekeeping.c | 641 | ||||
| -rw-r--r-- | kernel/time/timekeeping.h | 20 | ||||
| -rw-r--r-- | kernel/time/timekeeping_debug.c | 2 | ||||
| -rw-r--r-- | kernel/time/timekeeping_internal.h | 2 | ||||
| -rw-r--r-- | kernel/time/timer.c (renamed from kernel/timer.c) | 34 | ||||
| -rw-r--r-- | kernel/time/udelay_test.c | 168 | ||||
| -rw-r--r-- | kernel/tsacct.c | 19 |
23 files changed, 708 insertions, 469 deletions
diff --git a/kernel/Makefile b/kernel/Makefile index f2a8b6246ce9..973a40cf8068 100644 --- a/kernel/Makefile +++ b/kernel/Makefile | |||
| @@ -3,12 +3,11 @@ | |||
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | obj-y = fork.o exec_domain.o panic.o \ | 5 | obj-y = fork.o exec_domain.o panic.o \ |
| 6 | cpu.o exit.o itimer.o time.o softirq.o resource.o \ | 6 | cpu.o exit.o softirq.o resource.o \ |
| 7 | sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \ | 7 | sysctl.o sysctl_binary.o capability.o ptrace.o user.o \ |
| 8 | signal.o sys.o kmod.o workqueue.o pid.o task_work.o \ | 8 | signal.o sys.o kmod.o workqueue.o pid.o task_work.o \ |
| 9 | extable.o params.o posix-timers.o \ | 9 | extable.o params.o \ |
| 10 | kthread.o sys_ni.o posix-cpu-timers.o \ | 10 | kthread.o sys_ni.o nsproxy.o \ |
| 11 | hrtimer.o nsproxy.o \ | ||
| 12 | notifier.o ksysfs.o cred.o reboot.o \ | 11 | notifier.o ksysfs.o cred.o reboot.o \ |
| 13 | async.o range.o groups.o smpboot.o | 12 | async.o range.o groups.o smpboot.o |
| 14 | 13 | ||
| @@ -110,22 +109,6 @@ targets += config_data.h | |||
| 110 | $(obj)/config_data.h: $(obj)/config_data.gz FORCE | 109 | $(obj)/config_data.h: $(obj)/config_data.gz FORCE |
| 111 | $(call filechk,ikconfiggz) | 110 | $(call filechk,ikconfiggz) |
| 112 | 111 | ||
| 113 | $(obj)/time.o: $(obj)/timeconst.h | ||
| 114 | |||
| 115 | quiet_cmd_hzfile = HZFILE $@ | ||
| 116 | cmd_hzfile = echo "hz=$(CONFIG_HZ)" > $@ | ||
| 117 | |||
| 118 | targets += hz.bc | ||
| 119 | $(obj)/hz.bc: $(objtree)/include/config/hz.h FORCE | ||
| 120 | $(call if_changed,hzfile) | ||
| 121 | |||
| 122 | quiet_cmd_bc = BC $@ | ||
| 123 | cmd_bc = bc -q $(filter-out FORCE,$^) > $@ | ||
| 124 | |||
| 125 | targets += timeconst.h | ||
| 126 | $(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE | ||
| 127 | $(call if_changed,bc) | ||
| 128 | |||
| 129 | ############################################################################### | 112 | ############################################################################### |
| 130 | # | 113 | # |
| 131 | # Roll all the X.509 certificates that we can find together and pull them into | 114 | # Roll all the X.509 certificates that we can find together and pull them into |
diff --git a/kernel/acct.c b/kernel/acct.c index 808a86ff229d..a1844f14c6d6 100644 --- a/kernel/acct.c +++ b/kernel/acct.c | |||
| @@ -458,9 +458,7 @@ static void do_acct_process(struct bsd_acct_struct *acct, | |||
| 458 | acct_t ac; | 458 | acct_t ac; |
| 459 | mm_segment_t fs; | 459 | mm_segment_t fs; |
| 460 | unsigned long flim; | 460 | unsigned long flim; |
| 461 | u64 elapsed; | 461 | u64 elapsed, run_time; |
| 462 | u64 run_time; | ||
| 463 | struct timespec uptime; | ||
| 464 | struct tty_struct *tty; | 462 | struct tty_struct *tty; |
| 465 | const struct cred *orig_cred; | 463 | const struct cred *orig_cred; |
| 466 | 464 | ||
| @@ -484,10 +482,8 @@ static void do_acct_process(struct bsd_acct_struct *acct, | |||
| 484 | strlcpy(ac.ac_comm, current->comm, sizeof(ac.ac_comm)); | 482 | strlcpy(ac.ac_comm, current->comm, sizeof(ac.ac_comm)); |
| 485 | 483 | ||
| 486 | /* calculate run_time in nsec*/ | 484 | /* calculate run_time in nsec*/ |
| 487 | do_posix_clock_monotonic_gettime(&uptime); | 485 | run_time = ktime_get_ns(); |
| 488 | run_time = (u64)uptime.tv_sec*NSEC_PER_SEC + uptime.tv_nsec; | 486 | run_time -= current->group_leader->start_time; |
| 489 | run_time -= (u64)current->group_leader->start_time.tv_sec * NSEC_PER_SEC | ||
| 490 | + current->group_leader->start_time.tv_nsec; | ||
| 491 | /* convert nsec -> AHZ */ | 487 | /* convert nsec -> AHZ */ |
| 492 | elapsed = nsec_to_AHZ(run_time); | 488 | elapsed = nsec_to_AHZ(run_time); |
| 493 | #if ACCT_VERSION==3 | 489 | #if ACCT_VERSION==3 |
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 2f7c760305ca..379650b984f8 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c | |||
| @@ -2472,7 +2472,7 @@ static void kdb_gmtime(struct timespec *tv, struct kdb_tm *tm) | |||
| 2472 | static void kdb_sysinfo(struct sysinfo *val) | 2472 | static void kdb_sysinfo(struct sysinfo *val) |
| 2473 | { | 2473 | { |
| 2474 | struct timespec uptime; | 2474 | struct timespec uptime; |
| 2475 | do_posix_clock_monotonic_gettime(&uptime); | 2475 | ktime_get_ts(&uptime); |
| 2476 | memset(val, 0, sizeof(*val)); | 2476 | memset(val, 0, sizeof(*val)); |
| 2477 | val->uptime = uptime.tv_sec; | 2477 | val->uptime = uptime.tv_sec; |
| 2478 | val->loads[0] = avenrun[0]; | 2478 | val->loads[0] = avenrun[0]; |
diff --git a/kernel/delayacct.c b/kernel/delayacct.c index 54996b71e66d..de699f42f9bc 100644 --- a/kernel/delayacct.c +++ b/kernel/delayacct.c | |||
| @@ -46,16 +46,6 @@ void __delayacct_tsk_init(struct task_struct *tsk) | |||
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | /* | 48 | /* |
| 49 | * Start accounting for a delay statistic using | ||
| 50 | * its starting timestamp (@start) | ||
| 51 | */ | ||
| 52 | |||
| 53 | static inline void delayacct_start(struct timespec *start) | ||
| 54 | { | ||
| 55 | do_posix_clock_monotonic_gettime(start); | ||
| 56 | } | ||
| 57 | |||
| 58 | /* | ||
| 59 | * Finish delay accounting for a statistic using | 49 | * Finish delay accounting for a statistic using |
| 60 | * its timestamps (@start, @end), accumalator (@total) and @count | 50 | * its timestamps (@start, @end), accumalator (@total) and @count |
| 61 | */ | 51 | */ |
| @@ -67,7 +57,7 @@ static void delayacct_end(struct timespec *start, struct timespec *end, | |||
| 67 | s64 ns; | 57 | s64 ns; |
| 68 | unsigned long flags; | 58 | unsigned long flags; |
| 69 | 59 | ||
| 70 | do_posix_clock_monotonic_gettime(end); | 60 | ktime_get_ts(end); |
| 71 | ts = timespec_sub(*end, *start); | 61 | ts = timespec_sub(*end, *start); |
| 72 | ns = timespec_to_ns(&ts); | 62 | ns = timespec_to_ns(&ts); |
| 73 | if (ns < 0) | 63 | if (ns < 0) |
| @@ -81,7 +71,7 @@ static void delayacct_end(struct timespec *start, struct timespec *end, | |||
| 81 | 71 | ||
| 82 | void __delayacct_blkio_start(void) | 72 | void __delayacct_blkio_start(void) |
| 83 | { | 73 | { |
| 84 | delayacct_start(¤t->delays->blkio_start); | 74 | ktime_get_ts(¤t->delays->blkio_start); |
| 85 | } | 75 | } |
| 86 | 76 | ||
| 87 | void __delayacct_blkio_end(void) | 77 | void __delayacct_blkio_end(void) |
| @@ -169,7 +159,7 @@ __u64 __delayacct_blkio_ticks(struct task_struct *tsk) | |||
| 169 | 159 | ||
| 170 | void __delayacct_freepages_start(void) | 160 | void __delayacct_freepages_start(void) |
| 171 | { | 161 | { |
| 172 | delayacct_start(¤t->delays->freepages_start); | 162 | ktime_get_ts(¤t->delays->freepages_start); |
| 173 | } | 163 | } |
| 174 | 164 | ||
| 175 | void __delayacct_freepages_end(void) | 165 | void __delayacct_freepages_end(void) |
diff --git a/kernel/fork.c b/kernel/fork.c index 6a13c46cd87d..627b7f80afb0 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
| @@ -1262,9 +1262,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
| 1262 | 1262 | ||
| 1263 | posix_cpu_timers_init(p); | 1263 | posix_cpu_timers_init(p); |
| 1264 | 1264 | ||
| 1265 | do_posix_clock_monotonic_gettime(&p->start_time); | 1265 | p->start_time = ktime_get_ns(); |
| 1266 | p->real_start_time = p->start_time; | 1266 | p->real_start_time = ktime_get_boot_ns(); |
| 1267 | monotonic_to_bootbased(&p->real_start_time); | ||
| 1268 | p->io_context = NULL; | 1267 | p->io_context = NULL; |
| 1269 | p->audit_context = NULL; | 1268 | p->audit_context = NULL; |
| 1270 | if (clone_flags & CLONE_THREAD) | 1269 | if (clone_flags & CLONE_THREAD) |
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index f448513a45ed..feccfd888732 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig | |||
| @@ -20,10 +20,6 @@ config GENERIC_TIME_VSYSCALL | |||
| 20 | config GENERIC_TIME_VSYSCALL_OLD | 20 | |
