linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp
@ 2017-11-06 12:17 Wanpeng Li
  2017-11-08 16:26 ` Radim Krčmář
  2017-11-25  3:14 ` kbuild test robot
  0 siblings, 2 replies; 5+ messages in thread
From: Wanpeng Li @ 2017-11-06 12:17 UTC (permalink / raw)
  To: linux-kernel, kvm; +Cc: Paolo Bonzini, Radim Krčmář, Wanpeng Li

From: Wanpeng Li <wanpeng.li@hotmail.com>

 watchdog: BUG: soft lockup - CPU#6 stuck for 22s! [qemu-system-x86:10185]
 CPU: 6 PID: 10185 Comm: qemu-system-x86 Tainted: G           OE   4.14.0-rc4+ #4
 RIP: 0010:kvm_get_time_scale+0x4e/0xa0 [kvm]
 Call Trace:
  ? get_kvmclock_ns+0xa3/0x140 [kvm]
  get_time_ref_counter+0x5a/0x80 [kvm]
  kvm_hv_process_stimers+0x120/0x5f0 [kvm]
  ? kvm_hv_process_stimers+0x120/0x5f0 [kvm]
  ? preempt_schedule+0x27/0x30
  ? ___preempt_schedule+0x16/0x18
  kvm_arch_vcpu_ioctl_run+0x4b4/0x1690 [kvm]
  ? kvm_arch_vcpu_load+0x47/0x230 [kvm]
  kvm_vcpu_ioctl+0x33a/0x620 [kvm]
  ? kvm_vcpu_ioctl+0x33a/0x620 [kvm]
  ? kvm_vm_ioctl_check_extension_generic+0x3b/0x40 [kvm]
  ? kvm_dev_ioctl+0x279/0x6c0 [kvm]
  do_vfs_ioctl+0xa1/0x5d0
  ? __fget+0x73/0xa0
  SyS_ioctl+0x79/0x90
  entry_SYSCALL_64_fastpath+0x1e/0xa9

This can be reproduced when running kvm-unit-tests/hyperv_stimer.flat and 
cpu-hotplug stress simultaneously. __this_cpu_read(cpu_tsc_khz) returns 0 
(set in kvmclock_cpu_down_prep()) when the pCPU is unhotplug which results 
in kvm_get_time_scale() gets into an infinite loop.

This patch fixes it by skipping to fill the hv_clock when the pCPU is offline.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
---
v1 -> v2:
 * avoid infinite loop

 arch/x86/kvm/x86.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 03869eb..d2507c6 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1259,6 +1259,9 @@ static void kvm_get_time_scale(uint64_t scaled_hz, uint64_t base_hz,
 	uint64_t tps64;
 	uint32_t tps32;
 
+	if (unlikely(base_hz == 0))
+		return;
+
 	tps64 = base_hz;
 	scaled64 = scaled_hz;
 	while (tps64 > scaled64*2 || tps64 & 0xffffffff00000000ULL) {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp
  2017-11-06 12:17 [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp Wanpeng Li
@ 2017-11-08 16:26 ` Radim Krčmář
  2017-11-09  0:43   ` Wanpeng Li
  2017-11-25  3:14 ` kbuild test robot
  1 sibling, 1 reply; 5+ messages in thread
From: Radim Krčmář @ 2017-11-08 16:26 UTC (permalink / raw)
  To: Wanpeng Li; +Cc: linux-kernel, kvm, Paolo Bonzini, Wanpeng Li

2017-11-06 04:17-0800, Wanpeng Li:
> From: Wanpeng Li <wanpeng.li@hotmail.com>
> 
>  watchdog: BUG: soft lockup - CPU#6 stuck for 22s! [qemu-system-x86:10185]
>  CPU: 6 PID: 10185 Comm: qemu-system-x86 Tainted: G           OE   4.14.0-rc4+ #4
>  RIP: 0010:kvm_get_time_scale+0x4e/0xa0 [kvm]
>  Call Trace:
>   ? get_kvmclock_ns+0xa3/0x140 [kvm]
>   get_time_ref_counter+0x5a/0x80 [kvm]
>   kvm_hv_process_stimers+0x120/0x5f0 [kvm]
>   ? kvm_hv_process_stimers+0x120/0x5f0 [kvm]
>   ? preempt_schedule+0x27/0x30
>   ? ___preempt_schedule+0x16/0x18
>   kvm_arch_vcpu_ioctl_run+0x4b4/0x1690 [kvm]
>   ? kvm_arch_vcpu_load+0x47/0x230 [kvm]
>   kvm_vcpu_ioctl+0x33a/0x620 [kvm]
>   ? kvm_vcpu_ioctl+0x33a/0x620 [kvm]
>   ? kvm_vm_ioctl_check_extension_generic+0x3b/0x40 [kvm]
>   ? kvm_dev_ioctl+0x279/0x6c0 [kvm]
>   do_vfs_ioctl+0xa1/0x5d0
>   ? __fget+0x73/0xa0
>   SyS_ioctl+0x79/0x90
>   entry_SYSCALL_64_fastpath+0x1e/0xa9
> 
> This can be reproduced when running kvm-unit-tests/hyperv_stimer.flat and 
> cpu-hotplug stress simultaneously. __this_cpu_read(cpu_tsc_khz) returns 0 
> (set in kvmclock_cpu_down_prep()) when the pCPU is unhotplug which results 
> in kvm_get_time_scale() gets into an infinite loop.
> 
> This patch fixes it by skipping to fill the hv_clock when the pCPU is offline.
> 
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Radim Krčmář <rkrcmar@redhat.com>
> Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
> ---
> v1 -> v2:
>  * avoid infinite loop
> 
>  arch/x86/kvm/x86.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 03869eb..d2507c6 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -1259,6 +1259,9 @@ static void kvm_get_time_scale(uint64_t scaled_hz, uint64_t base_hz,
>  	uint64_t tps64;
>  	uint32_t tps32;
>  
> +	if (unlikely(base_hz == 0))
> +		return;

This is a sensible thing to do and will prevent the loop, but KVM will
still have a minor bug:  get_kvmclock_ns() passes uninitialized stack
values with the expectation that kvm_get_time_scale() will set them, but
returning here would result in __pvclock_read_cycles() with random data
and inject timer interrupts early (if not worse).

I think it would be best if kvm_get_time_scale() wasn't executing when
cpu_tsc_khz is 0, by clearing cpu_tsc_khz later and setting earlier;
do you see any problems with moving the CPUHP_AP_X86_KVM_CLK_ONLINE
before CPUHP_AP_ONLINE?

Thanks.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp
  2017-11-08 16:26 ` Radim Krčmář
@ 2017-11-09  0:43   ` Wanpeng Li
  0 siblings, 0 replies; 5+ messages in thread
From: Wanpeng Li @ 2017-11-09  0:43 UTC (permalink / raw)
  To: Radim Krčmář; +Cc: linux-kernel, kvm, Paolo Bonzini, Wanpeng Li

2017-11-09 0:26 GMT+08:00 Radim Krčmář <rkrcmar@redhat.com>:
> 2017-11-06 04:17-0800, Wanpeng Li:
>> From: Wanpeng Li <wanpeng.li@hotmail.com>
>>
>>  watchdog: BUG: soft lockup - CPU#6 stuck for 22s! [qemu-system-x86:10185]
>>  CPU: 6 PID: 10185 Comm: qemu-system-x86 Tainted: G           OE   4.14.0-rc4+ #4
>>  RIP: 0010:kvm_get_time_scale+0x4e/0xa0 [kvm]
>>  Call Trace:
>>   ? get_kvmclock_ns+0xa3/0x140 [kvm]
>>   get_time_ref_counter+0x5a/0x80 [kvm]
>>   kvm_hv_process_stimers+0x120/0x5f0 [kvm]
>>   ? kvm_hv_process_stimers+0x120/0x5f0 [kvm]
>>   ? preempt_schedule+0x27/0x30
>>   ? ___preempt_schedule+0x16/0x18
>>   kvm_arch_vcpu_ioctl_run+0x4b4/0x1690 [kvm]
>>   ? kvm_arch_vcpu_load+0x47/0x230 [kvm]
>>   kvm_vcpu_ioctl+0x33a/0x620 [kvm]
>>   ? kvm_vcpu_ioctl+0x33a/0x620 [kvm]
>>   ? kvm_vm_ioctl_check_extension_generic+0x3b/0x40 [kvm]
>>   ? kvm_dev_ioctl+0x279/0x6c0 [kvm]
>>   do_vfs_ioctl+0xa1/0x5d0
>>   ? __fget+0x73/0xa0
>>   SyS_ioctl+0x79/0x90
>>   entry_SYSCALL_64_fastpath+0x1e/0xa9
>>
>> This can be reproduced when running kvm-unit-tests/hyperv_stimer.flat and
>> cpu-hotplug stress simultaneously. __this_cpu_read(cpu_tsc_khz) returns 0
>> (set in kvmclock_cpu_down_prep()) when the pCPU is unhotplug which results
>> in kvm_get_time_scale() gets into an infinite loop.
>>
>> This patch fixes it by skipping to fill the hv_clock when the pCPU is offline.
>>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Radim Krčmář <rkrcmar@redhat.com>
>> Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
>> ---
>> v1 -> v2:
>>  * avoid infinite loop
>>
>>  arch/x86/kvm/x86.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>> index 03869eb..d2507c6 100644
>> --- a/arch/x86/kvm/x86.c
>> +++ b/arch/x86/kvm/x86.c
>> @@ -1259,6 +1259,9 @@ static void kvm_get_time_scale(uint64_t scaled_hz, uint64_t base_hz,
>>       uint64_t tps64;
>>       uint32_t tps32;
>>
>> +     if (unlikely(base_hz == 0))
>> +             return;
>
> This is a sensible thing to do and will prevent the loop, but KVM will
> still have a minor bug:  get_kvmclock_ns() passes uninitialized stack
> values with the expectation that kvm_get_time_scale() will set them, but
> returning here would result in __pvclock_read_cycles() with random data
> and inject timer interrupts early (if not worse).
>
> I think it would be best if kvm_get_time_scale() wasn't executing when
> cpu_tsc_khz is 0, by clearing cpu_tsc_khz later and setting earlier;
> do you see any problems with moving the CPUHP_AP_X86_KVM_CLK_ONLINE
> before CPUHP_AP_ONLINE?

I think this will break Thomas's hotplug state machine, and I'm not
the hotplug expert. How about something like below to avoid the random
data:

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 34c85aa..954f510 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1795,10 +1795,13 @@ u64 get_kvmclock_ns(struct kvm *kvm)
        /* both __this_cpu_read() and rdtsc() should be on the same cpu */
        get_cpu();

-       kvm_get_time_scale(NSEC_PER_SEC, __this_cpu_read(cpu_tsc_khz) * 1000LL,
-                          &hv_clock.tsc_shift,
-                          &hv_clock.tsc_to_system_mul);
-       ret = __pvclock_read_cycles(&hv_clock, rdtsc());
+       if (__this_cpu_read(cpu_tsc_khz)) {
+               kvm_get_time_scale(NSEC_PER_SEC,
__this_cpu_read(cpu_tsc_khz) * 1000LL,
+                                  &hv_clock.tsc_shift,
+                                  &hv_clock.tsc_to_system_mul);
+               ret = __pvclock_read_cycles(&hv_clock, rdtsc());
+       } else
+               ret = ktime_get_boot_ns() + ka->kvmclock_offset;

        put_cpu();

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp
  2017-11-06 12:17 [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp Wanpeng Li
  2017-11-08 16:26 ` Radim Krčmář
@ 2017-11-25  3:14 ` kbuild test robot
  2017-11-27  1:26   ` Wanpeng Li
  1 sibling, 1 reply; 5+ messages in thread
From: kbuild test robot @ 2017-11-25  3:14 UTC (permalink / raw)
  To: Wanpeng Li
  Cc: kbuild-all, linux-kernel, kvm, Paolo Bonzini,
	Radim Krčmář,
	Wanpeng Li

[-- Attachment #1: Type: text/plain, Size: 4178 bytes --]

Hi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on kvm/linux-next]
[also build test WARNING on v4.14 next-20171124]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Wanpeng-Li/KVM-X86-Fix-softlockup-when-get-the-current-kvmclock-timestamp/20171109-030841
base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   In file included from arch/x86/kvm/x86.h:7:0,
                    from arch/x86/kvm/x86.c:28:
   arch/x86/kvm/x86.c: In function 'get_kvmclock_ns':
>> arch/x86/include/asm/pvclock.h:93:15: warning: '*((void *)&hv_clock+28)' may be used uninitialized in this function [-Wmaybe-uninitialized]
     u64 offset = pvclock_scale_delta(delta, src->tsc_to_system_mul,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              src->tsc_shift);
              ~~~~~~~~~~~~~~~
   arch/x86/kvm/x86.c:1785:32: note: '*((void *)&hv_clock+28)' was declared here
     struct pvclock_vcpu_time_info hv_clock;
                                   ^~~~~~~~
   In file included from arch/x86/kvm/x86.h:7:0,
                    from arch/x86/kvm/x86.c:28:
   arch/x86/include/asm/pvclock.h:65:2: warning: '*((void *)&hv_clock+24)' may be used uninitialized in this function [-Wmaybe-uninitialized]
     __asm__ (
     ^~~~~~~
   arch/x86/kvm/x86.c:1785:32: note: '*((void *)&hv_clock+24)' was declared here
     struct pvclock_vcpu_time_info hv_clock;
                                   ^~~~~~~~
--
   In file included from arch/x86//kvm/x86.h:7:0,
                    from arch/x86//kvm/x86.c:28:
   arch/x86//kvm/x86.c: In function 'get_kvmclock_ns':
>> arch/x86/include/asm/pvclock.h:93:15: warning: '*((void *)&hv_clock+28)' may be used uninitialized in this function [-Wmaybe-uninitialized]
     u64 offset = pvclock_scale_delta(delta, src->tsc_to_system_mul,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              src->tsc_shift);
              ~~~~~~~~~~~~~~~
   arch/x86//kvm/x86.c:1785:32: note: '*((void *)&hv_clock+28)' was declared here
     struct pvclock_vcpu_time_info hv_clock;
                                   ^~~~~~~~
   In file included from arch/x86//kvm/x86.h:7:0,
                    from arch/x86//kvm/x86.c:28:
   arch/x86/include/asm/pvclock.h:65:2: warning: '*((void *)&hv_clock+24)' may be used uninitialized in this function [-Wmaybe-uninitialized]
     __asm__ (
     ^~~~~~~
   arch/x86//kvm/x86.c:1785:32: note: '*((void *)&hv_clock+24)' was declared here
     struct pvclock_vcpu_time_info hv_clock;
                                   ^~~~~~~~

vim +93 arch/x86/include/asm/pvclock.h

347bb4448 Zachary Amsden  2010-08-19  88  
dce2db0a3 Marcelo Tosatti 2012-11-27  89  static __always_inline
a5a1d1c29 Thomas Gleixner 2016-12-21  90  u64 __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src, u64 tsc)
dce2db0a3 Marcelo Tosatti 2012-11-27  91  {
108b249c4 Paolo Bonzini   2016-09-01  92  	u64 delta = tsc - src->tsc_timestamp;
a5a1d1c29 Thomas Gleixner 2016-12-21 @93  	u64 offset = pvclock_scale_delta(delta, src->tsc_to_system_mul,
f7550d076 Minfei Huang    2016-05-27  94  					     src->tsc_shift);
3aed64f6d Paolo Bonzini   2016-06-09  95  	return src->system_time + offset;
dce2db0a3 Marcelo Tosatti 2012-11-27  96  }
dce2db0a3 Marcelo Tosatti 2012-11-27  97  

:::::: The code at line 93 was first introduced by commit
:::::: a5a1d1c2914b5316924c7893eb683a5420ebd3be clocksource: Use a plain u64 instead of cycle_t

:::::: TO: Thomas Gleixner <tglx@linutronix.de>
:::::: CC: Thomas Gleixner <tglx@linutronix.de>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 61127 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp
  2017-11-25  3:14 ` kbuild test robot
@ 2017-11-27  1:26   ` Wanpeng Li
  0 siblings, 0 replies; 5+ messages in thread
From: Wanpeng Li @ 2017-11-27  1:26 UTC (permalink / raw)
  To: kbuild test robot
  Cc: kbuild-all, linux-kernel, kvm, Paolo Bonzini,
	Radim Krčmář,
	Wanpeng Li

2017-11-25 11:14 GMT+08:00 kbuild test robot <lkp@intel.com>:
> Hi,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on kvm/linux-next]
> [also build test WARNING on v4.14 next-20171124]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

Don't worry, the version which has already been merged doesn't have this issue.

Regards,
Wanpeng Li

>
> url:    https://github.com/0day-ci/linux/commits/Wanpeng-Li/KVM-X86-Fix-softlockup-when-get-the-current-kvmclock-timestamp/20171109-030841
> base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
> config: i386-allyesconfig (attached as .config)
> compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=i386
>
> Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
> http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
>
> All warnings (new ones prefixed by >>):
>
>    In file included from arch/x86/kvm/x86.h:7:0,
>                     from arch/x86/kvm/x86.c:28:
>    arch/x86/kvm/x86.c: In function 'get_kvmclock_ns':
>>> arch/x86/include/asm/pvclock.h:93:15: warning: '*((void *)&hv_clock+28)' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      u64 offset = pvclock_scale_delta(delta, src->tsc_to_system_mul,
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>               src->tsc_shift);
>               ~~~~~~~~~~~~~~~
>    arch/x86/kvm/x86.c:1785:32: note: '*((void *)&hv_clock+28)' was declared here
>      struct pvclock_vcpu_time_info hv_clock;
>                                    ^~~~~~~~
>    In file included from arch/x86/kvm/x86.h:7:0,
>                     from arch/x86/kvm/x86.c:28:
>    arch/x86/include/asm/pvclock.h:65:2: warning: '*((void *)&hv_clock+24)' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      __asm__ (
>      ^~~~~~~
>    arch/x86/kvm/x86.c:1785:32: note: '*((void *)&hv_clock+24)' was declared here
>      struct pvclock_vcpu_time_info hv_clock;
>                                    ^~~~~~~~
> --
>    In file included from arch/x86//kvm/x86.h:7:0,
>                     from arch/x86//kvm/x86.c:28:
>    arch/x86//kvm/x86.c: In function 'get_kvmclock_ns':
>>> arch/x86/include/asm/pvclock.h:93:15: warning: '*((void *)&hv_clock+28)' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      u64 offset = pvclock_scale_delta(delta, src->tsc_to_system_mul,
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>               src->tsc_shift);
>               ~~~~~~~~~~~~~~~
>    arch/x86//kvm/x86.c:1785:32: note: '*((void *)&hv_clock+28)' was declared here
>      struct pvclock_vcpu_time_info hv_clock;
>                                    ^~~~~~~~
>    In file included from arch/x86//kvm/x86.h:7:0,
>                     from arch/x86//kvm/x86.c:28:
>    arch/x86/include/asm/pvclock.h:65:2: warning: '*((void *)&hv_clock+24)' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      __asm__ (
>      ^~~~~~~
>    arch/x86//kvm/x86.c:1785:32: note: '*((void *)&hv_clock+24)' was declared here
>      struct pvclock_vcpu_time_info hv_clock;
>                                    ^~~~~~~~
>
> vim +93 arch/x86/include/asm/pvclock.h
>
> 347bb4448 Zachary Amsden  2010-08-19  88
> dce2db0a3 Marcelo Tosatti 2012-11-27  89  static __always_inline
> a5a1d1c29 Thomas Gleixner 2016-12-21  90  u64 __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src, u64 tsc)
> dce2db0a3 Marcelo Tosatti 2012-11-27  91  {
> 108b249c4 Paolo Bonzini   2016-09-01  92        u64 delta = tsc - src->tsc_timestamp;
> a5a1d1c29 Thomas Gleixner 2016-12-21 @93        u64 offset = pvclock_scale_delta(delta, src->tsc_to_system_mul,
> f7550d076 Minfei Huang    2016-05-27  94                                             src->tsc_shift);
> 3aed64f6d Paolo Bonzini   2016-06-09  95        return src->system_time + offset;
> dce2db0a3 Marcelo Tosatti 2012-11-27  96  }
> dce2db0a3 Marcelo Tosatti 2012-11-27  97
>
> :::::: The code at line 93 was first introduced by commit
> :::::: a5a1d1c2914b5316924c7893eb683a5420ebd3be clocksource: Use a plain u64 instead of cycle_t
>
> :::::: TO: Thomas Gleixner <tglx@linutronix.de>
> :::::: CC: Thomas Gleixner <tglx@linutronix.de>
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-11-27  1:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-06 12:17 [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp Wanpeng Li
2017-11-08 16:26 ` Radim Krčmář
2017-11-09  0:43   ` Wanpeng Li
2017-11-25  3:14 ` kbuild test robot
2017-11-27  1:26   ` Wanpeng Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).