From patchwork Wed May 5 14:01:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 12240017 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CCD64C433B4 for ; Wed, 5 May 2021 14:01:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A6FC8610A1 for ; Wed, 5 May 2021 14:01:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233517AbhEEOC2 (ORCPT ); Wed, 5 May 2021 10:02:28 -0400 Received: from mail-bn7nam10on2070.outbound.protection.outlook.com ([40.107.92.70]:38176 "EHLO NAM10-BN7-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S233464AbhEEOC0 (ORCPT ); Wed, 5 May 2021 10:02:26 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f4WhZSSpPVQ5AxQ45kU4f6BZ474Pmusa12j2QCKrLOdRucfY4XVnTxi4Jqcv8Uh6gC06tf6BxT5uItkEsd1AzyOOrevNLbkbs85xwYAD/M/JTTjWUix5f4Fz3g2hxptdI+kmmzXxW0kcscahRohww9JPhqTiIz3Jr7ifRnzld4rUDbcVFhPQ9vLhK51wo/r4WpcmlO06PnwnchaxF2pTLyp0647AjJifgG2HCIswr5Z7Yv4kUXSMx4BaGk021MLlOZ47ilZUP+RR2gYJQVe7WZ1/AYo01WIjO3+FlnrvrZ/grhx2ftCx2OFVsnApKTQhc0Kh5mbY2je7kImK189A0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/clkxc7KBa4+pcOjVaSBnql6Pi8DhHT+Hj5ky2/DKjY=; b=iW4KlZOsOhhmTgmKdUGpqwRT489pdQy3zOBXQfTsj/1SLdFFaOM0VoTEzpbXmJVySv++tbYMIPWCIstaC3HglNQFlEiFa7Gd/ZwEeKjr6Po2wOujIgNVqrXX9GlF6UjSqS/8wSoVmZ93W5ym4Oc6FcAknvYYqYyvnIqnY7PB2BrzsUeeSgz0+sSPt+X4bo5vp52L95TO2SJmUzrkifGaSmMHkigxlAvVaJeUr9A/jCWSYPbjedvxTK2oxRhC6dDllf8pY73Khp5X+fwmqVFjggDV0w4q8XcmYtyveIJEH6uNhYSqSed2KMcApP2YkveXEkQw2t5p0sztGuqBwJhfTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/clkxc7KBa4+pcOjVaSBnql6Pi8DhHT+Hj5ky2/DKjY=; b=BcwxCGt0l8wSPzq4kj+FYFZuV0ydS693bEJrvWdHhHtA0BwfrlchiawJbSNG11T+exv9Wg0aUZ04I1hKjHWrcodDQp8BySNZBxvx0Bvex3NLLoDtwV08cJcSSInn9U3csdS3bqWC1gTpUeWRgLPdNiDtiCJDXlQLNpZEfYT9wI4= Authentication-Results: alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=none action=none header.from=amd.com; Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM5PR12MB1163.namprd12.prod.outlook.com (2603:10b6:3:7a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.35; Wed, 5 May 2021 14:01:28 +0000 Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::b914:4704:ad6f:aba9]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::b914:4704:ad6f:aba9%12]) with mapi id 15.20.4087.044; Wed, 5 May 2021 14:01:28 +0000 To: Paolo Bonzini , kvm list Cc: Borislav Petkov From: Tom Lendacky Subject: SRCU dereference check warning with SEV-ES Message-ID: <601f1278-17dd-7124-f328-b865447ca160@amd.com> Date: Wed, 5 May 2021 09:01:26 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 Content-Language: en-US X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN7PR04CA0002.namprd04.prod.outlook.com (2603:10b6:806:f2::7) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.30.118] (165.204.77.1) by SN7PR04CA0002.namprd04.prod.outlook.com (2603:10b6:806:f2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Wed, 5 May 2021 14:01:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39e60ffa-9f0d-40c1-699b-08d90fce4740 X-MS-TrafficTypeDiagnostic: DM5PR12MB1163: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lMHsaHS/EdfPATsRnZ33ITvmEfkc2nTU40Asp2C3Pljl+RJ59U8xmZT4FMkx81VflUZ4DOxykcCXHKabsl5oeu4q6NkMjxXzX0C52m8wkdY/NFJLFjjyxlnj4tSUOgXkzm9Ps24ZUZXjO2oZLSIU5NMjoWbHuNaXR6DhSlRU1XgnDdiJv5Zs8PmBQ8Q6Um1zNCq73IaGrXbxRZkCmzE5cMRtI7EXJr0V2hMn/ca68xgZIrooUz9egkfFuPFLaVneUe39677B4/0xx9WJJEq6OZIF757A37kutWmWIUbv5f3Jj12Ev4r7ea4eqZ9qEV2zeC9vrKT9J62ZyU3UKoazw/tMvTP9C1Q3Xk0N8T3qlH7pRt5q2s0zghzse5x0zi3zUlfYl+xviMLkhAjcWfpZvGJeShYIjHm1CkgfDBLqqOfBffCXWIvycwh2Mq0+MmyizOLXUW++gq2JbbfRdBD5vZZZLNvjZ6jI49j3vvlbzPcDJfgY5cKr8n+W5j19RVSj3ZTHhG5ZKR0MNOK3z+Nl6OO95oS4410pmfQWuab2jMXKS8E2tcDJSbMts1di5gF96PdAff5un3oiykGdirBaLF1lHKkeEddK3UCfYa3dIFK/oavHfNICSbg48tEcJ2qLJd/6xp3tTBtCGnz5gDfe4E87IT4iqA6b+8WDkroLHTmWUYdZhE9FtSGQIJnFseC/ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR12MB1355.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(39860400002)(346002)(376002)(136003)(366004)(956004)(478600001)(86362001)(26005)(31686004)(110136005)(16576012)(2616005)(2906002)(316002)(4326008)(66556008)(5660300002)(8676002)(6486002)(31696002)(38100700002)(83380400001)(66946007)(66476007)(8936002)(36756003)(186003)(16526019)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?BhYJn7dlnO2qGTEXN2dhiMKmRRXW4w?= =?utf-8?q?3UCj22t3xIni+NFzLNn9zvOr1Y40AvihMByy8zVy1CDcKceu5k1jN4XFZtrRTIM6R?= =?utf-8?q?nAOGVutJOcZUxNavJmnNPzh/tMN0dh18/b3ttukSsCQoDgLNr+Gr5XG/y580+hwIm?= =?utf-8?q?rgffnadYTi604uRm9BN4bzoxtpfdAKlHJZGERGudSb+sWdgwXta4ACniLz3Njt5Ru?= =?utf-8?q?6pSYOvxIOA0Nqh3NCLwmrZmuuH928IcSq1S6eNNuXny/r3r9fa3JleYR5ui6DdckN?= =?utf-8?q?cd8vQPSL26uFCxm0dvKNGd5Rc+ttdBuLBZw2L2hwpoPTqTZOC4JdaO0JAgp9BZoyo?= =?utf-8?q?7Lraue2RuGUQMem6mzOsjaEHr0szdHRS4a4xkndYWlWRgG4ci4Ahcz6R36IAjIRDC?= =?utf-8?q?Ydbm2t/TeYcnW0VBtQjCxmYERpkKzAtAoBNtf1k5sWAL5DhKMplNr+yJlVFxhHUIp?= =?utf-8?q?O48fpB3Bvvy71zcGw9WKxd3gVvsSKUS5Onk+09lWICRfXX6vyvo9k4yHeDRL5MpxB?= =?utf-8?q?+SBeTLcW3TeBoyzDJup2CVikNiCW1d3b3zQQnmPPbZMqJhLQXdYoJh7bBu7QH1VnB?= =?utf-8?q?Z6lfNHSqswO9XUpuylNlsTePOWMw6fkJ73Ts51DXc1B47ljSqlGWi2XbDgnPgKi+l?= =?utf-8?q?I768IMvolg3MA94pIVIiMwjKVv/c70Es4jX2RKXd8/fTBgxBvJF3TvOBsNwQeL0pQ?= =?utf-8?q?/0n2wfFJEobp3vrwoMgpEyth40UUcqbSjRsboPT7LtX2sbVGre0LAg8hKr7/GiJz/?= =?utf-8?q?fj7nJleE1Jp3C2NGd8qGNekcuEE+qwxwZjj2Wt96hkAqCQsl4sh5B6OGh9Lamxx/b?= =?utf-8?q?oDkeQdwIwk89O6gQqJU6c+ULP+tLh3S/CH1LwZdA7yOKEtumLgoNYKPeqr7+gLEJp?= =?utf-8?q?m6XAT0m4kyHJrR+7rDk1w8rQkpTsjnvn7/+K/uNzjI0JyTmTV8OI0IZwChz/uybBY?= =?utf-8?q?NLueuzjn7VF/2bz06y73/OUc43zGnnOH/obMfG+moPrwYE+IhZwMqQuPFi+FWbQlE?= =?utf-8?q?YJL8nVdk2WrxI79c/SIoOi5762AY39iJuQYkxNpLa92z/CFBQb+fPxuG5Ko39rcpS?= =?utf-8?q?af6hXTBw83xa8LGx5923XpOGm77J4j7fcuguCAwdPwvZtMAMqWdJZPBeigGeLXRPG?= =?utf-8?q?CWiCkgI11HG9HxlidjBfgLAftt/FSXJoacsiryztWopb+eJgS8uRQp3cJTPoPM4m0?= =?utf-8?q?YhkmD7Hx6t/vH7MkgWFdbjaC/YJtQPkBmOvgtNTYGtH/liTgOKoBDev3htpGCeMev?= =?utf-8?q?BLWCj0cNZewWah?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39e60ffa-9f0d-40c1-699b-08d90fce4740 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2021 14:01:28.3788 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GDrE7zL3iveI2SEqPyksIn+nHM4TMFU7CWGJTitc9YjfcgQX6RqMQcM3rmaVp+4Fgw4q8wQV89rg+aRYqDMc6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1163 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Boris noticed the below warning when running an SEV-ES guest with CONFIG_PROVE_LOCKING=y. The SRCU lock is released before invoking the vCPU run op where the SEV-ES support will unmap the GHCB. Is the proper thing to do here to take the SRCU lock around the call to kvm_vcpu_unmap() in this case? It does fix the issue, but I just want to be sure that I shouldn't, instead, be taking the memslot lock: Thanks, Tom [ 97.455047] ============================= [ 97.459150] WARNING: suspicious RCU usage [ 97.463259] 5.11.0 #1 Not tainted [ 97.466674] ----------------------------- [ 97.470783] include/linux/kvm_host.h:641 suspicious rcu_dereference_check() usage! [ 97.478479] other info that might help us debug this: [ 97.486606] rcu_scheduler_active = 2, debug_locks = 1 [ 97.493246] 1 lock held by qemu-system-x86/3793: [ 97.497967] #0: ffff88810fe800c8 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x6d/0x650 [kvm] [ 97.507059] stack backtrace: [ 97.511515] CPU: 0 PID: 3793 Comm: qemu-system-x86 Not tainted 5.11.0 #1 [ 97.518335] Hardware name: GIGABYTE MZ01-CE1-00/MZ01-CE1-00, BIOS F02 08/29/2018 [ 97.525849] Call Trace: [ 97.528385] dump_stack+0x77/0x97 [ 97.531832] kvm_vcpu_gfn_to_memslot+0x168/0x170 [kvm] [ 97.537172] kvm_vcpu_unmap+0x28/0x60 [kvm] [ 97.541548] pre_sev_run+0x122/0x250 [kvm_amd] [ 97.546132] svm_vcpu_run+0x505/0x760 [kvm_amd] [ 97.550806] kvm_arch_vcpu_ioctl_run+0xe03/0x1c20 [kvm] [ 97.556251] ? kvm_arch_vcpu_ioctl_run+0xb9/0x1c20 [kvm] [ 97.561780] ? __lock_acquire+0x38e/0x1c30 [ 97.566031] kvm_vcpu_ioctl+0x222/0x650 [kvm] [ 97.570585] ? __fget_files+0xe3/0x190 [ 97.574459] ? __fget_files+0x5/0x190 [ 97.578254] __x64_sys_ioctl+0x98/0xd0 [ 97.582130] ? lockdep_hardirqs_on+0x88/0x120 [ 97.586625] do_syscall_64+0x34/0x50 [ 97.590331] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 97.595521] RIP: 0033:0x7f728ffeb457 [ 97.599222] Code: 00 00 90 48 8b 05 39 7a 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 09 7a 0c 00 f7 d8 64 89 01 48 [ 97.618277] RSP: 002b:00007f7287ffe7e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 97.626029] RAX: ffffffffffffffda RBX: 000000000000ae80 RCX: 00007f728ffeb457 [ 97.633315] RDX: 0000000000000000 RSI: 000000000000ae80 RDI: 0000000000000015 [ 97.640595] RBP: 000055d927433480 R08: 000055d924adb278 R09: 00000000ffffffff [ 97.647877] R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000 [ 97.655156] R13: 00007f7290939004 R14: 0000000000000cf8 R15: 0000000000000000 diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 17adc1e79136..76f90cf8c5aa 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2723,7 +2723,10 @@ static void pre_sev_es_run(struct vcpu_svm *svm) sev_es_sync_to_ghcb(svm); + svm->vcpu.srcu_idx = srcu_read_lock(&svm->vcpu.kvm->srcu); kvm_vcpu_unmap(&svm->vcpu, &svm->ghcb_map, true); + srcu_read_unlock(&svm->vcpu.kvm->srcu, svm->vcpu.srcu_idx); + svm->ghcb = NULL; }