Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp3598596pxu; Tue, 15 Dec 2020 10:38:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJzj3pvCoGQViiOGknSx7+EVzYWGiZy2i0MFGrcq1TMB72m+BJPXgKS6BfICxQedd7iv8XtR X-Received: by 2002:a17:906:f905:: with SMTP id lc5mr28083331ejb.177.1608057484925; Tue, 15 Dec 2020 10:38:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608057484; cv=none; d=google.com; s=arc-20160816; b=Hft5B3D3mWxB2icgAtqwG8ddbz2HX8w+ujNZis2dNMcsf2IIpJxMJpeBW6ZBj1HULg L9W4OrtECM8AbcWewrRZiA/FuCd3w537WTrcmsqeKVSOtFQy4QikAOeWdjyn3BCMMK5t K6PSQHTBDb8lVa/MILUbhuxq8hUj452Jg8YqCz5b43NpSQLbjUiVieME/epCj3/iCaJF E3zxtBeJgTDmjcrfFkyO/fV3gYAHHWD+V5AMQTEACo9CweSMTHM1Tqx+3gQSEuQCmaQy Hn5F3nO+dwlaDyH03/UurNoKZPbHsH9T+Z8MyQTV/AKhd97H6xXRrHm2yibHvHsi4RQc 0SgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=j5Nx3QP2QUef7kqAsxxArhCJKbbh/sB4VAtuIgHpzAY=; b=WPYKJPP6edT9hS2M9x+5mAwO3hhZbga7R3cHVbMv5nOAe7yVRAQOGiYquLguwd1Tpw YjMhmIWPyEn/du6tliECkycpQyNpC76CxC9Lic+cozwP3ncDWea4ojuCqVeAeFsSBrmd PRpKgd3Iv2IYrjQvOmKeTgid1tMEFrv4rxYOIhFHz0PsVTmSeIdhmxTS5tRyOdpBE9tv q+3jdt0Jpg8BtQgMWNMyLUwIglKXZeq56iqk/3DE2N6q/xr8E8Uknu/vtTVtejV8XHhO f7H1SjLnDVt133JJYmeWJK0PzX8jS0HqurvnpjVy7Di0ClJPJ1Z4kHUmpTyOcr0o2u8f K+2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Gt7wfw6z; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f5si1361818ejd.332.2020.12.15.10.37.41; Tue, 15 Dec 2020 10:38:04 -0800 (PST) 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=@gmail.com header.s=20161025 header.b=Gt7wfw6z; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731661AbgLOScl (ORCPT + 99 others); Tue, 15 Dec 2020 13:32:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51232 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731227AbgLOS3a (ORCPT ); Tue, 15 Dec 2020 13:29:30 -0500 Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com [IPv6:2a00:1450:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C0B2C061257; Tue, 15 Dec 2020 10:28:16 -0800 (PST) Received: by mail-ej1-x642.google.com with SMTP id w1so24451436ejf.11; Tue, 15 Dec 2020 10:28:16 -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=j5Nx3QP2QUef7kqAsxxArhCJKbbh/sB4VAtuIgHpzAY=; b=Gt7wfw6zKOz9640y+Pkyf7QD3YEYbL7AQxcBqBO+4SznKXSUJ40g+lwnP5nWJwL2gr vWCstbyjibsJ8zQNhOazJEfK2f5z18NyuSluEErqBgrAv/3/4RZ/ZWP8XqNHszdV0Xkn cd44ru/YuoUualt+VyBZIoC6mpTMCYHyeygE5SN4ltcm6YMbvHIvA3pHEWankX8GZRmM cZJMljLFsGlnnaUhVSFQFz+uUEcpoVQKYFohpydv5SosJh7S/5pXymYeJW8mgYQE/0+X 0PHOpoMPxSRr3qtOVxjIUZmtfLLGRiLl4Irv1THjXn0SHQDPNvxPs+JPO27jzgW4pb/T 54vQ== 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=j5Nx3QP2QUef7kqAsxxArhCJKbbh/sB4VAtuIgHpzAY=; b=I9SXv/yUbLFn9yya9or8VVc7yB6BBB4K+A+gg/WREW0slRuLaBc9LTT24Msz2S6Ssg YaKr/4NBdoCPsqEMzSWps49/WZ9gIh5d5K2sDUDNBXlc6xT3OZSnWbSIfpxB1Fu+faA7 Ap2xxxzdcJ8uT0j/1Qn9xgU3tvdpxRfRyyFgHANKuw8Gm3OVx0It2NhvRv89CXJJuBgs Bc2xBuwRDFTQlntZCNgdSWUPJTvppsopwWZb49+2u3Q4lj7+JADrpalA5RAqC6gzKS5u xv6VszMbJ8W7YmZ5LjPLJXf3em0Qn7w1ub5825tlszbJiFwaT50qCCwqwDi7XyrWf0tz bbgg== X-Gm-Message-State: AOAM532ssfylyL7gxnMhjwBoEoXs1I7tmS9/AHu5f8wNDe/xjorOnqoX ytmkUZuu36vVsR82vVC8rTE= X-Received: by 2002:a17:906:ce21:: with SMTP id sd1mr27506527ejb.396.1608056894785; Tue, 15 Dec 2020 10:28:14 -0800 (PST) Received: from localhost.localdomain (93-103-18-160.static.t-2.net. [93.103.18.160]) by smtp.gmail.com with ESMTPSA id r21sm7369228eds.91.2020.12.15.10.28.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Dec 2020 10:28:14 -0800 (PST) From: Uros Bizjak To: x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Uros Bizjak , Will Deacon , Peter Zijlstra , Boqun Feng , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Subject: [PATCH 0/3] x86/KVM/VMX: Introduce and use try_cmpxchg64() Date: Tue, 15 Dec 2020 19:28:02 +0100 Message-Id: <20201215182805.53913-1-ubizjak@gmail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series introduces try_cmpxchg64() atomic locking function. try_cmpxchg64() provides the same interface for 64 bit and 32 bit targets, emits CMPXCHGQ for 64 bit targets and CMPXCHG8B for 32 bit targets, and provides appropriate fallbacks when CMPXCHG8B is unavailable. try_cmpxchg64() reuses flags from CMPXCHGQ/CMPXCHG8B instructions and avoids unneeded CMP for 64 bit targets or XOR/XOR/OR sequence for 32 bit targets. Cc: Will Deacon Cc: Peter Zijlstra Cc: Boqun Feng Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Paolo Bonzini Cc: Sean Christopherson Cc: Vitaly Kuznetsov Cc: Wanpeng Li Cc: Jim Mattson Cc: Joerg Roedel Uros Bizjak (3): asm-generic/atomic: Add try_cmpxchg64() instrumentation locking/atomic/x86: Introduce arch_try_cmpxchg64() KVM/VMX: Use try_cmpxchg64() in posted_intr.c arch/x86/include/asm/cmpxchg_32.h | 62 +++++++++++++++++++---- arch/x86/include/asm/cmpxchg_64.h | 6 +++ arch/x86/kvm/vmx/posted_intr.c | 9 ++-- include/asm-generic/atomic-instrumented.h | 46 ++++++++++++++++- scripts/atomic/gen-atomic-instrumented.sh | 2 +- 5 files changed, 108 insertions(+), 17 deletions(-) -- 2.26.2