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=-14.4 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL 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 D6C61C4363D for ; Mon, 5 Oct 2020 09:29:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9492620796 for ; Mon, 5 Oct 2020 09:29:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="RD6Sa7SS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725981AbgJEJ3d (ORCPT ); Mon, 5 Oct 2020 05:29:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725895AbgJEJ3c (ORCPT ); Mon, 5 Oct 2020 05:29:32 -0400 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 09B09C0613CE for ; Mon, 5 Oct 2020 02:29:31 -0700 (PDT) Received: by mail-wm1-x344.google.com with SMTP id j136so8031816wmj.2 for ; Mon, 05 Oct 2020 02:29:30 -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:content-transfer-encoding; bh=NkkZ0AZItfPzXXyiWUs3wdbhFkdEuozzWE5YN7fX2Ds=; b=RD6Sa7SS02XMmSEITYc+16rUxDLnGebQGiPycqS2AHIUGt1HKXcbyFJO2j0zhLR3ZV MYcG6n/KPVssa/d74T6uHaLPmzw2YIJ1RxZv5UH86MyTQlbgSGwcY3lCojdvHOvoyLYr 3InQKiPVQXm4doK9Npsgmpq0pyMNNUx9LU9zwy/R4Ti81NIxZHdTsUYc32lFcxjUghCM zJUY/Iu5ON7FYBKZ9+lmmO5Sk7FYh54C7wOC7bqTUUXmPugywv4W1v8BMeNvxBdNZqK5 TkRXl7IBaL10uym0Pw2B4bUGB1dniXKZJs8Nz3qozzlnsaxB/V2jYceXHMtovB6Oemp3 S4+A== 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:content-transfer-encoding; bh=NkkZ0AZItfPzXXyiWUs3wdbhFkdEuozzWE5YN7fX2Ds=; b=rGZxti69zpQvTx4gkV6E7uZX4a7Z8pPQoePbnCwhC9DC5pjW/KKRuOVnZwFoh4DQb+ wwAQ27uRUHBE2HHQWvX5qwv49UqCs0pY2kHdiY/UpZWGx0phzvuPTgOsUlKa1QK+PVSA gIupCVnCmRhH1l7nGIMAdRKLdF8Z+JLWpSIJjEIEo0iDyBHsOeCBBTGIeyszB+m7xd/0 j2cw5CXaW0VHzPKjR7zC3/wOXHQMCvJ9QJZ/H6sA7xbUPiNjTx3933hVLRbMAinv9jil UhxxyZfuG0OTaxfjZXagtBbHqjCViK06RnJxO0+bWrmKKqcIEqXEufZ0PMFS3zYepQ3Y wXuA== X-Gm-Message-State: AOAM530T5O/lvfquX8yhjUHOoCB6L25qJZ4qY/d0Dw8q6YRNuhWtCO2n VQDGb4ph4cAz+04l2ecaDJRF49V212ZmO4uhj1ueiw== X-Google-Smtp-Source: ABdhPJzdTHCSzPEmyky+jVTYpmIeNA4gwh4eafVoKki6ciFaZTe6pNy41Z81p02iQGgR8m4sm1feM4sG9bAxg7oIc+Q= X-Received: by 2002:a7b:cd93:: with SMTP id y19mr15306469wmj.112.1601890169505; Mon, 05 Oct 2020 02:29:29 -0700 (PDT) MIME-Version: 1.0 References: <20200929133814.2834621-1-elver@google.com> <20200929133814.2834621-6-elver@google.com> In-Reply-To: From: Alexander Potapenko Date: Mon, 5 Oct 2020 11:29:18 +0200 Message-ID: Subject: Re: [PATCH v4 05/11] mm, kfence: insert KFENCE hooks for SLUB To: Jann Horn Cc: Marco Elver , Christoph Lameter , Andrew Morton , "H . Peter Anvin" , "Paul E . McKenney" , Andrey Konovalov , Andrey Ryabinin , Andy Lutomirski , Borislav Petkov , Catalin Marinas , Dave Hansen , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Hillf Danton , Ingo Molnar , Jonathan Cameron , Jonathan Corbet , Joonsoo Kim , Kees Cook , Mark Rutland , Pekka Enberg , Peter Zijlstra , SeongJae Park , Thomas Gleixner , Vlastimil Babka , Will Deacon , "the arch/x86 maintainers" , "open list:DOCUMENTATION" , kernel list , kasan-dev , Linux ARM , Linux-MM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 2, 2020 at 9:07 AM Jann Horn wrote: > > On Tue, Sep 29, 2020 at 3:38 PM Marco Elver wrote: > > Inserts KFENCE hooks into the SLUB allocator. > [...] > > diff --git a/mm/slub.c b/mm/slub.c > [...] > > @@ -3290,8 +3314,14 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, = gfp_t flags, size_t size, > > c =3D this_cpu_ptr(s->cpu_slab); > > > > for (i =3D 0; i < size; i++) { > > - void *object =3D c->freelist; > > + void *object =3D kfence_alloc(s, s->object_size, flags)= ; > > kfence_alloc() will invoke ->ctor() callbacks if the current slab has > them. Is it fine to invoke such callbacks from here, where we're in > the middle of a section that disables interrupts to protect against > concurrent freelist changes? If someone decides to be extra smart and > uses a kmem_cache with a ->ctor that can allocate memory from the same > kmem_cache, or something along those lines, this could lead to > corruption of the SLUB freelist. But I'm not sure whether that can > happen in practice. >From cache_init_objs_debug() in mm/slab.c: /* * Constructors are not allowed to allocate memory from the= same * cache which they are a constructor for. Otherwise, dead= lock. * They must also be threaded. */ So, no, it is not allowed to allocate from the same cache in the constructo= r. > Still, it might be nicer if you could code this to behave like a > fastpath miss: Update c->tid, turn interrupts back on (___slab_alloc() > will also do that if it has to call into the page allocator), then let > kfence do the actual allocation in a more normal context, then turn > interrupts back off and go on. If that's not too complicated? > > Maybe Christoph Lameter has opinions on whether this is necessary... > it admittedly is fairly theoretical. > > > + if (unlikely(object)) { > > + p[i] =3D object; > > + continue; > > + } > > + > > + object =3D c->freelist; > > if (unlikely(!object)) { > > /* > > * We may have removed an object from c->freeli= st using -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg 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=-14.4 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL 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 95B89C4363A for ; Mon, 5 Oct 2020 09:29:33 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 26F8020796 for ; Mon, 5 Oct 2020 09:29:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="RD6Sa7SS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 26F8020796 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 3E6696B005D; Mon, 5 Oct 2020 05:29:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 397C36B0062; Mon, 5 Oct 2020 05:29:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 23B5F6B0068; Mon, 5 Oct 2020 05:29:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0020.hostedemail.com [216.40.44.20]) by kanga.kvack.org (Postfix) with ESMTP id EB37A6B005D for ; Mon, 5 Oct 2020 05:29:31 -0400 (EDT) Received: from smtpin19.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 87B04C5A0 for ; Mon, 5 Oct 2020 09:29:31 +0000 (UTC) X-FDA: 77337348942.19.coal92_030212c271bd Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin19.hostedemail.com (Postfix) with ESMTP id 67EED1AD1B4 for ; Mon, 5 Oct 2020 09:29:31 +0000 (UTC) X-HE-Tag: coal92_030212c271bd X-Filterd-Recvd-Size: 6704 Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by imf11.hostedemail.com (Postfix) with ESMTP for ; Mon, 5 Oct 2020 09:29:30 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id k18so8023967wmj.5 for ; Mon, 05 Oct 2020 02:29:30 -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:content-transfer-encoding; bh=NkkZ0AZItfPzXXyiWUs3wdbhFkdEuozzWE5YN7fX2Ds=; b=RD6Sa7SS02XMmSEITYc+16rUxDLnGebQGiPycqS2AHIUGt1HKXcbyFJO2j0zhLR3ZV MYcG6n/KPVssa/d74T6uHaLPmzw2YIJ1RxZv5UH86MyTQlbgSGwcY3lCojdvHOvoyLYr 3InQKiPVQXm4doK9Npsgmpq0pyMNNUx9LU9zwy/R4Ti81NIxZHdTsUYc32lFcxjUghCM zJUY/Iu5ON7FYBKZ9+lmmO5Sk7FYh54C7wOC7bqTUUXmPugywv4W1v8BMeNvxBdNZqK5 TkRXl7IBaL10uym0Pw2B4bUGB1dniXKZJs8Nz3qozzlnsaxB/V2jYceXHMtovB6Oemp3 S4+A== 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:content-transfer-encoding; bh=NkkZ0AZItfPzXXyiWUs3wdbhFkdEuozzWE5YN7fX2Ds=; b=Ljt8fT2c4VKiLlfpzGk/ZkNKpa6MOo25ShyIm9vl78laikvvWHDEktXiVPvW9jMXvJ 6WSsF3+pIj0UJRZCk1zxJD9CCsJEnszOECWPppzLaP9IhS0FIBtWaDrPDLLI/iZBP+to FbK9o6a2A6/wmG2NeQHo0VDVXVW7W3uBZovJXXq1p8XjZScnd8M8YJfl9Tk1dBPTErOb t8rUa/BhsINt3Ikm4DWSjoQif+Lmp634mHJOOzwp0Q09ASLTFxJSEKDLCWGlmSkqNW9D m2p41tNp5vm6Yg9/gy9luprdGQaIpEoPgIYuamsVWGS0WfVGQ6NusSVBPaTMVd1Vjh8z u5mA== X-Gm-Message-State: AOAM5336aXoB+qJrjrhc9m2/GcvSbfPyiEic8lh86DbnRUAjwLJ392Xm BeHfYuFYjGVkBwTyDNSptwv/kzIM1ye2p9XILLK2nA== X-Google-Smtp-Source: ABdhPJzdTHCSzPEmyky+jVTYpmIeNA4gwh4eafVoKki6ciFaZTe6pNy41Z81p02iQGgR8m4sm1feM4sG9bAxg7oIc+Q= X-Received: by 2002:a7b:cd93:: with SMTP id y19mr15306469wmj.112.1601890169505; Mon, 05 Oct 2020 02:29:29 -0700 (PDT) MIME-Version: 1.0 References: <20200929133814.2834621-1-elver@google.com> <20200929133814.2834621-6-elver@google.com> In-Reply-To: From: Alexander Potapenko Date: Mon, 5 Oct 2020 11:29:18 +0200 Message-ID: Subject: Re: [PATCH v4 05/11] mm, kfence: insert KFENCE hooks for SLUB To: Jann Horn Cc: Marco Elver , Christoph Lameter , Andrew Morton , "H . Peter Anvin" , "Paul E . McKenney" , Andrey Konovalov , Andrey Ryabinin , Andy Lutomirski , Borislav Petkov , Catalin Marinas , Dave Hansen , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Hillf Danton , Ingo Molnar , Jonathan Cameron , Jonathan Corbet , Joonsoo Kim , Kees Cook , Mark Rutland , Pekka Enberg , Peter Zijlstra , SeongJae Park , Thomas Gleixner , Vlastimil Babka , Will Deacon , "the arch/x86 maintainers" , "open list:DOCUMENTATION" , kernel list , kasan-dev , Linux ARM , Linux-MM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Oct 2, 2020 at 9:07 AM Jann Horn wrote: > > On Tue, Sep 29, 2020 at 3:38 PM Marco Elver wrote: > > Inserts KFENCE hooks into the SLUB allocator. > [...] > > diff --git a/mm/slub.c b/mm/slub.c > [...] > > @@ -3290,8 +3314,14 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, = gfp_t flags, size_t size, > > c =3D this_cpu_ptr(s->cpu_slab); > > > > for (i =3D 0; i < size; i++) { > > - void *object =3D c->freelist; > > + void *object =3D kfence_alloc(s, s->object_size, flags)= ; > > kfence_alloc() will invoke ->ctor() callbacks if the current slab has > them. Is it fine to invoke such callbacks from here, where we're in > the middle of a section that disables interrupts to protect against > concurrent freelist changes? If someone decides to be extra smart and > uses a kmem_cache with a ->ctor that can allocate memory from the same > kmem_cache, or something along those lines, this could lead to > corruption of the SLUB freelist. But I'm not sure whether that can > happen in practice. >From cache_init_objs_debug() in mm/slab.c: /* * Constructors are not allowed to allocate memory from the= same * cache which they are a constructor for. Otherwise, dead= lock. * They must also be threaded. */ So, no, it is not allowed to allocate from the same cache in the constructo= r. > Still, it might be nicer if you could code this to behave like a > fastpath miss: Update c->tid, turn interrupts back on (___slab_alloc() > will also do that if it has to call into the page allocator), then let > kfence do the actual allocation in a more normal context, then turn > interrupts back off and go on. If that's not too complicated? > > Maybe Christoph Lameter has opinions on whether this is necessary... > it admittedly is fairly theoretical. > > > + if (unlikely(object)) { > > + p[i] =3D object; > > + continue; > > + } > > + > > + object =3D c->freelist; > > if (unlikely(!object)) { > > /* > > * We may have removed an object from c->freeli= st using -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg 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=-7.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,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 34955C4363A for ; Mon, 5 Oct 2020 09:31:06 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 B623C20774 for ; Mon, 5 Oct 2020 09:31:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="mL0zVe33"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=google.com header.i=@google.com header.b="RD6Sa7SS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B623C20774 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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id: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=wRG13idf33l1PE0YqRz5NHYxioyxc9hdJvtl6J16h+I=; b=mL0zVe33P5Bn52h99eFSS/zg3 saSqDuCi59bpd/Y+L3kWL35M4LrlJGr28LmpYJyzmW7jXkoXjRjXtTdYI3LzNRKs3tdarr9kpA/4W neJxQZF1Y39TuJlSac0+OZ3efbyGQisyhbn7+vM+vDChZ5K8aNK/5JMrhkbCnTLTKoSvbMqCM43lv g0kR/EucLk2QvQgSFvFc6mAfLJvB+6z+hlW9Q7DN2pGygy5nmRttb4HglZp+ctI18PZPtjjaNYgg8 xcZVxwrR/6xa2ngvVe7qXJupSATraL/vyqA56nCQ3IQ0yKCuC9x3qNMuYmVtc4DbqyzGEgTZloE3x Yrqn/Ykqg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kPMoJ-0001g6-PR; Mon, 05 Oct 2020 09:29:35 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kPMoG-0001eY-M1 for linux-arm-kernel@lists.infradead.org; Mon, 05 Oct 2020 09:29:33 +0000 Received: by mail-wm1-x342.google.com with SMTP id 13so7850427wmf.0 for ; Mon, 05 Oct 2020 02:29:30 -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:content-transfer-encoding; bh=NkkZ0AZItfPzXXyiWUs3wdbhFkdEuozzWE5YN7fX2Ds=; b=RD6Sa7SS02XMmSEITYc+16rUxDLnGebQGiPycqS2AHIUGt1HKXcbyFJO2j0zhLR3ZV MYcG6n/KPVssa/d74T6uHaLPmzw2YIJ1RxZv5UH86MyTQlbgSGwcY3lCojdvHOvoyLYr 3InQKiPVQXm4doK9Npsgmpq0pyMNNUx9LU9zwy/R4Ti81NIxZHdTsUYc32lFcxjUghCM zJUY/Iu5ON7FYBKZ9+lmmO5Sk7FYh54C7wOC7bqTUUXmPugywv4W1v8BMeNvxBdNZqK5 TkRXl7IBaL10uym0Pw2B4bUGB1dniXKZJs8Nz3qozzlnsaxB/V2jYceXHMtovB6Oemp3 S4+A== 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:content-transfer-encoding; bh=NkkZ0AZItfPzXXyiWUs3wdbhFkdEuozzWE5YN7fX2Ds=; b=Ltg/5W/al1Bh34LLiPzdU3/SYuqrxHJpDmnAKQ3Ja1P/crDSBCCwibhPezOx8wmkON o38xhb8SIaKJO8zUMQr7R8TPcFXFrN/xJrMt0ue7NVKtjRx7wvuNSFhYDSJfIdnEaa60 7GsE90xE25iFnZ24Ox1POL1taG63Azn5uAG1J/Kxyd++Wkdff2QBrhiq1MRA6d+l34MO ulRVU6F5upFeDaQWCwgmjGPxWkUnamlLSKklmRBES9Rzx7/7dpvjQuLEFeChgxDa7EfW PS1RrD9u4uLek78oRJbI74z91RhZKglwJ/wH5agj5ajEeDgRCIdhKAtzP0VDU9qNG0X/ tvAA== X-Gm-Message-State: AOAM533au3of61qVOQaijn5JUmTxRFgifcvWyaY7IK1f2+R7arIhhBBg 77eBaUG622YzqRGFT5Hafqk+/EoqO2e+ZbWYMvyAnQ== X-Google-Smtp-Source: ABdhPJzdTHCSzPEmyky+jVTYpmIeNA4gwh4eafVoKki6ciFaZTe6pNy41Z81p02iQGgR8m4sm1feM4sG9bAxg7oIc+Q= X-Received: by 2002:a7b:cd93:: with SMTP id y19mr15306469wmj.112.1601890169505; Mon, 05 Oct 2020 02:29:29 -0700 (PDT) MIME-Version: 1.0 References: <20200929133814.2834621-1-elver@google.com> <20200929133814.2834621-6-elver@google.com> In-Reply-To: From: Alexander Potapenko Date: Mon, 5 Oct 2020 11:29:18 +0200 Message-ID: Subject: Re: [PATCH v4 05/11] mm, kfence: insert KFENCE hooks for SLUB To: Jann Horn X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201005_052932_774546_E901035F X-CRM114-Status: GOOD ( 27.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Hillf Danton , "open list:DOCUMENTATION" , Peter Zijlstra , Catalin Marinas , Dave Hansen , Linux-MM , Eric Dumazet , "H . Peter Anvin" , Christoph Lameter , Will Deacon , SeongJae Park , Jonathan Corbet , the arch/x86 maintainers , kasan-dev , Ingo Molnar , Vlastimil Babka , David Rientjes , Andrey Ryabinin , Marco Elver , Kees Cook , "Paul E . McKenney" , Andrey Konovalov , Borislav Petkov , Andy Lutomirski , Jonathan Cameron , Thomas Gleixner , Joonsoo Kim , Dmitry Vyukov , Linux ARM , Greg Kroah-Hartman , kernel list , Pekka Enberg , Andrew Morton Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBPY3QgMiwgMjAyMCBhdCA5OjA3IEFNIEphbm4gSG9ybiA8amFubmhAZ29vZ2xlLmNv bT4gd3JvdGU6Cj4KPiBPbiBUdWUsIFNlcCAyOSwgMjAyMCBhdCAzOjM4IFBNIE1hcmNvIEVsdmVy IDxlbHZlckBnb29nbGUuY29tPiB3cm90ZToKPiA+IEluc2VydHMgS0ZFTkNFIGhvb2tzIGludG8g dGhlIFNMVUIgYWxsb2NhdG9yLgo+IFsuLi5dCj4gPiBkaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIv bW0vc2x1Yi5jCj4gWy4uLl0KPiA+IEBAIC0zMjkwLDggKzMzMTQsMTQgQEAgaW50IGttZW1fY2Fj aGVfYWxsb2NfYnVsayhzdHJ1Y3Qga21lbV9jYWNoZSAqcywgZ2ZwX3QgZmxhZ3MsIHNpemVfdCBz aXplLAo+ID4gICAgICAgICBjID0gdGhpc19jcHVfcHRyKHMtPmNwdV9zbGFiKTsKPiA+Cj4gPiAg ICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKPiA+IC0gICAgICAgICAgICAgICB2 b2lkICpvYmplY3QgPSBjLT5mcmVlbGlzdDsKPiA+ICsgICAgICAgICAgICAgICB2b2lkICpvYmpl Y3QgPSBrZmVuY2VfYWxsb2Mocywgcy0+b2JqZWN0X3NpemUsIGZsYWdzKTsKPgo+IGtmZW5jZV9h bGxvYygpIHdpbGwgaW52b2tlIC0+Y3RvcigpIGNhbGxiYWNrcyBpZiB0aGUgY3VycmVudCBzbGFi IGhhcwo+IHRoZW0uIElzIGl0IGZpbmUgdG8gaW52b2tlIHN1Y2ggY2FsbGJhY2tzIGZyb20gaGVy ZSwgd2hlcmUgd2UncmUgaW4KPiB0aGUgbWlkZGxlIG9mIGEgc2VjdGlvbiB0aGF0IGRpc2FibGVz IGludGVycnVwdHMgdG8gcHJvdGVjdCBhZ2FpbnN0Cj4gY29uY3VycmVudCBmcmVlbGlzdCBjaGFu Z2VzPyBJZiBzb21lb25lIGRlY2lkZXMgdG8gYmUgZXh0cmEgc21hcnQgYW5kCj4gdXNlcyBhIGtt ZW1fY2FjaGUgd2l0aCBhIC0+Y3RvciB0aGF0IGNhbiBhbGxvY2F0ZSBtZW1vcnkgZnJvbSB0aGUg c2FtZQo+IGttZW1fY2FjaGUsIG9yIHNvbWV0aGluZyBhbG9uZyB0aG9zZSBsaW5lcywgdGhpcyBj b3VsZCBsZWFkIHRvCj4gY29ycnVwdGlvbiBvZiB0aGUgU0xVQiBmcmVlbGlzdC4gQnV0IEknbSBu b3Qgc3VyZSB3aGV0aGVyIHRoYXQgY2FuCj4gaGFwcGVuIGluIHByYWN0aWNlLgoKRnJvbSBjYWNo ZV9pbml0X29ianNfZGVidWcoKSBpbiBtbS9zbGFiLmM6CgogICAgICAgICAgICAgICAgLyoKICAg ICAgICAgICAgICAgICAqIENvbnN0cnVjdG9ycyBhcmUgbm90IGFsbG93ZWQgdG8gYWxsb2NhdGUg bWVtb3J5IGZyb20gdGhlIHNhbWUKICAgICAgICAgICAgICAgICAqIGNhY2hlIHdoaWNoIHRoZXkg YXJlIGEgY29uc3RydWN0b3IgZm9yLiAgT3RoZXJ3aXNlLCBkZWFkbG9jay4KICAgICAgICAgICAg ICAgICAqIFRoZXkgbXVzdCBhbHNvIGJlIHRocmVhZGVkLgogICAgICAgICAgICAgICAgICovCgpT bywgbm8sIGl0IGlzIG5vdCBhbGxvd2VkIHRvIGFsbG9jYXRlIGZyb20gdGhlIHNhbWUgY2FjaGUg aW4gdGhlIGNvbnN0cnVjdG9yLgoKCj4gU3RpbGwsIGl0IG1pZ2h0IGJlIG5pY2VyIGlmIHlvdSBj b3VsZCBjb2RlIHRoaXMgdG8gYmVoYXZlIGxpa2UgYQo+IGZhc3RwYXRoIG1pc3M6IFVwZGF0ZSBj LT50aWQsIHR1cm4gaW50ZXJydXB0cyBiYWNrIG9uIChfX19zbGFiX2FsbG9jKCkKPiB3aWxsIGFs c28gZG8gdGhhdCBpZiBpdCBoYXMgdG8gY2FsbCBpbnRvIHRoZSBwYWdlIGFsbG9jYXRvciksIHRo ZW4gbGV0Cj4ga2ZlbmNlIGRvIHRoZSBhY3R1YWwgYWxsb2NhdGlvbiBpbiBhIG1vcmUgbm9ybWFs IGNvbnRleHQsIHRoZW4gdHVybgo+IGludGVycnVwdHMgYmFjayBvZmYgYW5kIGdvIG9uLiBJZiB0 aGF0J3Mgbm90IHRvbyBjb21wbGljYXRlZD8KPgo+IE1heWJlIENocmlzdG9waCBMYW1ldGVyIGhh cyBvcGluaW9ucyBvbiB3aGV0aGVyIHRoaXMgaXMgbmVjZXNzYXJ5Li4uCj4gaXQgYWRtaXR0ZWRs eSBpcyBmYWlybHkgdGhlb3JldGljYWwuCj4KPiA+ICsgICAgICAgICAgICAgICBpZiAodW5saWtl bHkob2JqZWN0KSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcFtpXSA9IG9iamVjdDsK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gKyAgICAgICAgICAgICAg IH0KPiA+ICsKPiA+ICsgICAgICAgICAgICAgICBvYmplY3QgPSBjLT5mcmVlbGlzdDsKPiA+ICAg ICAgICAgICAgICAgICBpZiAodW5saWtlbHkoIW9iamVjdCkpIHsKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIC8qCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBtYXkgaGF2ZSBy ZW1vdmVkIGFuIG9iamVjdCBmcm9tIGMtPmZyZWVsaXN0IHVzaW5nCgoKCi0tCkFsZXhhbmRlciBQ b3RhcGVua28KU29mdHdhcmUgRW5naW5lZXIKCkdvb2dsZSBHZXJtYW55IEdtYkgKRXJpa2EtTWFu bi1TdHJhw59lLCAzMwo4MDYzNiBNw7xuY2hlbgoKR2VzY2jDpGZ0c2bDvGhyZXI6IFBhdWwgTWFu aWNsZSwgSGFsaW1haCBEZUxhaW5lIFByYWRvClJlZ2lzdGVyZ2VyaWNodCB1bmQgLW51bW1lcjog SGFtYnVyZywgSFJCIDg2ODkxClNpdHogZGVyIEdlc2VsbHNjaGFmdDogSGFtYnVyZwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=