Received: by 2002:ab2:620c:0:b0:1ef:ffd0:ce49 with SMTP id o12csp1453043lqt; Wed, 20 Mar 2024 04:46:08 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVf4CPAojSnGqN1wNysN67YZBR3kgqXjOKB+u3cfsI5Wb2IAorkx3XOQ+VpZ57S3Wzo9yYDGb9rBvkBAmWaNse6Pt3H0lu8NOrMMGFoAQ== X-Google-Smtp-Source: AGHT+IFJ0puYPGklwj7prjaNzgMbbnnpBV5tT3jos9c1vJ1CjYdNIInF/0MoICpb2VATjd8CmyN8 X-Received: by 2002:a05:620a:850a:b0:789:ec2c:1f4 with SMTP id pe10-20020a05620a850a00b00789ec2c01f4mr5419680qkn.42.1710935168507; Wed, 20 Mar 2024 04:46:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710935168; cv=pass; d=google.com; s=arc-20160816; b=iEPX1LL76+0ydeuCNEM+LoT0KDvZOipS0fWa3i6e5ZyuHgJpNlXHW0fgm3kfnDairL XZbVcdMHxDE88vWPYh6r2E15pFNiOJ95cORhv7uAzTN8T0vydVEKgRD22ig4MnwEPya2 IGL1eRuEK3kjCHBdixZKeTkvh0L6S5MhyI1HJegWEBbNcCbaynMkUpCjw3UqHlqK9UPg TK2jCO3lRsa+ac/Ts9Kyepa0wA2bCI29/H9poBixN9dBtyXhIZl2bCcs3IAw1MX22nX6 dKDs+BawEi47v3f4KdsenMVoDX83Nl/6uxLQZndcVnLJ+bJfJoRz6v8XH29cFUriryIv 0IFQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:sender:dkim-signature; bh=v321yfLmo8GBQ/y8FJ9LR+n1jyv6fOuhCRdabZc9zbA=; fh=bHq6g71k7vvg3nHcAENo13Id9n3Y7Y9iH3JAeluGdd8=; b=d1n2ve3Pvi/iH56izzGG1Ebn9huEurx3XK3JB3ORhqVO5fP1aiRn2VXYBRFo2i9GHu jjvIk0PYmeqlCOeVUEooqDusmLjrZwNi53awTwhCTB1tGzRqE0c3OAPIKzhLOM0dI2OB WMBPFewOnK8i+SY4uCPITkD+broqqfAsYP/8mlLiDI0Vn4/abnU+z5UK5N+x4X2nJpK4 /Llw35BKr99nFCbqBXP6jb6S4pXn/Sl3yCjZiYgoYC/C5V/e68I5W++DgrE8xOE0zoud SLQIT7eQpTlOLnD8Ovd0pnGyFYUmz6Nvn3A2hgmdFVu5WW8xFnKSo49ABkUOPpjPBsVo PDVA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ewiHOs1w; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-108871-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-108871-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d20-20020a05620a205400b00789fb8d83d4si6711422qka.545.2024.03.20.04.46.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Mar 2024 04:46:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-108871-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ewiHOs1w; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-108871-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-108871-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 3DAD31C226B1 for ; Wed, 20 Mar 2024 11:46:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 845223EA8D; Wed, 20 Mar 2024 11:46:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ewiHOs1w" Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E85B73DBB7; Wed, 20 Mar 2024 11:45:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710935161; cv=none; b=sDg361HS0h1xTrYi7q6WWd30N3VWg+pmDmCieaDtdjN48Z/etp/wX8cWTeEZmBKHR5xEa2ysIZQfFTBBVecgggodQNOZkMhmcDQ5e4H86OJjbrEZNEla0aNXmoz+l/Z1s/UVW+zvuoybuo0UmatIYkislWsrRhHr+4FeL93WayU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710935161; c=relaxed/simple; bh=01oY2je8eUOPUwF8l+M2wheZEGh5GUw6lBQ6Dq+yEmk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Dlxn2HJl3fLm3nkrIwM8Fc7KohWjZLQ0znDVesqNV7+7cqi9E7ocI4fBBX/qYHsGeRdAxS+BACfbkGpCmbAXPmX0sSm/An/EXn06o4CGtTadWfhgI1aaha7CAHhzTBSpCzWsy+tqReAvKVmRp90wTPOYUz2RFgRvZsYiIl4QF9s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ewiHOs1w; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-33e162b1b71so5600711f8f.1; Wed, 20 Mar 2024 04:45:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710935158; x=1711539958; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=v321yfLmo8GBQ/y8FJ9LR+n1jyv6fOuhCRdabZc9zbA=; b=ewiHOs1wF0IUyDLCJRvJ3oQaCmAY81+I4h/uKzaR+Rd7UVQE/309YT0tnxaaQF0rT/ pLgbgNbq4ghIT1cxYNnhdqh0ulJYv5stUhhI1vsubExIUrTUDBgUetnm2rIwdF4XftTE 2oEpUVY39O9QThJjUcYcS4aY6oJBqbNJNq0cFYoJuoKkoPlGj60SJk06Zeh6kJfrv0l0 RbvRWAZjbmR9v9xyM69gPpswCXzylABqYzf4MNkoyjW7KC7Wr/ztxMHAh7KAMzW2tX5C tdnGryJnBZtetSpXe3Maru6/A2dj9Ludl/ORFZ1x+46PMBkHWw4v23gynfgnFzp0dHEG mbuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710935158; x=1711539958; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=v321yfLmo8GBQ/y8FJ9LR+n1jyv6fOuhCRdabZc9zbA=; b=a+Cd7vGSPzhrAucoFtsQQ9A+DUe/UUgPcTbbDF0MIPvNr0jFH34HN5H6K70QbAXa2A dabFXtNnVx8RTq40yE7D6nBhod/EInJyL8VBa1ZAGaIcgRpUHdDoMNXShfHHpyt9QipA 2bNQWVgVsRVYyLph+trjtwOisQM6G9YDihiGPkD+5JSu431Hl08vmgpCUf/3cEmZiSk/ iOtzNNJVf4d83EHcS3f7ZheVdoduQm4kXRGCoKAGC0LBsnsl8VZ1z/0LYjWDArdb50rT Wxaer0majv1ztM5SYYvb3plpXzGxhXfZo+n+lye4MCIYcfTAAtjvkkmdLgoJOt3UjPBf 15hg== X-Gm-Message-State: AOJu0YyCpEd5k9w3pU8qTLPaojIT7OvqpaG3oy/Fr/egDmbEewv4P6Ph NMLvE3CYh7SbQ4cRJyLAUVXKTYrNR/nYWc6mSMqAzvpZ9860W5tKgc4MM7NXUtA= X-Received: by 2002:a05:6000:544:b0:33e:bf0f:8156 with SMTP id b4-20020a056000054400b0033ebf0f8156mr3563811wrf.38.1710935157831; Wed, 20 Mar 2024 04:45:57 -0700 (PDT) Received: from gmail.com (1F2EF04C.nat.pool.telekom.hu. [31.46.240.76]) by smtp.gmail.com with ESMTPSA id az1-20020adfe181000000b0033ed7181fd1sm11741024wrb.62.2024.03.20.04.45.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Mar 2024 04:45:57 -0700 (PDT) Sender: Ingo Molnar Date: Wed, 20 Mar 2024 12:45:55 +0100 From: Ingo Molnar To: linux-kernel@vger.kernel.org, Uros Bizjak Cc: linux-tip-commits@vger.kernel.org, "H. Peter Anvin" , Linus Torvalds , x86@kernel.org, Nathan Chancellor , Kees Cook , Josh Poimboeuf Subject: Re: [tip: x86/percpu] x86/percpu: Convert this_percpu_xchg_op() from asm() to C code, to generate better code Message-ID: References: <20240320083127.493250-1-ubizjak@gmail.com> <171093476000.10875.14076471223590027773.tip-bot2@tip-bot2> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <171093476000.10875.14076471223590027773.tip-bot2@tip-bot2> * tip-bot2 for Uros Bizjak wrote: > The following commit has been merged into the x86/percpu branch of tip: > > Commit-ID: 0539084639f3835c8d0b798e6659ec14a266b4f1 > Gitweb: https://git.kernel.org/tip/0539084639f3835c8d0b798e6659ec14a266b4f1 > Author: Uros Bizjak > AuthorDate: Wed, 20 Mar 2024 09:30:40 +01:00 > Committer: Ingo Molnar > CommitterDate: Wed, 20 Mar 2024 12:29:02 +01:00 > > x86/percpu: Convert this_percpu_xchg_op() from asm() to C code, to generate better code > > Rewrite percpu_xchg_op() using generic percpu primitives instead > of using asm. The new implementation is similar to local_xchg() and > allows the compiler to perform various optimizations: e.g. the > compiler is able to create fast path through the loop, according > to likely/unlikely annotations in percpu_try_cmpxchg_op(). So, while at it, there's two other x86 percpu code generation details I was wondering about: 1) Right now it's GCC-only: config CC_HAS_NAMED_AS def_bool CC_IS_GCC && GCC_VERSION >= 120100 Because we wanted to create a stable core of known-working functionality. I suppose we have already established that with the current merge window, so it might be time to expand it. Clang claims to be compatible: https://releases.llvm.org/9.0.0/tools/clang/docs/LanguageExtensions.html "You can also use the GCC compatibility macros __seg_fs and __seg_gs for the same purpose. The preprocessor symbols __SEG_FS and __SEG_GS indicate their support." I haven't tried it yet though. 2) Also, is the GCC_VERSION cutoff accurate - are previous GCC versions known-buggy, or was it primarily a risk-reduction cutoff? Thanks, Ingo