Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp263297ybz; Tue, 21 Apr 2020 20:24:21 -0700 (PDT) X-Google-Smtp-Source: APiQypIXl2jUPryGbf/kgcT5RN31FvljRNggE9Bpk4/Ce6817Fq+J7K3fliF2Tk35u6qqxmj+e9g X-Received: by 2002:a05:6402:1a33:: with SMTP id be19mr11332794edb.214.1587525861444; Tue, 21 Apr 2020 20:24:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587525861; cv=none; d=google.com; s=arc-20160816; b=ujtbUv5yt6Hg/pDivBjvwpOd6a2JQLrWVAK2cba97TTbQievn+erTPFhTaiwDXqVpp vJsacthF88OdTT/ZGwzgzG3ma7KKn7KmaVtlhPEEZD/J69V8yc0RSAT651eNtZD9z81C EqtreAhJYQjSKE740vRm1x6e07/97WwN6VkdgWbnfBJYTuVIqzETUoJ3mk3k2deijrmd xJTh573x5tHY/llkQt2SjOm436P0RqbEnx54gaPrMOFe/lf9L8s7G/0ZKkFDqGbnFhYz 5a4rlKS3UsHRLK/7mUbMJs8Xf4G+Ctph9idT106dxpUZJHnsmOz694kqKjbek/aWbeuL ok/w== 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=3ngwWNryn53mv5pf3kxdo+3CTU9h4WSyb9ORxIz0mDo=; b=rnaEXKmmOc8kamKATmvTmJF/9rcjI8SgaSxZ0wAUKrv0uFt+waBmcZNPC/jgB99TlQ pSVebRUKLjYw465lY3rm8ip6B7EXPkdgR6gFIvOb1kj8tRMtYtklyITo/MU0xnu0jeFF M6Ns4tjbAjeXFJBvtxIvZt7M/jCHfSSTUNTaadz1WdtPVHaWV3bSXBj8NSkg4/IuIT3E VxURssrLJyg3b/sNe0qsf4qkiQG+J0MF9Mk8L1+5xiE4HF8R1WgUthkts/Br+OQ6lxkI NBtckXRt02mRQAwuFFWSF9FkYowaa+hhZyND4Sh9ZwScK9lterIEqtojpoeQ4JD3P5I9 YAjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ffHScq1R; 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 k6si2650292edq.268.2020.04.21.20.23.52; Tue, 21 Apr 2020 20:24:21 -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=ffHScq1R; 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 S1726389AbgDVDWv (ORCPT + 99 others); Tue, 21 Apr 2020 23:22:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726228AbgDVDWv (ORCPT ); Tue, 21 Apr 2020 23:22:51 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA08EC0610D6; Tue, 21 Apr 2020 20:22:49 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id i16so460165ils.12; Tue, 21 Apr 2020 20:22: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=3ngwWNryn53mv5pf3kxdo+3CTU9h4WSyb9ORxIz0mDo=; b=ffHScq1RcJmx3bP5Ru5ifCLjCgE4UUmpBUUaHrF0ci728gEjOLaSzxbbUZsIkImI+d 1389lfc19T2o62fNbQwdfXzNcIL6c9HxDudSbtJmsy36/5VXNMHNbp5vNxc8oBc4Aemr jrgyS7FnmRVztOR+5/v7UZjd7stM2dRL+2yWul50ScFOEbXgULqM7xutrIqo6XLN+Swq ZIcu15X0Svf6wcNkn+3m3WrV2m/9sgFFJ8Bpod9AnCftroQz2tvkF8iErYQun9Qb6EBO /mfpD3VHT5W47hagPHTjxhjfhJc7R+9V99x5bvhLpliBD1d0n6wZxPrh6pUdVOWmDUxP ukkQ== 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=3ngwWNryn53mv5pf3kxdo+3CTU9h4WSyb9ORxIz0mDo=; b=euwdsPmkxhPjamWqDvS2YeESCmh2Ua+6AFblAPY8YkmboVRZhyRlQCehLh9V5s0Qqb elVudvR69OGT95/qnylo0w6cM9VxwWZvjyyNfiS1s8XbfQ6dBciw62mX85aEe5b1lr2I ZTrHS1X9eHfQMeiV17j7tBhC0bdIKCkUjMGWEVcVif/clTmsoIhEi8EeqAIpqUE2lO0i igMbUKjdc6ya6IyLPCcfWqEd5b4bgYMmzzXPu+4FUMpn70YTHC+Jc7c134L9ov8lRw1o aBEx0dmJduQs7OyyvlR1sutK1mh5QC8PAjn5oS4yaphucl6p+eb6FOMBcU/sYekE6+4b B7og== X-Gm-Message-State: AGi0PubqsjC74IzLiuiTi7dN1TBSjj7bFQIWgB88C/CNh//Flnx6Gs9M O+EStw6U5cfIsxJtUydmImcc6pWzbCL9H8q/NA== X-Received: by 2002:a92:41c7:: with SMTP id o190mr23768272ila.11.1587525767232; Tue, 21 Apr 2020 20:22:47 -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: From: Brian Gerst Date: Tue, 21 Apr 2020 23:22:36 -0400 Message-ID: Subject: Re: [PATCH bpf 1/2] bpf, x32: Fix invalid instruction in BPF_LDX zero-extension To: Xi Wang Cc: "H. Peter Anvin" , Luke Nelson , bpf@vger.kernel.org, Luke Nelson , Wang YanQing , "David S. Miller" , Alexey Kuznetsov , Hideaki YOSHIFUJI , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "the arch/x86 maintainers" , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , Andrii Nakryiko , John Fastabend , KP Singh , netdev@vger.kernel.org, Linux Kernel Mailing List 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 3:32 PM Xi Wang wrote: > > 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. You should explain the reason it is invalid, ie. the instruction encoding needs a 32-bit immediate but the current code only emits an 8-bit immediate. -- Brian Gerst