Re: [PATCH v2 0/3] kasan: memorize and print call_rcu stack
From: Dmitry Vyukov <dvyukov@google.com>
Date: 2020-05-11 10:38:47
Also in:
linux-mediatek, linux-mm, lkml
On Mon, May 11, 2020 at 12:32 PM Walter Wu [off-list ref] wrote:
On Mon, 2020-05-11 at 12:01 +0200, 'Dmitry Vyukov' via kasan-dev wrote:quoted
On Mon, May 11, 2020 at 4:24 AM Walter Wu [off-list ref] wrote:quoted
This patchset improves KASAN reports by making them to have call_rcu() call stack information. It is useful for programmers to solve use-after-free or double-free memory issue.Hi Walter, I am looking at this now. I've upload the change to gerrit [1] https://linux-review.googlesource.com/c/linux/kernel/git/torvalds/linux/+/2458 I am not capable enough to meaningfully review such changes in this format... [1] https://linux.googlesource.com/DocumentationHi Dmitry, I don't fully understand your meaning, our patchset's format has problem? or?
No, it does not have any problems. Your patch format is standard for kernel. It's just complex patches in the standard kernel format that are hard to review for me.
quoted
quoted
The KASAN report was as follows(cleaned up slightly): BUG: KASAN: use-after-free in kasan_rcu_reclaim+0x58/0x60 Freed by task 0: save_stack+0x24/0x50 __kasan_slab_free+0x110/0x178 kasan_slab_free+0x10/0x18 kfree+0x98/0x270 kasan_rcu_reclaim+0x1c/0x60 rcu_core+0x8b4/0x10f8 rcu_core_si+0xc/0x18 efi_header_end+0x238/0xa6c First call_rcu() call stack: save_stack+0x24/0x50 kasan_record_callrcu+0xc8/0xd8 call_rcu+0x190/0x580 kasan_rcu_uaf+0x1d8/0x278 Last call_rcu() call stack: (stack is not available) Generic KASAN will record first and last call_rcu() call stack and print two call_rcu() call stack in KASAN report. This feature doesn't increase the cost of memory consumption. It is only suitable for generic KASAN. [1]https://bugzilla.kernel.org/show_bug.cgi?id=198437 [2]https://groups.google.com/forum/#!searchin/kasan-dev/better$20stack$20traces$20for$20rcu%7Csort:date/kasan-dev/KQsjT_88hDE/7rNUZprRBgAJ Changes since v2: - remove new config option, default enable it in generic KASAN - test this feature in SLAB/SLUB, it is pass. - modify macro to be more clearly - modify documentation Walter Wu (3): rcu/kasan: record and print call_rcu() call stack kasan: record and print the free track kasan: update documentation for generic kasan Documentation/dev-tools/kasan.rst | 6 ++++++ include/linux/kasan.h | 2 ++ kernel/rcu/tree.c | 4 ++++ lib/Kconfig.kasan | 2 ++ mm/kasan/common.c | 26 ++++---------------------- mm/kasan/generic.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ mm/kasan/kasan.h | 23 +++++++++++++++++++++++ mm/kasan/report.c | 47 +++++++++++++++++++++-------------------------- mm/kasan/tags.c | 37 +++++++++++++++++++++++++++++++++++++ 9 files changed, 149 insertions(+), 48 deletions(-) -- You received this message because you are subscribed to the Google Groups "kasan-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/20200511022359.15063-1-walter-zh.wu%40mediatek.com.-- You received this message because you are subscribed to the Google Groups "kasan-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/1589193126.2930.2.camel%40mtksdccf07.
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel