Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1376598pxa; Thu, 20 Aug 2020 09:40:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQqw8TVcyESQYGYZuVwJUE0bLwmIZ5A3CfSrmHeehFeVarwCvj7fa2UPjaScv+m+6umJgb X-Received: by 2002:a17:906:1483:: with SMTP id x3mr2669016ejc.318.1597941639290; Thu, 20 Aug 2020 09:40:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597941639; cv=none; d=google.com; s=arc-20160816; b=qnRXJRzTX33rDMCbU2+i3KxBC/qZa/2+LbkG6EROLuNEOsA25v6L/aYR0xbQz5l090 B8Jml/waRaKs56UOKXoOztG0ChMDDg2imlL4AfCM0ElpAkgVhG5B/347/QPFof0n2DJt Kw5OTpDuQA0lP0XQpv8Exi2YvUnvADbBW2szlPG6ksf1HRicEcGqKHwj9CVZIrddkMax yj8P2Ra+Lerm26c7YCyF55iaUhB3FeA3tRpny/USgOKmIAKgP63Fr7huTckIqUPagWZg JqSu7NBKAdH4ITLjmsiF0Qo2w3mlIRdadfFAVAINxcNnOWHYTvM/ThrV8dHhsECpeJqf dzRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=M2APjn0qzmR+IHeSHj56144dCgzxLU30fRM7qeoRXk0=; b=ztc5mfCovX1uiEjp7OBHeRNWkAIS24LireeEXMPbTHMF+8tlTFloDyI+lO0NFj2pwt IUF0fZ/SiHo0cyOxNpuLXAA54sWpFvs4zt0hEJoRP9BEqhuwadCbKkmWtny21sx/Z4Vw qFZsIAONh61ZYajmL1J22o7oNuu5SU0hKxG0afz4F9V8S0ZIBmbVIYCleG2YflCr6t/+ bzxeSvkGiYQOyIC473yWj+zZ74ovUmuGkbxJIUFHl9RfYRILBm0MX3rYPN94Q78FmYKR uYj9pUIkHSeEO7IBGzJh1I1HMPMbH99gqmvC+Q4IxM4gGU/xbYyCJdKKkMZ4ZoYnWfP6 096w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TSL7WFsw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w6si1479544ejb.150.2020.08.20.09.40.15; Thu, 20 Aug 2020 09:40:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TSL7WFsw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729086AbgHTPzi (ORCPT + 99 others); Thu, 20 Aug 2020 11:55:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:48914 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726731AbgHTPzf (ORCPT ); Thu, 20 Aug 2020 11:55:35 -0400 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2DEEE2086A for ; Thu, 20 Aug 2020 15:55:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597938935; bh=cK3kF60+6TKP27RpSl0Ssbs1Tv+b14rPZSX1bkpQRak=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=TSL7WFswph08vWCBCbZMvJx1kWZ40D9oa9ZYGlUzcyh2whzvROJh2BSLmczGlEB4J IvhS+jYOS10HaUpCoLzDYCBr9j/oIqwl9LfgmTW42uGs3Hw7k/8auS/LdXI6THn5ep dEmxCGaF//8SXPcsT6/9r9K+ob+e/Vr0gdgvFQWA= Received: by mail-wr1-f54.google.com with SMTP id f1so2520044wro.2 for ; Thu, 20 Aug 2020 08:55:35 -0700 (PDT) X-Gm-Message-State: AOAM532G8fVYRQkuiDJeaDuGsWnV9VEU62otVXtZfPRIU+5w8D3VGOcy FS3i5UykAk3EHxk62mrSs5HPUVCVW0P+MJP7RwHH5Q== X-Received: by 2002:a05:6000:10c6:: with SMTP id b6mr3771565wrx.257.1597938933739; Thu, 20 Aug 2020 08:55:33 -0700 (PDT) MIME-Version: 1.0 References: <39d57e4d-5db4-f536-6f5e-6b0414c0dccc@amd.com> <7dedb0ab-56a6-5d96-577b-21ab1ecdad24@amd.com> <20200820151049.GA26595@sjchrist-ice> <362f5a45-b808-25ad-b99b-449e05717c4a@amd.com> In-Reply-To: <362f5a45-b808-25ad-b99b-449e05717c4a@amd.com> From: Andy Lutomirski Date: Thu, 20 Aug 2020 08:55:22 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: FSGSBASE causing panic on 5.9-rc1 To: Tom Lendacky Cc: Sean Christopherson , Andy Lutomirski , Joerg Roedel , Paolo Bonzini , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Linux Kernel Mailing List , X86 ML , "Chang S. Bae" , Thomas Gleixner , Sasha Levin , Borislav Petkov , Peter Zijlstra , Ingo Molnar Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 20, 2020 at 8:21 AM Tom Lendacky wrote: > > On 8/20/20 10:10 AM, Sean Christopherson wrote: > > On Wed, Aug 19, 2020 at 05:21:33PM -0700, Andy Lutomirski wrote: > >> On Wed, Aug 19, 2020 at 2:25 PM Andy Lutomirski wrote: > >>> > >>> On Wed, Aug 19, 2020 at 11:19 AM Tom Lendacky wrote: > >>>> > >>>> On 8/19/20 1:07 PM, Tom Lendacky wrote: > >>>>> It looks like the FSGSBASE support is crashing my second generation EPYC > >>>>> system. I was able to bisect it to: > >>>>> > >>>>> b745cfba44c1 ("x86/cpu: Enable FSGSBASE on 64bit by default and add a chicken bit") > >>>>> > >>>>> The panic only happens when using KVM. Doing kernel builds or stress > >>>>> on bare-metal appears fine. But if I fire up, in this case, a 64-vCPU > >>>>> guest and do a kernel build within the guest, I get the following: > >>>> > >>>> I should clarify that this panic is on the bare-metal system, not in the > >>>> guest. And that specifying nofsgsbase on the bare-metal command line fixes > >>>> the issue. > >>> > >>> I certainly see some oddities: > >>> > >>> We have this code: > >>> > >>> static void svm_vcpu_put(struct kvm_vcpu *vcpu) > >>> { > >>> struct vcpu_svm *svm = to_svm(vcpu); > >>> int i; > >>> > >>> avic_vcpu_put(vcpu); > >>> > >>> ++vcpu->stat.host_state_reload; > >>> kvm_load_ldt(svm->host.ldt); > >>> #ifdef CONFIG_X86_64 > >>> loadsegment(fs, svm->host.fs); > >>> wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gsbase); > > > > Pretty sure current->thread.gsbase can be stale, i.e. this needs: > > > > current_save_fsgs(); > > I did try adding current_save_fsgs() in svm_vcpu_load(), saving the > current->thread.gsbase value to a new variable in the svm struct. I then > used that variable in the wrmsrl below, but it still crashed. Can you try bisecting all the way back to: commit dd649bd0b3aa012740059b1ba31ecad28a408f7f Author: Andy Lutomirski Date: Thu May 28 16:13:48 2020 -0400 x86/cpu: Add 'unsafe_fsgsbase' to enable CR4.FSGSBASE and adding the unsafe_fsgsbase command line option while you bisect. Also, you're crashing when you run a guest, right? Can you try running the x86 sefltests on a bad kernel without running any guests? --Andy