-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_tim…
…e_ops Introduce CONFIG_PARAVIRT and PARAVIRT_TIME_ACCOUNTING on ARM64. Necessary duplication of paravirt.h and paravirt.c with ARM. The only paravirt interface supported is pv_time_ops.steal_clock, so no runtime pvops patching needed. This allows us to make use of steal_account_process_tick for stolen ticks accounting. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
- Loading branch information
Stefano Stabellini
authored and
David Vrabel
committed
Dec 21, 2015
1 parent
02c2433
commit dfd57bc
Showing
4 changed files
with
66 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#ifndef _ASM_ARM64_PARAVIRT_H | ||
#define _ASM_ARM64_PARAVIRT_H | ||
|
||
#ifdef CONFIG_PARAVIRT | ||
struct static_key; | ||
extern struct static_key paravirt_steal_enabled; | ||
extern struct static_key paravirt_steal_rq_enabled; | ||
|
||
struct pv_time_ops { | ||
unsigned long long (*steal_clock)(int cpu); | ||
}; | ||
extern struct pv_time_ops pv_time_ops; | ||
|
||
static inline u64 paravirt_steal_clock(int cpu) | ||
{ | ||
return pv_time_ops.steal_clock(cpu); | ||
} | ||
#endif | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
/* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* Copyright (C) 2013 Citrix Systems | ||
* | ||
* Author: Stefano Stabellini <stefano.stabellini@eu.citrix.com> | ||
*/ | ||
|
||
#include <linux/export.h> | ||
#include <linux/jump_label.h> | ||
#include <linux/types.h> | ||
#include <asm/paravirt.h> | ||
|
||
struct static_key paravirt_steal_enabled; | ||
struct static_key paravirt_steal_rq_enabled; | ||
|
||
struct pv_time_ops pv_time_ops; | ||
EXPORT_SYMBOL_GPL(pv_time_ops); |