Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fixes from Martin Schwidefsky: "Two bug fixes for 4.10-rc3" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/kbuild: enable modversions for symbols exported from asm s390/vtime: correct system time accounting
This commit is contained in:
commit
74e5c265a4
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef _ASM_S390_PROTOTYPES_H
|
||||||
|
|
||||||
|
#include <linux/kvm_host.h>
|
||||||
|
#include <linux/ftrace.h>
|
||||||
|
#include <asm/fpu/api.h>
|
||||||
|
#include <asm-generic/asm-prototypes.h>
|
||||||
|
|
||||||
|
#endif /* _ASM_S390_PROTOTYPES_H */
|
|
@ -94,7 +94,7 @@ static void update_mt_scaling(void)
|
||||||
* Update process times based on virtual cpu times stored by entry.S
|
* Update process times based on virtual cpu times stored by entry.S
|
||||||
* to the lowcore fields user_timer, system_timer & steal_clock.
|
* to the lowcore fields user_timer, system_timer & steal_clock.
|
||||||
*/
|
*/
|
||||||
static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
|
static int do_account_vtime(struct task_struct *tsk)
|
||||||
{
|
{
|
||||||
u64 timer, clock, user, system, steal;
|
u64 timer, clock, user, system, steal;
|
||||||
u64 user_scaled, system_scaled;
|
u64 user_scaled, system_scaled;
|
||||||
|
@ -138,7 +138,7 @@ static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
|
||||||
}
|
}
|
||||||
account_user_time(tsk, user);
|
account_user_time(tsk, user);
|
||||||
tsk->utimescaled += user_scaled;
|
tsk->utimescaled += user_scaled;
|
||||||
account_system_time(tsk, hardirq_offset, system);
|
account_system_time(tsk, 0, system);
|
||||||
tsk->stimescaled += system_scaled;
|
tsk->stimescaled += system_scaled;
|
||||||
|
|
||||||
steal = S390_lowcore.steal_timer;
|
steal = S390_lowcore.steal_timer;
|
||||||
|
@ -152,7 +152,7 @@ static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
|
||||||
|
|
||||||
void vtime_task_switch(struct task_struct *prev)
|
void vtime_task_switch(struct task_struct *prev)
|
||||||
{
|
{
|
||||||
do_account_vtime(prev, 0);
|
do_account_vtime(prev);
|
||||||
prev->thread.user_timer = S390_lowcore.user_timer;
|
prev->thread.user_timer = S390_lowcore.user_timer;
|
||||||
prev->thread.system_timer = S390_lowcore.system_timer;
|
prev->thread.system_timer = S390_lowcore.system_timer;
|
||||||
S390_lowcore.user_timer = current->thread.user_timer;
|
S390_lowcore.user_timer = current->thread.user_timer;
|
||||||
|
@ -166,7 +166,7 @@ void vtime_task_switch(struct task_struct *prev)
|
||||||
*/
|
*/
|
||||||
void vtime_account_user(struct task_struct *tsk)
|
void vtime_account_user(struct task_struct *tsk)
|
||||||
{
|
{
|
||||||
if (do_account_vtime(tsk, HARDIRQ_OFFSET))
|
if (do_account_vtime(tsk))
|
||||||
virt_timer_expire();
|
virt_timer_expire();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue