For some reasons, running a simple qemu-kvm command with KCSAN will
reset AMD hosts. It turns out svm_vcpu_run() could not be instrumented.
Disable it for now.
# /usr/libexec/qemu-kvm -name ubuntu-18.04-server-cloudimg -cpu host
-smp 2 -m 2G -hda ubuntu-18.04-server-cloudimg.qcow2
=== console output ===
Kernel 5.6.0-next-20200408+ on an x86_64
hp-dl385g10-05 login:
<...host reset...>
HPE ProLiant System BIOS A40 v1.20 (03/09/2018)
(C) Copyright 1982-2018 Hewlett Packard Enterprise Development LP
Early system initialization, please wait...
Signed-off-by: Qian Cai <[email protected]>
---
arch/x86/kvm/svm/svm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 2be5bbae3a40..1fdb300e9337 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -3278,7 +3278,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcpu)
bool __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
-static void svm_vcpu_run(struct kvm_vcpu *vcpu)
+static __no_kcsan void svm_vcpu_run(struct kvm_vcpu *vcpu)
{
struct vcpu_svm *svm = to_svm(vcpu);
--
2.21.0 (Apple Git-122.2)
On 15/04/20 17:37, Qian Cai wrote:
> For some reasons, running a simple qemu-kvm command with KCSAN will
> reset AMD hosts. It turns out svm_vcpu_run() could not be instrumented.
> Disable it for now.
>
> # /usr/libexec/qemu-kvm -name ubuntu-18.04-server-cloudimg -cpu host
> -smp 2 -m 2G -hda ubuntu-18.04-server-cloudimg.qcow2
>
> === console output ===
> Kernel 5.6.0-next-20200408+ on an x86_64
>
> hp-dl385g10-05 login:
>
> <...host reset...>
>
> HPE ProLiant System BIOS A40 v1.20 (03/09/2018)
> (C) Copyright 1982-2018 Hewlett Packard Enterprise Development LP
> Early system initialization, please wait...
>
> Signed-off-by: Qian Cai <[email protected]>
> ---
> arch/x86/kvm/svm/svm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
> index 2be5bbae3a40..1fdb300e9337 100644
> --- a/arch/x86/kvm/svm/svm.c
> +++ b/arch/x86/kvm/svm/svm.c
> @@ -3278,7 +3278,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcpu)
>
> bool __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
>
> -static void svm_vcpu_run(struct kvm_vcpu *vcpu)
> +static __no_kcsan void svm_vcpu_run(struct kvm_vcpu *vcpu)
> {
> struct vcpu_svm *svm = to_svm(vcpu);
>
>
I suppose you tested the patch to move cli/sti into the .S file. Anyway:
Acked-by: Paolo Bonzini <[email protected]>
Thanks,
Paolo
> On Apr 15, 2020, at 11:57 AM, Paolo Bonzini <[email protected]> wrote:
>
> On 15/04/20 17:37, Qian Cai wrote:
>> For some reasons, running a simple qemu-kvm command with KCSAN will
>> reset AMD hosts. It turns out svm_vcpu_run() could not be instrumented.
>> Disable it for now.
>>
>> # /usr/libexec/qemu-kvm -name ubuntu-18.04-server-cloudimg -cpu host
>> -smp 2 -m 2G -hda ubuntu-18.04-server-cloudimg.qcow2
>>
>> === console output ===
>> Kernel 5.6.0-next-20200408+ on an x86_64
>>
>> hp-dl385g10-05 login:
>>
>> <...host reset...>
>>
>> HPE ProLiant System BIOS A40 v1.20 (03/09/2018)
>> (C) Copyright 1982-2018 Hewlett Packard Enterprise Development LP
>> Early system initialization, please wait...
>>
>> Signed-off-by: Qian Cai <[email protected]>
>> ---
>> arch/x86/kvm/svm/svm.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
>> index 2be5bbae3a40..1fdb300e9337 100644
>> --- a/arch/x86/kvm/svm/svm.c
>> +++ b/arch/x86/kvm/svm/svm.c
>> @@ -3278,7 +3278,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcpu)
>>
>> bool __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
>>
>> -static void svm_vcpu_run(struct kvm_vcpu *vcpu)
>> +static __no_kcsan void svm_vcpu_run(struct kvm_vcpu *vcpu)
>> {
>> struct vcpu_svm *svm = to_svm(vcpu);
>>
>>
>
> I suppose you tested the patch to move cli/sti into the .S file. Anyway:
Yes, tested that without any luck.
> On Apr 15, 2020, at 11:57 AM, Paolo Bonzini <[email protected]> wrote:
>
> On 15/04/20 17:37, Qian Cai wrote:
>> For some reasons, running a simple qemu-kvm command with KCSAN will
>> reset AMD hosts. It turns out svm_vcpu_run() could not be instrumented.
>> Disable it for now.
>>
>> # /usr/libexec/qemu-kvm -name ubuntu-18.04-server-cloudimg -cpu host
>> -smp 2 -m 2G -hda ubuntu-18.04-server-cloudimg.qcow2
>>
>> === console output ===
>> Kernel 5.6.0-next-20200408+ on an x86_64
>>
>> hp-dl385g10-05 login:
>>
>> <...host reset...>
>>
>> HPE ProLiant System BIOS A40 v1.20 (03/09/2018)
>> (C) Copyright 1982-2018 Hewlett Packard Enterprise Development LP
>> Early system initialization, please wait...
>>
>> Signed-off-by: Qian Cai <[email protected]>
>> ---
>> arch/x86/kvm/svm/svm.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
>> index 2be5bbae3a40..1fdb300e9337 100644
>> --- a/arch/x86/kvm/svm/svm.c
>> +++ b/arch/x86/kvm/svm/svm.c
>> @@ -3278,7 +3278,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcpu)
>>
>> bool __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
>>
>> -static void svm_vcpu_run(struct kvm_vcpu *vcpu)
>> +static __no_kcsan void svm_vcpu_run(struct kvm_vcpu *vcpu)
>> {
>> struct vcpu_svm *svm = to_svm(vcpu);
>>
>>
>
> I suppose you tested the patch to move cli/sti into the .S file. Anyway:
>
> Acked-by: Paolo Bonzini <[email protected]>
Paul, can you pick this up along with other KCSAN fixes?
On Fri, Apr 17, 2020 at 09:21:59AM -0400, Qian Cai wrote:
>
>
> > On Apr 15, 2020, at 11:57 AM, Paolo Bonzini <[email protected]> wrote:
> >
> > On 15/04/20 17:37, Qian Cai wrote:
> >> For some reasons, running a simple qemu-kvm command with KCSAN will
> >> reset AMD hosts. It turns out svm_vcpu_run() could not be instrumented.
> >> Disable it for now.
> >>
> >> # /usr/libexec/qemu-kvm -name ubuntu-18.04-server-cloudimg -cpu host
> >> -smp 2 -m 2G -hda ubuntu-18.04-server-cloudimg.qcow2
> >>
> >> === console output ===
> >> Kernel 5.6.0-next-20200408+ on an x86_64
> >>
> >> hp-dl385g10-05 login:
> >>
> >> <...host reset...>
> >>
> >> HPE ProLiant System BIOS A40 v1.20 (03/09/2018)
> >> (C) Copyright 1982-2018 Hewlett Packard Enterprise Development LP
> >> Early system initialization, please wait...
> >>
> >> Signed-off-by: Qian Cai <[email protected]>
> >> ---
> >> arch/x86/kvm/svm/svm.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
> >> index 2be5bbae3a40..1fdb300e9337 100644
> >> --- a/arch/x86/kvm/svm/svm.c
> >> +++ b/arch/x86/kvm/svm/svm.c
> >> @@ -3278,7 +3278,7 @@ static void svm_cancel_injection(struct kvm_vcpu *vcpu)
> >>
> >> bool __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
> >>
> >> -static void svm_vcpu_run(struct kvm_vcpu *vcpu)
> >> +static __no_kcsan void svm_vcpu_run(struct kvm_vcpu *vcpu)
> >> {
> >> struct vcpu_svm *svm = to_svm(vcpu);
> >>
> >>
> >
> > I suppose you tested the patch to move cli/sti into the .S file. Anyway:
> >
> > Acked-by: Paolo Bonzini <[email protected]>
>
> Paul, can you pick this up along with other KCSAN fixes?
Queued and pushed, thank you both!
Thanx, Paul