Received: by 10.223.164.202 with SMTP id h10csp52424wrb; Tue, 14 Nov 2017 17:21:46 -0800 (PST) X-Google-Smtp-Source: AGs4zMaqN7jhJgTt9u1toPabvbuw5wqiNfc+8CicncKjvKheSu473hV+Hvi0GKW/aMG3ut47np2t X-Received: by 10.99.112.92 with SMTP id a28mr14281722pgn.413.1510708906028; Tue, 14 Nov 2017 17:21:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510708906; cv=none; d=google.com; s=arc-20160816; b=qHXWd5dfc3gUdi6mF1uUmd1ZQMD3lG2s/bJ9g9XxlG+2TOzQblmJIGnP6dR3kuP8U4 S6T2ti6o5JKZFueBFmfofYCkoDXZTDwgsaAZ8b3Ru/eEJbIEEnjQxke+WNlsYZK+VAWt kWbhnX1MaYyNJOJ03A1QqdCimcs2plw35QVzf+DWlK6WwBhE+zaY4pUPhCxIu6GVIttP tjraxWNYMk/apmD8eBYfn+tgjhdxcM1H/mBIeXVaz4reTZVzfMwNhdEC0nJE5hlSg+qp N2H4bENC1WkN7iEqDx1IrW8ep9zJtmnqqDtgudtFwwSrnXbQgy67RrSyCmbTG9vdLTSH Qlrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=Ar+u+pbeWEKE2S7GeLEJ/g/xsUhZdaLrO4B/pIDD6KY=; b=oN4XCFcvfUorRWi8+f5PSHdmCMZFaS/Q+1kaxML6IYmpFoPj0JBvZMEXg56TegS71k MIV+VhSU7kiYHUMhZJQSw5k5+AChkpVLiswQri3Ot7YIngoGFcMuh05Q74tjv91sj128 6Vvizh0PxXj3mSIigGd1cmBZgL8nTTnKEuNqWYT38rhFfYD4913dOWVgMlmx3uSYM2Re g29tDxdqKBgqMtw5A59wTcdi04BpuSyTn/c62KaNxkNnsxW+ddHeI61szNusLPIL+fMp e2j7+TdgZ+o36/qREwdfQSqCDGQu6LF0a+2lKZo/LIThKXDgi5EamYCQmT1NUwEL9Iq7 154Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Nei08JmM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m3si16980429pld.27.2017.11.14.17.21.33; Tue, 14 Nov 2017 17:21:46 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Nei08JmM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756897AbdKOBRe (ORCPT + 87 others); Tue, 14 Nov 2017 20:17:34 -0500 Received: from mail-oi0-f67.google.com ([209.85.218.67]:47462 "EHLO mail-oi0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756337AbdKOBRK (ORCPT ); Tue, 14 Nov 2017 20:17:10 -0500 Received: by mail-oi0-f67.google.com with SMTP id y206so13756420oiy.4; Tue, 14 Nov 2017 17:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Ar+u+pbeWEKE2S7GeLEJ/g/xsUhZdaLrO4B/pIDD6KY=; b=Nei08JmMoRbnTgyBl3IOac/mAXAOGrkB/1UYCNzEXfxX/dnXnrzIO+/3/MW6l/EFem 7OzVHWlMz1iFM3ZgDOakuGIZXony3pm5q6DaMaRgj69ZPHR7LiS8GNNStoxdQYB+ZBdM aV5BS0RbeVbUHKy4rLNQndV7jm0kH1T1czFnf4vQ8CzW5u0Wy6Kt/BmqGUM8QwyXhmIX aWttJbWvKxuRQ7Lv5BfPybfzr23Qa8FBg893Bw0fEE7EkGuFfmXHfu0J7a4dMu+9sH8A GXQG7aENONOi8/YYzh/mw0/ieMCoRx1Mmvr7hNIlFUs5EgaoIVxGvydMkx7JuGLxnLeu D3CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Ar+u+pbeWEKE2S7GeLEJ/g/xsUhZdaLrO4B/pIDD6KY=; b=Q2jqa+CU73SxYSOwEJwliuWSR8Yla+OKyeLEMrdrZguVQe//WJ4AfJxYHImhrpN2xe mD+Cz33Blc/DcT8LsdYtAzwK/tTisZmYtCPk1y1VV03/QhhwKC11HCFJ0WoTiDzNLBvu 2uIBajnIULuCAkfrQEP9QQrlFqSccevy4bEV7PV1t3AQwVYxG0rcNFeOrLFhY1xYmQz8 EmU1fsU47ANmjT3/RdD1HKOUVn/glqM4ly7zNgQPVBrvUajuvlmBuBZ8ANUBjt3xlPUy aH1sDou0RAF3BSdneIjM81Fk4sh+rmjzEWJ3ulLw+aV8b+ms8hmxBtB07KYA0AbmR5u6 VGBw== X-Gm-Message-State: AJaThX6kCwVExwVuUoU7XQdXzT4fhK7Vw8TW7QySdiLhXXB3itWfNnM+ uC7KJ1XBvOLLuClFD45nMEdQaXfFBJG9Ebx0Fp8= X-Received: by 10.202.198.6 with SMTP id w6mr5325427oif.349.1510708629987; Tue, 14 Nov 2017 17:17:09 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.53.27 with HTTP; Tue, 14 Nov 2017 17:17:09 -0800 (PST) In-Reply-To: <1510195932-6232-1-git-send-email-wanpeng.li@hotmail.com> References: <1510195932-6232-1-git-send-email-wanpeng.li@hotmail.com> From: Wanpeng Li Date: Wed, 15 Nov 2017 09:17:09 +0800 Message-ID: Subject: Re: [PATCH v3] KVM: X86: Fix softlockup when get the current kvmclock To: "linux-kernel@vger.kernel.org" , kvm Cc: Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Wanpeng Li Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ping, :) 2017-11-09 10:52 GMT+08:00 Wanpeng Li : > From: Wanpeng Li > > 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 result= s > in kvm_get_time_scale() gets into an infinite loop. > > This patch fixes it by treating the unhotplug pCPU as not using master cl= ock. > > Cc: Paolo Bonzini > Cc: Radim Kr=C4=8Dm=C3=A1=C5=99 > Signed-off-by: Wanpeng Li > --- > arch/x86/kvm/x86.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 03869eb..d61dcce3 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) * 1= 000LL, > - &hv_clock.tsc_shift, > - &hv_clock.tsc_to_system_mul); > - ret =3D __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 =3D __pvclock_read_cycles(&hv_clock, rdtsc()); > + } else > + ret =3D ktime_get_boot_ns() + ka->kvmclock_offset; > > put_cpu(); > > -- > 2.7.4 > From 1583566279261392165@xxx Thu Nov 09 05:48:08 +0000 2017 X-GM-THRID: 1583555269032973391 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread