lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 3 Dec 2020 14:19:19 -0800 (PST)
From:   Hugh Dickins <hughd@...gle.com>
To:     Qian Cai <qcai@...hat.com>
cc:     Marek Szyprowski <m.szyprowski@...sung.com>,
        Matthew Wilcox <willy@...radead.org>,
        Hugh Dickins <hughd@...gle.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Jan Kara <jack@...e.cz>,
        William Kucharski <william.kucharski@...cle.com>,
        linux-fsdevel@...r.kernel.org, linux-mm@...ck.org, hch@....de,
        hannes@...xchg.org, yang.shi@...ux.alibaba.com,
        dchinner@...hat.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 00/16] Overhaul multi-page lookups for THP

On Thu, 3 Dec 2020, Qian Cai wrote:
> On Thu, 2020-12-03 at 18:27 +0100, Marek Szyprowski wrote:
> > On 03.12.2020 16:46, Marek Szyprowski wrote:
> > > On 25.11.2020 03:32, Matthew Wilcox wrote:
> > > > On Tue, Nov 17, 2020 at 11:43:02PM +0000, Matthew Wilcox wrote:
> > > > > On Tue, Nov 17, 2020 at 07:15:13PM +0000, Matthew Wilcox wrote:
> > > > > > I find both of these functions exceptionally confusing.  Does this
> > > > > > make it easier to understand?
> > > > > Never mind, this is buggy.  I'll send something better tomorrow.
> > > > That took a week, not a day.  *sigh*.  At least this is shorter.
> > > > 
> > > > commit 1a02863ce04fd325922d6c3db6d01e18d55f966b
> > > > Author: Matthew Wilcox (Oracle) <willy@...radead.org>
> > > > Date:   Tue Nov 17 10:45:18 2020 -0500
> > > > 
> > > >      fix mm-truncateshmem-handle-truncates-that-split-thps.patch
> > > 
> > > This patch landed in todays linux-next (20201203) as commit 
> > > 8678b27f4b8b ("8678b27f4b8bfc130a13eb9e9f27171bcd8c0b3b"). Sadly it 
> > > breaks booting of ANY of my ARM 32bit test systems, which use initrd. 
> > > ARM64bit based systems boot fine. Here is example of the crash:
> > 
> > One more thing. Reverting those two:
> > 
> > 1b1aa968b0b6 mm-truncateshmem-handle-truncates-that-split-thps-fix-fix
> > 
> > 8678b27f4b8b mm-truncateshmem-handle-truncates-that-split-thps-fix
> > 
> > on top of linux next-20201203 fixes the boot issues.
> 
> We have to revert those two patches as well to fix this one process keeps
> running 100% CPU in find_get_entries() and all other threads are blocking on the
> i_mutex almost forever.
> 
> [  380.735099] INFO: task trinity-c58:2143 can't die for more than 125 seconds.
> [  380.742923] task:trinity-c58     state:R  running task     stack:26056 pid: 2143 ppid:  1914 flags:0x00004006
> [  380.753640] Call Trace:
> [  380.756811]  ? find_get_entries+0x339/0x790
> find_get_entry at mm/filemap.c:1848
> (inlined by) find_get_entries at mm/filemap.c:1904
> [  380.761723]  ? __lock_page_or_retry+0x3f0/0x3f0
> [  380.767009]  ? shmem_undo_range+0x3bf/0xb60
> [  380.771944]  ? unmap_mapping_pages+0x96/0x230
> [  380.777036]  ? find_held_lock+0x33/0x1c0
> [  380.781688]  ? shmem_write_begin+0x1b0/0x1b0
> [  380.786703]  ? unmap_mapping_pages+0xc2/0x230
> [  380.791796]  ? down_write+0xe0/0x150
> [  380.796114]  ? do_wp_page+0xc60/0xc60
> [  380.800507]  ? shmem_truncate_range+0x14/0x80
> [  380.805618]  ? shmem_setattr+0x827/0xc70
> [  380.810274]  ? notify_change+0x6cf/0xc30
> [  380.814941]  ? do_truncate+0xe2/0x180
> [  380.819335]  ? do_truncate+0xe2/0x180
> [  380.823741]  ? do_sys_openat2+0x5c0/0x5c0
> [  380.828484]  ? do_sys_ftruncate+0x2e2/0x4e0
> [  380.833417]  ? trace_hardirqs_on+0x1c/0x150
> [  380.838335]  ? do_syscall_64+0x33/0x40
> [  380.842828]  ? entry_SYSCALL_64_after_hwframe+0x44/0xa9

Thanks for trinitizing.  If you have time, please would you try
replacing the shmem_undo_range() in mm/shmem.c by the version I gave in

https://lore.kernel.org/linux-mm/alpine.LSU.2.11.2012031305070.12944@eggly.anvils/T/#mc15d60a2166f80fe284a18d4758eb4c04cc3255d

That will not help at all with the 32-bit booting issue,
but it does have a good chance of placating trinity.

Thanks,
Hugh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ