Received: by 10.223.164.202 with SMTP id h10csp4396496wrb; Mon, 20 Nov 2017 14:57:29 -0800 (PST) X-Google-Smtp-Source: AGs4zMZKXV3wRvgUakYJLVDVFWGA6fczjHjZrweLkHqvTX0vndKA73q5a1GRK7UpFalGrycmhN/8 X-Received: by 10.84.230.135 with SMTP id e7mr14859101plk.299.1511218649094; Mon, 20 Nov 2017 14:57:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511218649; cv=none; d=google.com; s=arc-20160816; b=dK/HvpIsmqF/YVH+XM6tRuMd+44KSHB9qEuQPeVXMtJU7JBv5e6f3YsQWupeY+2duE 28+ErN1RfyReINYKRrKledOc7/gEpvDQ6Z0qsrIHdaPSMkQJRN0oOP2hO+DLXDkV5anj WwSJpdpJ7UUulfcuPBpOJelJgri8HlZY7DrmACfw4Vmn8+pOvp/goPwOBx2w/oyFJzI8 vDeUwvrfaHg+tb2Aok9vnfBVHo8n7mOtBc+x3cH58gwsNqkSoi/BN7LJAzYQ7hr5viwj lYT7/lOu0gKVwSMp9we5BYR2T3qIFaWe3rIFeaCj3EfQfdUsYP4cgggvviCfMpmwdEJz Jy3Q== 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=K7YCaRJc8kjk7xjk+WhNRwkqETIOFyAYOiQe1irqcLI=; b=XcLw+uJRykjX5SVY/4js/IP5Ha2mlsmRTFxc4fm8exE+OZ7VN2AMFpBRkV0/9PG2P0 4yOEKoL3N/8hRufFC9si4/v/EssmPfMJsxs3z+Q+soTXeL/KiR4KaCgeACsL7a+0kWB3 oTMZtWngJNfZ42vessnqcN3HsfOYZ1QRCRj5reOKDbAwnWUgItf64jzzhgVOc6wz/iNG yPIglvX7metxVTLyb8wMtD5+pohBNi6gWd35aAbHzfELGig1lAYhjQJDB2T5/J5++VMM Arhj//8HBXOKwHz4r2BTWJdiTeFPJ/iOvqVC6hkr25i8RWepJQlejeV2EL3hE5/+sQAw 2aBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RHf2bhMw; 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 y5si4428608plr.593.2017.11.20.14.57.19; Mon, 20 Nov 2017 14:57:29 -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=RHf2bhMw; 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 S1751833AbdKTW4W (ORCPT + 68 others); Mon, 20 Nov 2017 17:56:22 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:36060 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751195AbdKTWz5 (ORCPT ); Mon, 20 Nov 2017 17:55:57 -0500 Received: by mail-pf0-f194.google.com with SMTP id i15so8385650pfa.3; Mon, 20 Nov 2017 14:55:56 -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=K7YCaRJc8kjk7xjk+WhNRwkqETIOFyAYOiQe1irqcLI=; b=RHf2bhMwUhz07qCdrjXae/zqBNA2l4D2tmozISSWBMAC7tez2R6ruzKrywLE0zM9oe xfbS5XfDsLmdz1m7nltt4CSAj1iNdjs6d1LHxZdt5p0J+P0xHhpme3DBYdI8NXqKtFMa aHCgTn/iBE/4yIghnhEND2U7RfWJdM81leqanX0huV0AaiHSDNMgYo/HaBpOBKJC/juN yWFSNp+kpzsnreEURAhnrX01x1oYb2juHvjQwjhHtsx3Dz4VwUKEo79o00OiTbW1bimo 0IvHOuqAwBfVc3qTt1cPPD6ip3NWAsCexMHY76YOhjFUaOLCKBn+gfRvo23IXs8HCNHH RC6A== 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=K7YCaRJc8kjk7xjk+WhNRwkqETIOFyAYOiQe1irqcLI=; b=B4qJqaJVlSX5vV0QgKJkiWY8vS1BEZaIhIzdZij7yGyRW2A7mayxY7mYcO2HsRFGee ftzwxCSzPNJprHxoI6WJgz9sjlvEoJXyQAYg0ZM5z0EFBRxrLW/DTiDpENqCoPlHRSb4 6R/GobBCwG9ENMADpK/Buj1k48Ytqi6p8fmysFIcLRYFgtbk6DNJuXaPnWh5PMNDkU1t AkHS4P9WXcd8HRwc5o6jWSAbihTNsA8uOLkwbF4Jm4BoljNMuE/1C5rWrLTpir7cOn1K RcNmbJsaQdlMN4MvGG1Hqy8Pz2N4uthRojG3nWDIJSlRH3Fv+eCMH6YKnyPmNaQJBAXu 65+w== X-Gm-Message-State: AJaThX7dfTy4upTFW5DC6SUEXF4TFwN73e/9VI7lWCz5VomUaJWGF/S9 KcACb3ekmPV3dRYu7epJ0bjyLBcOjus= X-Received: by 10.99.152.68 with SMTP id l4mr15171309pgo.208.1511218556475; Mon, 20 Nov 2017 14:55:56 -0800 (PST) Received: from localhost ([223.72.93.14]) by smtp.gmail.com with ESMTPSA id z127sm19570871pfb.63.2017.11.20.14.55.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Nov 2017 14:55:56 -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 v3 RESEND] KVM: X86: Fix softlockup when get the current kvmclock Date: Mon, 20 Nov 2017 14:55:52 -0800 Message-Id: <1511218552-6382-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_time_ref_counter+0x5a/0x80 [kvm] kvm_hv_process_stimers+0x120/0x5f0 [kvm] kvm_arch_vcpu_ioctl_run+0x4b4/0x1690 [kvm] kvm_vcpu_ioctl+0x33a/0x620 [kvm] do_vfs_ioctl+0xa1/0x5d0 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 treating the unhotplug pCPU as not using master clock. Reviewed-by: Radim Krčmář Reviewed-by: David Hildenbrand Cc: Paolo Bonzini Cc: Radim Krčmář 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) * 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(); -- 2.7.4 From 1584627513390448821@xxx Mon Nov 20 22:56:00 +0000 2017 X-GM-THRID: 1584627513390448821 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread