From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 550C1C433E0 for ; Thu, 18 Mar 2021 23:50:25 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AB0B264E99 for ; Thu, 18 Mar 2021 23:50:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AB0B264E99 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=E0acQf4RR3JSWTFgQH1Qv3e8JoFHr4PNFf3Unmc9XiQ=; b=D50zulkDa2qf2uf6lbN5Hkl9s 3q7Ojp73iHUmE1zMTXNdnqIuFopRoNgBKeOfTszy58S9eRoeQ5EjK/ibL5WvgJKmwPJfM0P8mm0NU GzY/NwJ3FtMEedQeU45N+omSaSIjV4H+ALRCrtvaiae0dNP1ahjVl9L1dsC2yICaWr/FjvRnq4dhl 8czZjum5AH5Zsrhy941qGrPKJ0QbBx3l5BhleGFp/NGvAEoewVBHf00uAYwyGnoNcR3inIePW9J5i kzYAEW4BxU470yjWIj57SBHOCUNFGDgyukh94QVQai+Tak2S1thPWiu7cuL6uz5nEp8Ygla4G4M9q C0V+g6MEA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lN2Ny-006C0H-1d; Thu, 18 Mar 2021 23:49:02 +0000 Received: from mail-vs1-xe2f.google.com ([2607:f8b0:4864:20::e2f]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lN2Nr-006BzW-RW for linux-arm-kernel@lists.infradead.org; Thu, 18 Mar 2021 23:48:57 +0000 Received: by mail-vs1-xe2f.google.com with SMTP id k14so2521571vsb.6 for ; Thu, 18 Mar 2021 16:48:55 -0700 (PDT) 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=w4SsUNnog1rCkxnTwPGBzmgfbYVmtvLwFsZIIDtRJ+0=; b=tODKum7fYlaP1p1/wInlRZv3OQMdfXJCpiBT7MtQvTeiTInxAIccKNZwbuStHykgX3 pRr40h9mudP1dFh48XCe0B1EMgnJcSgbjagFRqIbPF47JfIw3hqWAW02qmqzw4JIXudz snxbbOtqclC4Lv3msvK7EpgiJaio9ooDeRrV7xs3WxxWoANXDrrh620DCmhwBCkpz9VV DbB0XB7ayvEMnQzN/DRg2GCM/4XFWT7sKKJO07hT4K2b0cRrMSrUUreDquUusRAW5V4O NMWrcZjLq44F3N7hMmnke7yr9/YdGfdRQ9JD6SCye+TXaalPNgyyWzK8ZktScxsbGGoi /Mhw== 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=w4SsUNnog1rCkxnTwPGBzmgfbYVmtvLwFsZIIDtRJ+0=; b=V9AlRlqBSNl/tRbulHN1mOry3vjvkl4K1OibiUtudMiNW1lwfUTtIg1EiYN8bNfXwW MF11TN8/0DHZbkH4w9jzoC3tl5aPqZgeIOQcDS+WmBf5+G/Mxxd43u4GTAEzvP6kSTDt CjyL+aK+Fc8NpWRJDICg7HwehrMipn3fRYb97sR+ge7PjsmHEl+dcDamVsPheL2sseVn LLMyyr/8vsX72CkoTr/Ndgitw6b4cxtIqhhef6tOnt6JQghWcYIQFeBjGTQa/93CZfET H1jVJcTFAiMu8HBis8CgMEwREBB1spumA8rmTOEY8vav9Ce4dY6uXZvdt+bZzhMDn5MJ nXKA== X-Gm-Message-State: AOAM531EC9TcXG0kYfYaVmS+sCXQVdRgwr4qy73yAEhEVE7sP2S9vIfa +jtPd0qbzi+basF7KaczlQWEuC5nG7VjWNE8sLF2Fw== X-Google-Smtp-Source: ABdhPJzbqtERqnP82xx5uHkisRqkk8CIF+77aYgiFY0OIofKP/nQ8IPXRpr1qeG2yOzhWdw89ZfJnXTYr43XinbZUe8= X-Received: by 2002:a05:6102:124e:: with SMTP id p14mr1245907vsg.14.1616111334467; Thu, 18 Mar 2021 16:48:54 -0700 (PDT) MIME-Version: 1.0 References: <20210318171111.706303-1-samitolvanen@google.com> <20210318171111.706303-2-samitolvanen@google.com> In-Reply-To: From: Sami Tolvanen Date: Thu, 18 Mar 2021 16:48:43 -0700 Message-ID: Subject: Re: [PATCH v2 01/17] add support for Clang CFI To: Peter Zijlstra Cc: Kees Cook , Nathan Chancellor , Nick Desaulniers , Masahiro Yamada , Will Deacon , Jessica Yu , Arnd Bergmann , Tejun Heo , "Paul E. McKenney" , Christoph Hellwig , bpf , linux-hardening@vger.kernel.org, linux-arch , linux-arm-kernel , linux-kbuild , PCI , LKML X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210318_234856_135670_2E622576 X-CRM114-Status: GOOD ( 16.78 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Mar 18, 2021 at 3:29 PM Peter Zijlstra wrote: > > On Thu, Mar 18, 2021 at 10:10:55AM -0700, Sami Tolvanen wrote: > > +static void update_shadow(struct module *mod, unsigned long base_addr, > > + update_shadow_fn fn) > > +{ > > + struct cfi_shadow *prev; > > + struct cfi_shadow *next; > > + unsigned long min_addr, max_addr; > > + > > + next = vmalloc(SHADOW_SIZE); > > + > > + mutex_lock(&shadow_update_lock); > > + prev = rcu_dereference_protected(cfi_shadow, > > + mutex_is_locked(&shadow_update_lock)); > > + > > + if (next) { > > + next->base = base_addr >> PAGE_SHIFT; > > + prepare_next_shadow(prev, next); > > + > > + min_addr = (unsigned long)mod->core_layout.base; > > + max_addr = min_addr + mod->core_layout.text_size; > > + fn(next, mod, min_addr & PAGE_MASK, max_addr & PAGE_MASK); > > + > > + set_memory_ro((unsigned long)next, SHADOW_PAGES); > > + } > > + > > + rcu_assign_pointer(cfi_shadow, next); > > + mutex_unlock(&shadow_update_lock); > > + synchronize_rcu_expedited(); > > expedited is BAD(tm), why is it required and why doesn't it have a > comment? Ah, this uses synchronize_rcu_expedited() because we have a case where synchronize_rcu() hangs here with a specific SoC family after the vendor's cpu_pm driver powers down CPU cores. Would you say expedited is bad enough that we should avoid it here? The function is called only when kernel modules are loaded or unloaded, so not very frequently. Sami _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel