[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240103104907.2657-1-hdanton@sina.com>
Date: Wed, 3 Jan 2024 18:49:07 +0800
From: Hillf Danton <hdanton@...a.com>
To: Matthew Wilcox <willy@...radead.org>
Cc: Genes Lists <lists@...ience.com>,
linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org,
linux-mm@...ck.org
Subject: Re: 6.6.8 stable: crash in folio_mark_dirty
On Mon, 1 Jan 2024 14:11:02 +0000 Matthew Wilcox
>
> From an mm point of view, what is implicit is that truncate calls
> unmap_mapping_folio -> unmap_mapping_range_tree ->
> unmap_mapping_range_vma -> zap_page_range_single -> unmap_single_vma ->
> unmap_page_range -> zap_p4d_range -> zap_pud_range -> zap_pmd_range ->
> zap_pte_range -> pte_offset_map_lock()
>
> So a truncate will take the page lock, then spin on the pte lock
> until the racing munmap() has finished (ok, this was an exit(), not
> a munmap(), but exit() does an implicit munmap()).
>
But ptl fails to explain the warning reported, while the sequence in
__block_commit_write()
mark_buffer_dirty();
folio_mark_uptodate();
hints the warning is bogus.
Powered by blists - more mailing lists