Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
ddd46ed2
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
170
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ddd46ed2
编写于
10月 20, 2017
作者:
M
Michael Ellerman
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'topic/ppc-kvm' into next
Bring in some KVM commits we need (the TM one in particular).
上级
8bc93149
2a3d6553
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
14 addition
and
50 deletion
+14
-50
arch/powerpc/include/asm/kvm_book3s_asm.h
arch/powerpc/include/asm/kvm_book3s_asm.h
+0
-4
arch/powerpc/kernel/idle_book3s.S
arch/powerpc/kernel/idle_book3s.S
+11
-24
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/book3s_hv.c
+1
-12
arch/powerpc/kvm/book3s_hv_rmhandlers.S
arch/powerpc/kvm/book3s_hv_rmhandlers.S
+0
-8
arch/powerpc/kvm/powerpc.c
arch/powerpc/kvm/powerpc.c
+2
-2
未找到文件。
arch/powerpc/include/asm/kvm_book3s_asm.h
浏览文件 @
ddd46ed2
...
...
@@ -104,10 +104,6 @@ struct kvmppc_host_state {
u8
napping
;
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
/*
* hwthread_req/hwthread_state pair is used to pull sibling threads
* out of guest on pre-ISAv3.0B CPUs where threads share MMU.
*/
u8
hwthread_req
;
u8
hwthread_state
;
u8
host_ipi
;
...
...
arch/powerpc/kernel/idle_book3s.S
浏览文件 @
ddd46ed2
...
...
@@ -319,20 +319,13 @@ enter_winkle:
/*
*
r3
-
PSSCR
value
corresponding
to
the
requested
stop
state
.
*/
power_enter_stop
:
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
power_enter_stop_kvm_rm
:
/
*
*
This
is
currently
unused
because
POWER9
KVM
does
not
have
to
*
gather
secondary
threads
into
sibling
mode
,
but
the
code
is
*
here
in
case
that
function
is
required
.
*
*
Tell
KVM
we
're entering idle.
*/
/
*
Tell
KVM
we
're entering idle */
li
r4
,
KVM_HWTHREAD_IN_IDLE
/
*
DO
THIS
IN
REAL
MODE
!
See
comment
above
.
*/
stb
r4
,
HSTATE_HWTHREAD_STATE
(
r13
)
#endif
power_enter_stop
:
/*
*
Check
if
we
are
executing
the
lite
variant
with
ESL
=
EC
=
0
*/
...
...
@@ -496,18 +489,6 @@ pnv_powersave_wakeup_mce:
b
pnv_powersave_wakeup
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
kvm_start_guest_check
:
li
r0
,
KVM_HWTHREAD_IN_KERNEL
stb
r0
,
HSTATE_HWTHREAD_STATE
(
r13
)
/
*
Order
setting
hwthread_state
vs
.
testing
hwthread_req
*/
sync
lbz
r0
,
HSTATE_HWTHREAD_REQ
(
r13
)
cmpwi
r0
,
0
beqlr
b
kvm_start_guest
#endif
/*
*
Called
from
reset
vector
for
powersave
wakeups
.
*
cr3
-
set
to
gt
if
waking
up
with
partial
/
complete
hypervisor
state
loss
...
...
@@ -532,9 +513,15 @@ ALT_FTR_SECTION_END_IFSET(CPU_FTR_ARCH_300)
mr
r3
,
r12
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
BEGIN_FTR_SECTION
bl
kvm_start_guest_check
END_FTR_SECTION_IFCLR
(
CPU_FTR_ARCH_300
)
li
r0
,
KVM_HWTHREAD_IN_KERNEL
stb
r0
,
HSTATE_HWTHREAD_STATE
(
r13
)
/
*
Order
setting
hwthread_state
vs
.
testing
hwthread_req
*/
sync
lbz
r0
,
HSTATE_HWTHREAD_REQ
(
r13
)
cmpwi
r0
,
0
beq
1
f
b
kvm_start_guest
1
:
#endif
/
*
Return
SRR1
from
power7_nap
()
*/
...
...
arch/powerpc/kvm/book3s_hv.c
浏览文件 @
ddd46ed2
...
...
@@ -2117,15 +2117,6 @@ static int kvmppc_grab_hwthread(int cpu)
struct
paca_struct
*
tpaca
;
long
timeout
=
10000
;
/*
* ISA v3.0 idle routines do not set hwthread_state or test
* hwthread_req, so they can not grab idle threads.
*/
if
(
cpu_has_feature
(
CPU_FTR_ARCH_300
))
{
WARN
(
1
,
"KVM: can not control sibling threads
\n
"
);
return
-
EBUSY
;
}
tpaca
=
&
paca
[
cpu
];
/* Ensure the thread won't go into the kernel if it wakes */
...
...
@@ -2160,12 +2151,10 @@ static void kvmppc_release_hwthread(int cpu)
struct
paca_struct
*
tpaca
;
tpaca
=
&
paca
[
cpu
];
tpaca
->
kvm_hstate
.
hwthread_req
=
0
;
tpaca
->
kvm_hstate
.
kvm_vcpu
=
NULL
;
tpaca
->
kvm_hstate
.
kvm_vcore
=
NULL
;
tpaca
->
kvm_hstate
.
kvm_split_mode
=
NULL
;
if
(
!
cpu_has_feature
(
CPU_FTR_ARCH_300
))
tpaca
->
kvm_hstate
.
hwthread_req
=
0
;
}
static
void
radix_flush_cpu
(
struct
kvm
*
kvm
,
int
cpu
,
struct
kvm_vcpu
*
vcpu
)
...
...
arch/powerpc/kvm/book3s_hv_rmhandlers.S
浏览文件 @
ddd46ed2
...
...
@@ -149,11 +149,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
subf
r4
,
r4
,
r3
mtspr
SPRN_DEC
,
r4
BEGIN_FTR_SECTION
/
*
hwthread_req
may
have
got
set
by
cede
or
no
vcpu
,
so
clear
it
*/
li
r0
,
0
stb
r0
,
HSTATE_HWTHREAD_REQ
(
r13
)
END_FTR_SECTION_IFCLR
(
CPU_FTR_ARCH_300
)
/
*
*
For
external
interrupts
we
need
to
call
the
Linux
...
...
@@ -316,7 +314,6 @@ kvm_novcpu_exit:
*
Relocation
is
off
and
most
register
values
are
lost
.
*
r13
points
to
the
PACA
.
*
r3
contains
the
SRR1
wakeup
value
,
SRR1
is
trashed
.
*
This
is
not
used
by
ISAv3
.0
B
processors
.
*/
.
globl
kvm_start_guest
kvm_start_guest
:
...
...
@@ -435,9 +432,6 @@ kvm_secondary_got_guest:
*
While
waiting
we
also
need
to
check
if
we
get
given
a
vcpu
to
run
.
*/
kvm_no_guest
:
BEGIN_FTR_SECTION
twi
31
,
0
,
0
END_FTR_SECTION_IFSET
(
CPU_FTR_ARCH_300
)
lbz
r3
,
HSTATE_HWTHREAD_REQ
(
r13
)
cmpwi
r3
,
0
bne
53
f
...
...
@@ -2531,10 +2525,8 @@ kvm_do_nap:
clrrdi
r0
,
r0
,
1
mtspr
SPRN_CTRLT
,
r0
BEGIN_FTR_SECTION
li
r0
,
1
stb
r0
,
HSTATE_HWTHREAD_REQ
(
r13
)
END_FTR_SECTION_IFCLR
(
CPU_FTR_ARCH_300
)
mfspr
r5
,
SPRN_LPCR
ori
r5
,
r5
,
LPCR_PECE0
|
LPCR_PECE1
BEGIN_FTR_SECTION
...
...
arch/powerpc/kvm/powerpc.c
浏览文件 @
ddd46ed2
...
...
@@ -644,8 +644,8 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
break
;
#endif
case
KVM_CAP_PPC_HTM
:
r
=
cpu_has_feature
(
CPU_FTR_TM_COMP
)
&&
is_kvmppc_hv_enabled
(
kvm
);
r
=
is_kvmppc_hv_enabled
(
kvm
)
&&
(
cur_cpu_spec
->
cpu_user_features2
&
PPC_FEATURE2_HTM_COMP
);
break
;
default:
r
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录