All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marco Elver <elver@google.com>
To: Andrey Konovalov <andreyknvl@google.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	Alexander Potapenko <glider@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Will Deacon <will.deacon@arm.com>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	Peter Collingbourne <pcc@google.com>,
	Evgenii Stepanov <eugenis@google.com>,
	Branislav Rankov <Branislav.Rankov@arm.com>,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	kasan-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 04/12] kasan: clean up setting free info in kasan_slab_free
Date: Tue, 2 Feb 2021 18:03:46 +0100	[thread overview]
Message-ID: <YBmF8gCRRdRgJw0/@elver.google.com> (raw)
In-Reply-To: <e762958db74587308514341a18622ff350a75d8a.1612208222.git.andreyknvl@google.com>

On Mon, Feb 01, 2021 at 08:43PM +0100, Andrey Konovalov wrote:
> Put kasan_stack_collection_enabled() check and kasan_set_free_info()
> calls next to each other.
> 
> The way this was previously implemented was a minor optimization that
> relied of the the fact that kasan_stack_collection_enabled() is always
> true for generic KASAN. The confusion that this brings outweights saving
> a few instructions.
> 
> Signed-off-by: Andrey Konovalov <andreyknvl@google.com>

Reviewed-by: Marco Elver <elver@google.com>

> ---
>  mm/kasan/common.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/kasan/common.c b/mm/kasan/common.c
> index a7eb553c8e91..086bb77292b6 100644
> --- a/mm/kasan/common.c
> +++ b/mm/kasan/common.c
> @@ -350,13 +350,11 @@ static bool ____kasan_slab_free(struct kmem_cache *cache, void *object,
>  
>  	kasan_poison(object, cache->object_size, KASAN_KMALLOC_FREE);
>  
> -	if (!kasan_stack_collection_enabled())
> -		return false;
> -
>  	if ((IS_ENABLED(CONFIG_KASAN_GENERIC) && !quarantine))
>  		return false;
>  
> -	kasan_set_free_info(cache, object, tag);
> +	if (kasan_stack_collection_enabled())
> +		kasan_set_free_info(cache, object, tag);
>  
>  	return kasan_quarantine_put(cache, object);
>  }
> -- 
> 2.30.0.365.g02bc693789-goog
> 

WARNING: multiple messages have this Message-ID (diff)
From: Marco Elver <elver@google.com>
To: Andrey Konovalov <andreyknvl@google.com>
Cc: linux-arm-kernel@lists.infradead.org,
	Branislav Rankov <Branislav.Rankov@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com,
	linux-mm@kvack.org, Alexander Potapenko <glider@google.com>,
	Evgenii Stepanov <eugenis@google.com>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Peter Collingbourne <pcc@google.com>,
	Dmitry Vyukov <dvyukov@google.com>
Subject: Re: [PATCH 04/12] kasan: clean up setting free info in kasan_slab_free
Date: Tue, 2 Feb 2021 18:03:46 +0100	[thread overview]
Message-ID: <YBmF8gCRRdRgJw0/@elver.google.com> (raw)
In-Reply-To: <e762958db74587308514341a18622ff350a75d8a.1612208222.git.andreyknvl@google.com>

On Mon, Feb 01, 2021 at 08:43PM +0100, Andrey Konovalov wrote:
> Put kasan_stack_collection_enabled() check and kasan_set_free_info()
> calls next to each other.
> 
> The way this was previously implemented was a minor optimization that
> relied of the the fact that kasan_stack_collection_enabled() is always
> true for generic KASAN. The confusion that this brings outweights saving
> a few instructions.
> 
> Signed-off-by: Andrey Konovalov <andreyknvl@google.com>

Reviewed-by: Marco Elver <elver@google.com>

> ---
>  mm/kasan/common.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/kasan/common.c b/mm/kasan/common.c
> index a7eb553c8e91..086bb77292b6 100644
> --- a/mm/kasan/common.c
> +++ b/mm/kasan/common.c
> @@ -350,13 +350,11 @@ static bool ____kasan_slab_free(struct kmem_cache *cache, void *object,
>  
>  	kasan_poison(object, cache->object_size, KASAN_KMALLOC_FREE);
>  
> -	if (!kasan_stack_collection_enabled())
> -		return false;
> -
>  	if ((IS_ENABLED(CONFIG_KASAN_GENERIC) && !quarantine))
>  		return false;
>  
> -	kasan_set_free_info(cache, object, tag);
> +	if (kasan_stack_collection_enabled())
> +		kasan_set_free_info(cache, object, tag);
>  
>  	return kasan_quarantine_put(cache, object);
>  }
> -- 
> 2.30.0.365.g02bc693789-goog
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-02-02 17:07 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-01 19:43 [PATCH 00/12] kasan: optimizations and fixes for HW_TAGS Andrey Konovalov
2021-02-01 19:43 ` Andrey Konovalov
2021-02-01 19:43 ` Andrey Konovalov
2021-02-01 19:43 ` [PATCH 01/12] kasan, mm: don't save alloc stacks twice Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-02 16:06   ` Marco Elver
2021-02-02 16:06     ` Marco Elver
2021-02-02 18:01     ` Andrey Konovalov
2021-02-02 18:01       ` Andrey Konovalov
2021-02-02 18:01       ` Andrey Konovalov
2021-02-02 18:40       ` Marco Elver
2021-02-02 18:40         ` Marco Elver
2021-02-02 18:40         ` Marco Elver
2021-02-01 19:43 ` [PATCH 02/12] kasan, mm: optimize kmalloc poisoning Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-02 16:25   ` Marco Elver
2021-02-02 16:25     ` Marco Elver
2021-02-02 17:15     ` Andrey Konovalov
2021-02-02 17:15       ` Andrey Konovalov
2021-02-02 17:15       ` Andrey Konovalov
2021-02-02 17:39       ` Marco Elver
2021-02-02 17:39         ` Marco Elver
2021-02-02 17:39         ` Marco Elver
2021-02-01 19:43 ` [PATCH 03/12] kasan: optimize large " Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-02 16:57   ` Marco Elver
2021-02-02 16:57     ` Marco Elver
2021-02-01 19:43 ` [PATCH 04/12] kasan: clean up setting free info in kasan_slab_free Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-02 17:03   ` Marco Elver [this message]
2021-02-02 17:03     ` Marco Elver
2021-02-01 19:43 ` [PATCH 05/12] kasan: unify large kfree checks Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-03 12:13   ` Marco Elver
2021-02-03 12:13     ` Marco Elver
2021-02-01 19:43 ` [PATCH 06/12] kasan: rework krealloc tests Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-03 14:48   ` Marco Elver
2021-02-03 14:48     ` Marco Elver
2021-02-01 19:43 ` [PATCH 07/12] kasan, mm: remove krealloc side-effect Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-03 15:10   ` Marco Elver
2021-02-03 15:10     ` Marco Elver
2021-02-01 19:43 ` [PATCH 08/12] kasan, mm: optimize krealloc poisoning Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-03 14:34   ` Marco Elver
2021-02-03 14:34     ` Marco Elver
2021-02-01 19:43 ` [PATCH 09/12] kasan: ensure poisoning size alignment Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-03 15:31   ` Marco Elver
2021-02-03 15:31     ` Marco Elver
2021-02-01 19:43 ` [PATCH 10/12] arm64: kasan: simplify and inline MTE functions Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 22:44   ` Andrew Morton
2021-02-01 22:44     ` Andrew Morton
2021-02-04 12:39     ` Vincenzo Frascino
2021-02-04 12:39       ` Vincenzo Frascino
2021-02-02 15:42   ` Catalin Marinas
2021-02-02 15:42     ` Catalin Marinas
2021-02-02 18:04     ` Andrey Konovalov
2021-02-02 18:04       ` Andrey Konovalov
2021-02-02 18:04       ` Andrey Konovalov
2021-02-04 12:37   ` Vincenzo Frascino
2021-02-04 12:37     ` Vincenzo Frascino
2021-02-01 19:43 ` [PATCH 11/12] kasan: always inline HW_TAGS helper functions Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-03 15:51   ` Marco Elver
2021-02-03 15:51     ` Marco Elver
2021-02-01 19:43 ` [PATCH 12/12] arm64: kasan: export MTE symbols for KASAN tests Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-01 19:43   ` Andrey Konovalov
2021-02-02 10:46   ` Will Deacon
2021-02-02 10:46     ` Will Deacon
2021-02-02 13:42     ` Andrey Konovalov
2021-02-02 13:42       ` Andrey Konovalov
2021-02-02 13:42       ` Andrey Konovalov
2021-02-02 15:43   ` Catalin Marinas
2021-02-02 15:43     ` Catalin Marinas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YBmF8gCRRdRgJw0/@elver.google.com \
    --to=elver@google.com \
    --cc=Branislav.Rankov@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@google.com \
    --cc=aryabinin@virtuozzo.com \
    --cc=catalin.marinas@arm.com \
    --cc=dvyukov@google.com \
    --cc=eugenis@google.com \
    --cc=glider@google.com \
    --cc=kasan-dev@googlegroups.com \
    --cc=kevin.brodsky@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=pcc@google.com \
    --cc=vincenzo.frascino@arm.com \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.