Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp678238pxb; Thu, 21 Jan 2021 17:45:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJyC6gZ0xdcEsQ6mXlwis9hIPANr68V+Fq/aQ69qUmBKi+KBY/hILmoLMqdF1WNd7REGqvo7 X-Received: by 2002:a05:6402:312e:: with SMTP id dd14mr1508970edb.366.1611279952959; Thu, 21 Jan 2021 17:45:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611279952; cv=none; d=google.com; s=arc-20160816; b=wb1scz+REd6cKvXoJgHs4qkYA4okpdYJ6XNS1pqr20bbJwdhpCy+sTASEKsW3GhVth Q+dCOLesmYv3wNnBA/PAP9UKr73da/5GxL1Hts5sx7fAmJyLjd5vaFwgoaf5aJkYxSUi DYP8enWH5d1PdXlrKtd9stgZKRJ2v/CTJ3mpE98Y8X3FUsUxAWr8kN2QXhw0I/5qAnpX pPKQtaCNzHucQ0BdgkUeMep3Zrtj9lxRaRqeYXzR52rJVily+nv5qog0QWzpoyXUG+Dw PATd4oS3Dj3kLyVbOy+ihZ8CD9L2gai3BNLU5kNets7P4tfvRODsz+lpOpFc6FiQMtA+ +wlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=JHmsyWW/3ORqzCCxIgYU3HZ6BJYN5rvOhQgY5Vhnihs=; b=AId+5IC8rFK+esoQAKqT3hIm9+rPpPpCVvZuNQc8u3cqC4yVvhMvRE9SB1OiF6qwRq uuUMH6Y6brsgiwP3lFzFF5w5s7gmMQZE1Jxh8ksqwde8ONbFFxm/fHwZWp2w/+gnH1HO GnchDV/YGnOtuWyAFVE+ScX2Ry3XuHgSuldxNJlz0VAINia1PWe8QPojvdpfVoT9SG0s rdHs4vMV2KOXy2GTTGvF3Vwmk23RzKq8TfLFZSumUaCiPtympIdmOT4xfLJt9LL8yV5+ cYqr1srIreall3UjNSXtAWoBtUonvS2DRqvuWUa2PWxMQFwuaLNuU8bhGNJ58HCEFwic 3ZYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="Cn+/rff9"; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t16si2948864edi.338.2021.01.21.17.45.29; Thu, 21 Jan 2021 17:45:52 -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=@google.com header.s=20161025 header.b="Cn+/rff9"; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726560AbhAVBnr (ORCPT + 99 others); Thu, 21 Jan 2021 20:43:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726468AbhAVBnm (ORCPT ); Thu, 21 Jan 2021 20:43:42 -0500 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F481C06174A for ; Thu, 21 Jan 2021 17:43:01 -0800 (PST) Received: by mail-pg1-x533.google.com with SMTP id q7so2606377pgm.5 for ; Thu, 21 Jan 2021 17:43:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JHmsyWW/3ORqzCCxIgYU3HZ6BJYN5rvOhQgY5Vhnihs=; b=Cn+/rff9XjSf2PVRZ9I1XCBKIEto0f9KuoUnZTnmqqD1QOlEhW9ZnZite85Ce738Wi 8tocw6/MX2KaI+LYQUBK+8KNwsMiya4AOtiAzmjUNZCcjnW+pXKesWB7j7oaqfA8fmPn f5q6fZzknZHyEX/A3sV1Q8bl3TaHZeOaxDmwfwOoSyMGENEcreRpMKO4hR8qNAZdyEN+ Nlzqmhi+G9ajLzflu/7YuqZZ8AIxDh7OgmCKeK0onxi5FroP4jZNtoUqnSGO6iZu/VWj B/uvlnOmQJ1KmO8gg4jWUSWeN2NiBYX4wtlWKHETI+zFZPGwsA/PmAG6t9Qd1MXUNWsq vlJg== 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=JHmsyWW/3ORqzCCxIgYU3HZ6BJYN5rvOhQgY5Vhnihs=; b=Q2AuL5WYA4nLjv6Xsz7wZ5fqsmfwxC8pOPAqMpQ/xZ1FXxUBL/Tpi7JHara4SyDy/v 7/00oCwupN8OEGnF8rJLRfuRZsvy9cocj275/PIKpe8H5BBi3hirvkiLLhyXJ9uMAZOO iilhr3sGUalqlUajU6AR6z1cmAmbVYiSbqVMtWwqNNcmnCgtUrrh85kTLVEy4wqh2ikl /ykub4GL4w8/xRhuj1f6ZT4I9XC0DX0ulsu808DHdB1496ZL4wT1GhgI8o3PFOaiq2Pp SJm4tGBJXUpSh7yx5xVqRH34LAGhKTdDioqQS/fWxyc/mvqqrOp/QWvWM53ZOhXzcbq4 BlQQ== X-Gm-Message-State: AOAM533sOycgBGlimKrfxztiWDZ+v3+Pr7ariSq0gfKJeHxzmrT98Azg hY4s/vCUldCnaNnI0y//CAzRjncb0nSSqB1FtQ3Nvw== X-Received: by 2002:a62:7896:0:b029:1b6:7319:52a7 with SMTP id t144-20020a6278960000b02901b6731952a7mr2450111pfc.30.1611279780913; Thu, 21 Jan 2021 17:43:00 -0800 (PST) MIME-Version: 1.0 References: <20210113061958.886723-1-morbo@google.com> <20210116094357.3620352-1-morbo@google.com> In-Reply-To: From: Nick Desaulniers Date: Thu, 21 Jan 2021 17:42:49 -0800 Message-ID: Subject: Re: [PATCH v5] pgo: add clang's Profile Guided Optimization infrastructure To: Sedat Dilek Cc: Bill Wendling , Jonathan Corbet , Masahiro Yamada , Linux Doc Mailing List , LKML , Linux Kbuild mailing list , Clang-Built-Linux ML , Andrew Morton , Nathan Chancellor , Sami Tolvanen , Fangrui Song Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 20, 2021 at 6:03 PM Sedat Dilek wrote: > > On Mon, Jan 18, 2021 at 10:56 PM Bill Wendling wrote: > > > > On Mon, Jan 18, 2021 at 9:26 AM Sedat Dilek wrote: > > > > > > On Mon, Jan 18, 2021 at 1:39 PM Sedat Dilek wrote: > > > > > > > > On Mon, Jan 18, 2021 at 3:32 AM Bill Wendling wrote: > > > > > > > > > > On Sun, Jan 17, 2021 at 4:27 PM Sedat Dilek wrote: > > > > > > > > > > > > [ big snip ] > > > > > > > > > > [More snippage.] > > > > > > > > > > > [ CC Fangrui ] > > > > > > > > > > > > With the attached... > > > > > > > > > > > > [PATCH v3] module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for > > > > > > undefined symbols > > > > > > > > > > > > ...I was finally able to boot into a rebuild PGO-optimized Linux-kernel. > > > > > > For details see ClangBuiltLinux issue #1250 "Unknown symbol > > > > > > _GLOBAL_OFFSET_TABLE_ loading kernel modules". > > > > > > > > > > > Thanks for confirming that this works with the above patch. > > > > > > > > > > > @ Bill Nick Sami Nathan > > > > > > > > > > > > 1, Can you say something of the impact passing "LLVM_IAS=1" to make? > > > > > > > > > > The integrated assembler and this option are more-or-less orthogonal > > > > > to each other. One can still use the GNU assembler with PGO. If you're > > > > > having an issue, it may be related to ClangBuiltLinux issue #1250. > > > > > > > > > > > 2. Can you please try Nick's DWARF v5 support patchset v5 and > > > > > > CONFIG_DEBUG_INFO_DWARF5=y (see attachments)? > > > > > > > > > > > I know Nick did several tests with PGO. He may have looked into it > > > > > already, but we can check. > > > > > > > > > > > > > Reproducible. > > > > > > > > LLVM_IAS=1 + DWARF5 = Not bootable > > > > > > > > I will try: > > > > > > > > LLVM_IAS=1 + DWARF4 > > > > > > > > > > I was not able to boot into such a built Linux-kernel. > > > > > PGO will have no effect on debugging data. If this is an issue with > > DWARF, then it's likely orthogonal to the PGO patch. > > > > > For me worked: DWARF2 and LLVM_IAS=1 *not* set. > > > > > > Of course, this could be an issue with my system's LLVM/Clang. > > > > > > Debian clang version > > > 12.0.0-++20210115111113+45ef053bd709-1~exp1~20210115101809.3724 > > > > > Please use the official clang 11.0.1 release > > (https://releases.llvm.org/download.html), modifying the > > kernel/pgo/Kconfig as I suggested above. The reason we specify clang > > 12 for the minimal version is because of an issue that was recently > > fixed. > > > > I downgraded to clang-11.1.0-rc1. > ( See attachment. ) > > Doing the first build with PGO enabled plus DWARF5 and LLVM_IAS=1 works. > > But again after generating vmlinux.profdata and doing the PGO-rebuild > - the resulting Linux-kernel does NOT boot in QEMU or on bare metal. > With GNU/as I can boot. > > So this is independent of DWARF v4 or DWARF v5 (LLVM_IAS=1 and DWARF > v2 is not allowed). > There is something wrong (here) with passing LLVM_IAS=1 to make when > doing the PGO-rebuild. > > Can someone please verify and confirm that the PGO-rebuild with > LLVM_IAS=1 boots or boots not? I was able to build+boot with LLVM_IAS=1 on my personal laptop (no dwarf 5, just mainline+v5). > > Thanks. > > - Sedat - > > > > Can you give me a LLVM commit-id where you had success with LLVM_IAS=1 > > > and especially CONFIG_DEBUG_INFO_DWARF5=y? > > > Success means I was able to boot in QEMU and/or bare metal. > > > > > The DWARF5 patch isn't in yet, so I don't want to rely upon it too much. I agree, providing test results with patches that haven't landed yet can cloud the interpretation of results. It would be helpful to drop local patch sets before trying this. If the resulting image still isn't working for you, can you please provide your config? Surely we'd be able to reproduce boot failures in QEMU? Nothing comes to mind about a change of assemblers causing an issue; I would assume assembly cannot be instrumented by the compiler (even though the compiler is the "driver" of the assembler). The hash warnings are certainly curious. IndexedInstrProfReader::getInstrProfRecord() is the only place in LLVM sources that can emit that. -- Thanks, ~Nick Desaulniers