Received: by 2002:a05:6a10:6006:0:0:0:0 with SMTP id w6csp598259pxa; Thu, 27 Aug 2020 10:24:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyIGRny1FfJ6C8cSG0bYvySzRWJ53zxZ/iovqHAEuNPivroNnQaMU4RSdw8sAp/wuVbdzcK X-Received: by 2002:a17:906:6b87:: with SMTP id l7mr21073832ejr.198.1598549081856; Thu, 27 Aug 2020 10:24:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598549081; cv=none; d=google.com; s=arc-20160816; b=agz8krlXtwqoKl9SWsRrOXFcJ9HcMiFLt3AQwQXXpMjNr9gSKWgnwhCPYCInigRyXz +KYH+c4QBRzvW29PLzltZoTNNQs2W2zealQFNY5lKEt7faMLYMTN+DTdB/LvUdkGMpzi 1p5JgQiu3LBKqJDMLSFdRYNdDoYknJkfhyP5f7E+LtKD2EKG2/bZPVvesVJxkppYAJYA REbi7b3Yf/Ka6Uy5gTelh1L8fyth18/9b9DcdB1liE1iuhNtCflY486xTkt2ZvlF8kct ek5T9OHeKSTyUHZufQEj6Qi8yEu0sNhVkb3cgzg4PZpUJVZ+Lr2/XYFi9T0zEL4bpb6l 5EZg== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature:dkim-filter; bh=HtKzMWcGf0eTXP3nJrlnaKLERUTkD4jutWMdC6a19wE=; b=EoJQImRdPf4Bkf0vIqCJssUK5dhOoPOuwVCeG61L0DVp5ZQaGc8olNbb0Hsed6B1QX trn8GS2cqEhCpsdFhuNeHW4FJInY1iafwPClc/J9tL3M4ApuwpasbcPvp1a0lo56SUnj wN5xTMqB1I35D58rZFPo5fYG3TPkyTPKap+wdCiTjC41bsBf5QmmCdPZfF9iur5yuDSj gm1v3LZfYrvggUTwOonAHnItdeH3Gdsir1Hmc/xgyB/64jgARnebtbjSz5dpN6lNnJki 0qNEmJKvrYywNr276zflF73OIqcOIpz3a15HDI5X5chythnNfGOzsgQexjKPItkaAYs8 TA/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zytor.com header.s=2020082401 header.b=elw5HISj; 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=zytor.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t9si1874385eji.436.2020.08.27.10.24.18; Thu, 27 Aug 2020 10:24:41 -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=@zytor.com header.s=2020082401 header.b=elw5HISj; 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=zytor.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726826AbgH0RXq (ORCPT + 99 others); Thu, 27 Aug 2020 13:23:46 -0400 Received: from terminus.zytor.com ([198.137.202.136]:51521 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726157AbgH0RXq (ORCPT ); Thu, 27 Aug 2020 13:23:46 -0400 Received: from carbon-x1.hos.anvin.org ([IPv6:2601:646:8600:3281:e7ea:4585:74bd:2ff0]) (authenticated bits=0) by mail.zytor.com (8.15.2/8.15.2) with ESMTPSA id 07RHNJFu175188 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Thu, 27 Aug 2020 10:23:20 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 07RHNJFu175188 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2020082401; t=1598549000; bh=HtKzMWcGf0eTXP3nJrlnaKLERUTkD4jutWMdC6a19wE=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=elw5HISjayV8InOzrwCGHVkYEeyFbkAEIbIW3Ja9hxd4XomdZ3BWLNS6L5gb4gZRd mT2SzU9Ns+67w3ccqJxsOsZxGN0nF0y5Sz4RyRqdyO/orz3qnI0ZuK2sh8nlRHi018 10DGvz6Ry8TDcxzUcb/sttlL3P0xMvqwzSpsmPoBbP04AMiIWTHdnqjpOkms1IT5tS RUlfhzpWJSxsoAJcuAjmSblqPyTHoxtxJi317fISNrYyNNYR8e0e0lj6FU+uIiIhj4 fB963XgC4Fc6mgJev6zrG+MphBIg9ShF/43lXtzy40o8ttlY+9cHCkFx5vDJbFwo1l nJkXy6zfNvG7A== Subject: Re: [PATCH] x86: Use XORL r32,r32 in __get_user_asm To: Uros Bizjak , x86@kernel.org, linux-kernel@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov References: <20200827164905.88235-1-ubizjak@gmail.com> From: "H. Peter Anvin" Message-ID: <5a0def3d-f8cf-5ee4-62c7-be61c4022401@zytor.com> Date: Thu, 27 Aug 2020 10:23:14 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <20200827164905.88235-1-ubizjak@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-08-27 09:49, Uros Bizjak wrote: > Use XORL r32,r32 for all operand sizes. x86_64 zero extends 32bit > operations, so for 64bit operands, XORL r32,r32 is functionally > equal to XORL r64,r64, but avoids a REX prefix byte when legacy > registers are used. Please make it clear that this refers specifically to the use case of both registers being the same, for zeroing. This could otherwise be misread. "xorl r64,r64" is nonsensical: you're referring to xorq. The apparent visual mix here between Intel and gas syntax is also confusing. I would explicily say, using gcc inline syntax: xorl %0,%0 is equivalent to xorq %0,%0 as both will zero the entire register. > 32bit operation also avoids 0x66 size prefix for 16bit operands > and REX prefix when %sil, %dil and %bpl 8bit registers are used. > > As a bonus, 32bit XORL breaks register dependency chains, avoiding > potential partial register stalls with 8 and 16bit operands. Please make it clear that zeroing the full register is OK in this use case (which it is.) > The patch lowers the size of .fixup section by 20 bytes. -hpa