Received: by 10.223.164.202 with SMTP id h10csp149126wrb; Mon, 6 Nov 2017 04:18:21 -0800 (PST) X-Google-Smtp-Source: ABhQp+TwajOoTj/Sh1GzVB+LCzphCCtHjPQE+TM+Efu+eVKO8mMiF3OvAG7B15AI70H1Y54yQ0/V X-Received: by 10.101.64.198 with SMTP id u6mr15201321pgp.44.1509970701141; Mon, 06 Nov 2017 04:18:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1509970701; cv=none; d=google.com; s=arc-20160816; b=PF141Yb7WNiDxgGK5hn3/zf63IP6kAqM4iJFfQI3jN4ffkO81zTqUsSrUrqCBXr2XY AvggSVcR6bSMowiZ7Fb+qShXa7sHf9QLfDmaosBZpuwAldz1aevpgyyP6zB7HsA62l7o XJTn2vqeBLmBLjEMjY2+9mC9dWlXymo5xGUw9aYi2pCgePVhEOQizlrpQRfoMWBK1se3 EEY5Gd+PNPsAOfUvU2b/xX3/hauvxPhruhmnvUZuFPg0bJV4lo8GUGUKm4YsTwQ5pzrU 5s5p8Up5H+/WG+YZhtjIMCnRSP/MhsQ2RKSL4VoMob+nmLdF4DK7UAEeZHSRFPVbHdHp dmfg== 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:mime-version :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=ciA1g8ca8IqheVOOKo9jW52R4FruqYMZyAXTrfOR/FU=; b=buit6bK4U2jDVdjVxR4HuCC4ei86d0RoscNdh3CKFYwrR1HGKkLoTM6g7HMATKJABo owgrnlsyTbqFCxA6SK5RmVuqImhZCCnp1LYRuvN+OJbIDOepUJLh0iJ5+lzpA0JQBBnt FeO674fEnRfB3rb3jbDzAaA1mddlS9GuLBYVBruYOUhPvEBjwGZqulpFMtDHHJDZzLa9 44wkQ1LBKxrybW5B95c2kcLZkWPI9BA5fqrpqGXwZQiqsc0RV6UJqwH6fYWMesCaN5Nm 0agNDKgcvkckFhZwHltOm0nB6eR8cSt2Voha0Ef16zjPGGcKmzQPbBefGL//xlcXPUrE kvHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jYN/plEg; 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 p20si11454601pgc.351.2017.11.06.04.18.07; Mon, 06 Nov 2017 04:18:21 -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=jYN/plEg; 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 S1752926AbdKFMR3 (ORCPT + 99 others); Mon, 6 Nov 2017 07:17:29 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:44452 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752721AbdKFMRY (ORCPT ); Mon, 6 Nov 2017 07:17:24 -0500 Received: by mail-pg0-f68.google.com with SMTP id j3so8075619pga.1; Mon, 06 Nov 2017 04:17:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ciA1g8ca8IqheVOOKo9jW52R4FruqYMZyAXTrfOR/FU=; b=jYN/plEgz1qA+uLy/g36X0fXGJpw9iuWQTsYeNAGeWct0f4tb/jHliEOcfki2oM0wY 6r/dUNGGlfdJGMvXfoseYLOo/ZE6DIuuRgR3DhkUHrSpfryTFw8Pe8YzR3I5w2bqwoqJ WMXa+x4fH5BamURjEQBdEWHTonZYOsIjEf8LMvgOztPRsOyBLJt498DwY6O7lf/mgz1N pdxSYOeGvmK6wo3mZLFyHEvilr+o96Z2wuymNFzrC/g/ah3clo0RHIxzP1x59p6flyLS n+h4GAbt51FhulffsZAp79FRBZdhj3H8ElPGZee89Z1mvDgp3DCWUE2q1sA2lllC7Cq7 Oc2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ciA1g8ca8IqheVOOKo9jW52R4FruqYMZyAXTrfOR/FU=; b=HBc8EA3B2Cqzt5wxldFaL3JJSvxHuvAz0TMFwjU+UOjg3QiKanHKHqyKfbaMPv3Sss uxP8xuwIp9RC87U3/SBM8AqgU01KyJARew1ilOfpz/uHaXMS4X1dCDG7DY6P5scQohEp 87TbQV0zOq8e6NULSlvyIXTDSA593zNpPRAFXJRsM/e31qaPNTRpn5aU2fjgXCtKjiLi uuCTegZkKNAJIFG6PB6rcFn6U1i+JOtiO2D1V76WSzDijThnqddhFU7ovw5FWzV8GO89 UoRsdfFjxjgNn5NtmypB0CgMmUVrtnJd2ddLjfLCCYVn6xGLUAs14AZd7tivv9cfaSTT pH8w== X-Gm-Message-State: AMCzsaUPo9uGJisxnEuOMtnrIY596db5BjNV4110B2eAKKP/yZqHL5Vd 6kAz5Wh4+/bKwUVZWEZYTcpCxA== X-Received: by 10.84.168.35 with SMTP id e32mr14573315plb.122.1509970644102; Mon, 06 Nov 2017 04:17:24 -0800 (PST) Received: from localhost ([203.205.141.123]) by smtp.gmail.com with ESMTPSA id z127sm22442450pfb.63.2017.11.06.04.17.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Nov 2017 04:17:23 -0800 (PST) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Wanpeng Li Subject: [PATCH v2] KVM: X86: Fix softlockup when get the current kvmclock timestamp Date: Mon, 6 Nov 2017 04:17:20 -0800 Message-Id: <1509970640-18679-1-git-send-email-wanpeng.li@hotmail.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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 Cc: Radim Krčmář Signed-off-by: Wanpeng Li --- 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 From 1583313516580296130@xxx Mon Nov 06 10:50:35 +0000 2017 X-GM-THRID: 1583276151146767154 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread