Re: [PATCH v2 0/4] lockdep/crossrelease: Apply crossrelease to page locks

From: Matthew Wilcox
Date: Tue Dec 05 2017 - 00:30:39 EST


On Mon, Dec 04, 2017 at 02:16:19PM +0900, Byungchul Park wrote:
> For now, wait_for_completion() / complete() works with lockdep, add
> lock_page() / unlock_page() and its family to lockdep support.
>
> Changes from v1
> - Move lockdep_map_cross outside of page_ext to make it flexible
> - Prevent allocating lockdep_map per page by default
> - Add a boot parameter allowing the allocation for debugging
>
> Byungchul Park (4):
> lockdep: Apply crossrelease to PG_locked locks
> lockdep: Apply lock_acquire(release) on __Set(__Clear)PageLocked
> lockdep: Move data of CONFIG_LOCKDEP_PAGELOCK from page to page_ext
> lockdep: Add a boot parameter enabling to track page locks using
> lockdep and disable it by default

I don't like the way you've structured this patch series; first adding
the lockdep map to struct page, then moving it to page_ext.

I also don't like it that you've made CONFIG_LOCKDEP_PAGELOCK not
individually selectable. I might well want a kernel with crosslock
support, but only for completions.