Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp462936ybz; Tue, 21 Apr 2020 12:28:15 -0700 (PDT) X-Google-Smtp-Source: APiQypJTL0kMFA0ufMjM4Em1Q9dXWF/iB/b86KgBfUP0w/we8ZV4bnyv+PQy557f4jdCD5w57SHo X-Received: by 2002:a50:e841:: with SMTP id k1mr19828313edn.245.1587497295402; Tue, 21 Apr 2020 12:28:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587497295; cv=none; d=google.com; s=arc-20160816; b=DWF4g46DyZXYn0lXOu8X4W5FQ//lNzOLPQ6GF78ctQEVjteDGFOJ/3ciKAPJo7NFes fJtX1U8k2bDSOU+QnHNQgbI5Q45cEbtwadwMMfRexlcQKVeMN3zWd5W+i91Y14DKhJ1p d8EF0sJsl9lxaQ63q6mKw7ofFfELFe1HWLC5oJPFv1f++ngH+Zm7beLTpvr53ao50nRV +8RhMAH15EYnS1jdq6v1lUpZHfhr1KJzO0g887anDqAuYr/ZM6bx2xAp+z/A/vFvw8Q7 dHMp7m7iycOh7xPG0ZMi0IwScPVFD2YovoD6u4hiM35mfdzxsMU0kbNzUjtiWzTUX2c+ wMOw== 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=idTKxWpEYXSpWMVyn2696fqjJ0Ry7jBlA9LPzj52ir0=; b=NmY8+q8A5qwGsAJteH6ie+tYL/kBXJsyDtQOLGDnxSzcKHZueYJ8Zd7jsUa6Lisy2F MhYYOajdbJSLjbKIAbv8gQ9vTF/evg63nrH7eSbafOc2u3xnT1o4lvNwFRoaI3tvyll9 h4WUpOufmsbrfS2QGuTcuP26dndi7kAare+6yIEicHdlSRAZDU9R1txSF/6XZ27oSWcN OgLaBFRQUH7447UXWemUdinZLZh5+XiPnUxR65sg7rrpopZ6rRNU/Uf2XTCnBFdkeDGe OxGKlbSIAzHbTn9jWja3OXZkIojw+PbDtlaoBeDLozvveLtGKG3BspnuUmGIdu84RyIL 6mrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=FSrGDRnz; 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 3si2285231ejz.2.2020.04.21.12.27.52; Tue, 21 Apr 2020 12:28:15 -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=@gmail.com header.s=20161025 header.b=FSrGDRnz; 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 S1726195AbgDUT0v (ORCPT + 99 others); Tue, 21 Apr 2020 15:26:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38352 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725902AbgDUT0u (ORCPT ); Tue, 21 Apr 2020 15:26:50 -0400 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EACB0C0610D5; Tue, 21 Apr 2020 12:26:49 -0700 (PDT) Received: by mail-ej1-x641.google.com with SMTP id k8so3525772ejv.3; Tue, 21 Apr 2020 12:26:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=idTKxWpEYXSpWMVyn2696fqjJ0Ry7jBlA9LPzj52ir0=; b=FSrGDRnziT2sbgdhl+Ig8+exvCHWQV4xq20QWOQWHknyMnYuhzK19fDo+s3GWbBlvH ePPjKY3vfs21mKR1ShEnjLfwyPd4PQlI7tqynuAXnRNhGABVpS9in2rWv3B4u4nCS/d7 CDQncWQC/B5aGHPHmNf7DrwVSC2dg4QuJydV6uUf45pwNzjizDffAJaXlpUnWyq4AUnG p2TxW/7s55su2urUvTwWo4j9oCcxUHFCYPquKp0kPkuUkAvGqG6qbC8LbJsvZVnbdB4m lU300xJheMMkNe1lTxfALNCmbgAQkeJ48llYhi+FY0at/8RRfmNJRarkni3JL4kHlAd7 iUAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=idTKxWpEYXSpWMVyn2696fqjJ0Ry7jBlA9LPzj52ir0=; b=X/c0R/R4uP2EMroOYXNvDw+zzEckGd/ErG0V+PoWfWsRJI2eBK88x4Z9STnD15z0CV wuU/nlJSsHpJvhl0qJEsP3Nd5E6/ytpRfHVXShjY0hRFyY9cMQr2l+U40GsKNsmzjEBW 9Mf6IDnRthG0FSZUSIYNMoXY1JSWSOzmC2MnL3DOWVRczsYJJ42yF6/9VCMnNb15AMvF 40knkWKQ59laNdEjDXBzc606QWi9SDhVLy3Fuh8mkOTnRBA3sF4BVPiw75Aj4b0AzAQ8 9HHJ1yWzYX+YCSs0GuzXxsfBdViZAjPrr07N+cLQ9w9km4XogqSl7bj20hXlcB+Oc+d9 pjIQ== X-Gm-Message-State: AGi0PubruIhgEQTNqV8qcdj7RcEZXihnWgu9NxtPZ5PucRLn93qlUw8t OPg/B/WluLbu4dgzAI4VI/qfwynt5YHTYyqHdy0= X-Received: by 2002:a17:906:54cd:: with SMTP id c13mr21911261ejp.307.1587497208543; Tue, 21 Apr 2020 12:26:48 -0700 (PDT) MIME-Version: 1.0 References: <20200421171552.28393-1-luke.r.nels@gmail.com> <6f1130b3-eaea-cc5e-716f-5d6be77101b9@zytor.com> In-Reply-To: <6f1130b3-eaea-cc5e-716f-5d6be77101b9@zytor.com> From: Xi Wang Date: Tue, 21 Apr 2020 12:26:12 -0700 Message-ID: Subject: Re: [PATCH bpf 1/2] bpf, x32: Fix invalid instruction in BPF_LDX zero-extension To: "H. Peter Anvin" Cc: Luke Nelson , bpf@vger.kernel.org, Luke Nelson , Wang YanQing , "David S. Miller" , Alexey Kuznetsov , Hideaki YOSHIFUJI , Thomas Gleixner , Ingo Molnar , Borislav Petkov , x86@kernel.org, Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , Andrii Nakryiko , John Fastabend , KP Singh , netdev@vger.kernel.org, linux-kernel@vger.kernel.org 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 Tue, Apr 21, 2020 at 10:39 AM H. Peter Anvin wrote: > x32 is not x86-32. In Linux we generally call the latter "i386". Agreed. Most of the previous patches to this file use "x32" and this one just wanted to be consistent. > C7 /0 imm32 is a valid instruction on i386. However, it is also > inefficient when the destination is a register, because B8+r imm32 is > equivalent, and when the value is zero, XOR is indeed more efficient. > > The real error is using EMIT3() instead of EMIT2_off32(), but XOR is > more efficient. However, let's make the bug statement *correct*, or it > is going to confuse the Hades out of people in the future. I don't see how the bug statement is incorrect, which merely points out that "C7 C0 0" is an invalid instruction, regardless of whether the JIT intended to emit C7 /0 imm32, B8+r imm32, 31 /r, 33 /r, or any other equivalent form.