From: Michael Ellerman <mpe@ellerman.id.au>
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
linuxppc-dev@lists.ozlabs.org
Cc: kasan-dev@googlegroups.com, linux-mm@kvack.org,
Marco Elver <elver@google.com>,
Alexander Potapenko <glider@google.com>,
Heiko Carstens <hca@linux.ibm.com>,
Nicholas Piggin <npiggin@gmail.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Hari Bathini <hbathini@linux.ibm.com>,
"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
Donet Tom <donettom@linux.vnet.ibm.com>,
Pavithra Prakash <pavrampu@linux.vnet.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
Disha Goel <disgoel@linux.ibm.com>
Subject: Re: [PATCH v3 01/12] powerpc: mm/fault: Fix kfence page fault reporting
Date: Tue, 22 Oct 2024 13:42:29 +1100 [thread overview]
Message-ID: <87plnsoo2y.fsf@mail.lhotse> (raw)
In-Reply-To: <a411788081d50e3b136c6270471e35aba3dfafa3.1729271995.git.ritesh.list@gmail.com>
Hi Ritesh,
"Ritesh Harjani (IBM)" <ritesh.list@gmail.com> writes:
> copy_from_kernel_nofault() can be called when doing read of /proc/kcore.
> /proc/kcore can have some unmapped kfence objects which when read via
> copy_from_kernel_nofault() can cause page faults. Since *_nofault()
> functions define their own fixup table for handling fault, use that
> instead of asking kfence to handle such faults.
>
> Hence we search the exception tables for the nip which generated the
> fault. If there is an entry then we let the fixup table handler handle the
> page fault by returning an error from within ___do_page_fault().
>
> This can be easily triggered if someone tries to do dd from /proc/kcore.
> dd if=/proc/kcore of=/dev/null bs=1M
>
> <some example false negatives>
> ===============================
> BUG: KFENCE: invalid read in copy_from_kernel_nofault+0xb0/0x1c8
> Invalid read at 0x000000004f749d2e:
> copy_from_kernel_nofault+0xb0/0x1c8
> 0xc0000000057f7950
> read_kcore_iter+0x41c/0x9ac
> proc_reg_read_iter+0xe4/0x16c
> vfs_read+0x2e4/0x3b0
> ksys_read+0x88/0x154
> system_call_exception+0x124/0x340
> system_call_common+0x160/0x2c4
I haven't been able to reproduce this. Can you give some more details on
the exact machine/kernel-config/setup where you saw this?
cheers
next prev parent reply other threads:[~2024-10-22 2:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-18 17:29 [PATCH v3 00/12] powerpc/kfence: Improve kfence support (mainly Hash) Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 01/12] powerpc: mm/fault: Fix kfence page fault reporting Ritesh Harjani (IBM)
2024-10-18 17:40 ` Christophe Leroy
2024-10-22 2:42 ` Michael Ellerman [this message]
2024-10-22 3:09 ` Ritesh Harjani
2024-10-18 17:29 ` [PATCH v3 02/12] book3s64/hash: Remove kfence support temporarily Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 03/12] book3s64/hash: Refactor kernel linear map related calls Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 04/12] book3s64/hash: Add hash_debug_pagealloc_add_slot() function Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 05/12] book3s64/hash: Add hash_debug_pagealloc_alloc_slots() function Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 06/12] book3s64/hash: Refactor hash__kernel_map_pages() function Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 07/12] book3s64/hash: Make kernel_map_linear_page() generic Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 08/12] book3s64/hash: Disable debug_pagealloc if it requires more memory Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 09/12] book3s64/hash: Add kfence functionality Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 10/12] book3s64/radix: Refactoring common kfence related functions Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 11/12] book3s64/hash: Disable kfence if not early init Ritesh Harjani (IBM)
2024-10-18 17:29 ` [PATCH v3 12/12] book3s64/hash: Early detect debug_pagealloc size requirement Ritesh Harjani (IBM)
2024-11-07 8:42 ` [PATCH v3 00/12] powerpc/kfence: Improve kfence support (mainly Hash) Michael Ellerman
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=87plnsoo2y.fsf@mail.lhotse \
--to=mpe@ellerman.id.au \
--cc=aneesh.kumar@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=disgoel@linux.ibm.com \
--cc=donettom@linux.vnet.ibm.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=hbathini@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=npiggin@gmail.com \
--cc=pavrampu@linux.vnet.ibm.com \
--cc=ritesh.list@gmail.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.