From: Daniel Vetter <daniel.vetter@ffwll.ch> To: LKML <linux-kernel@vger.kernel.org> Cc: "Linux MM" <linux-mm@kvack.org>, "DRI Development" <dri-devel@lists.freedesktop.org>, "Daniel Vetter" <daniel.vetter@ffwll.ch>, "Jason Gunthorpe" <jgg@ziepe.ca>, "Chris Wilson" <chris@chris-wilson.co.uk>, "Andrew Morton" <akpm@linux-foundation.org>, "David Rientjes" <rientjes@google.com>, "Jérôme Glisse" <jglisse@redhat.com>, "Michal Hocko" <mhocko@suse.com>, "Christian König" <christian.koenig@amd.com>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>, "Mike Rapoport" <rppt@linux.vnet.ibm.com>, "Jason Gunthorpe" <jgg@mellanox.com>, "Daniel Vetter" <daniel.vetter@intel.com> Subject: [PATCH 2/5] mm, notifier: Prime lockdep Date: Mon, 26 Aug 2019 22:14:22 +0200 [thread overview] Message-ID: <20190826201425.17547-3-daniel.vetter@ffwll.ch> (raw) In-Reply-To: <20190826201425.17547-1-daniel.vetter@ffwll.ch> We want to teach lockdep that mmu notifiers can be called from direct reclaim paths, since on many CI systems load might never reach that level (e.g. when just running fuzzer or small functional tests). Motivated by a discussion with Jason. I've put the annotation into mmu_notifier_register since only when we have mmu notifiers registered is there any point in teaching lockdep about them. Also, we already have a kmalloc(, GFP_KERNEL), so this is safe. Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: David Rientjes <rientjes@google.com> Cc: "Jérôme Glisse" <jglisse@redhat.com> Cc: Michal Hocko <mhocko@suse.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> Cc: linux-mm@kvack.org Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- mm/mmu_notifier.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c index d48d3b2abd68..0523555933c9 100644 --- a/mm/mmu_notifier.c +++ b/mm/mmu_notifier.c @@ -259,6 +259,13 @@ int __mmu_notifier_register(struct mmu_notifier *mn, struct mm_struct *mm) lockdep_assert_held_write(&mm->mmap_sem); BUG_ON(atomic_read(&mm->mm_users) <= 0); + if (IS_ENABLED(CONFIG_LOCKDEP)) { + fs_reclaim_acquire(GFP_KERNEL); + lock_map_acquire(&__mmu_notifier_invalidate_range_start_map); + lock_map_release(&__mmu_notifier_invalidate_range_start_map); + fs_reclaim_release(GFP_KERNEL); + } + mn->mm = mm; mn->users = 1; -- 2.23.0
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel.vetter@ffwll.ch> To: LKML <linux-kernel@vger.kernel.org> Cc: "Michal Hocko" <mhocko@suse.com>, "Linux MM" <linux-mm@kvack.org>, "Daniel Vetter" <daniel.vetter@ffwll.ch>, "Jason Gunthorpe" <jgg@mellanox.com>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>, "DRI Development" <dri-devel@lists.freedesktop.org>, "Jason Gunthorpe" <jgg@ziepe.ca>, "Jérôme Glisse" <jglisse@redhat.com>, "Mike Rapoport" <rppt@linux.vnet.ibm.com>, "David Rientjes" <rientjes@google.com>, "Daniel Vetter" <daniel.vetter@intel.com>, "Andrew Morton" <akpm@linux-foundation.org>, "Christian König" <christian.koenig@amd.com> Subject: [PATCH 2/5] mm, notifier: Prime lockdep Date: Mon, 26 Aug 2019 22:14:22 +0200 [thread overview] Message-ID: <20190826201425.17547-3-daniel.vetter@ffwll.ch> (raw) In-Reply-To: <20190826201425.17547-1-daniel.vetter@ffwll.ch> We want to teach lockdep that mmu notifiers can be called from direct reclaim paths, since on many CI systems load might never reach that level (e.g. when just running fuzzer or small functional tests). Motivated by a discussion with Jason. I've put the annotation into mmu_notifier_register since only when we have mmu notifiers registered is there any point in teaching lockdep about them. Also, we already have a kmalloc(, GFP_KERNEL), so this is safe. Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: David Rientjes <rientjes@google.com> Cc: "Jérôme Glisse" <jglisse@redhat.com> Cc: Michal Hocko <mhocko@suse.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> Cc: linux-mm@kvack.org Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- mm/mmu_notifier.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c index d48d3b2abd68..0523555933c9 100644 --- a/mm/mmu_notifier.c +++ b/mm/mmu_notifier.c @@ -259,6 +259,13 @@ int __mmu_notifier_register(struct mmu_notifier *mn, struct mm_struct *mm) lockdep_assert_held_write(&mm->mmap_sem); BUG_ON(atomic_read(&mm->mm_users) <= 0); + if (IS_ENABLED(CONFIG_LOCKDEP)) { + fs_reclaim_acquire(GFP_KERNEL); + lock_map_acquire(&__mmu_notifier_invalidate_range_start_map); + lock_map_release(&__mmu_notifier_invalidate_range_start_map); + fs_reclaim_release(GFP_KERNEL); + } + mn->mm = mm; mn->users = 1; -- 2.23.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-08-26 20:15 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-26 20:14 [PATCH 0/5] mmu notifer debug annotations Daniel Vetter 2019-08-26 20:14 ` [PATCH 1/5] mm, notifier: Add a lockdep map for invalidate_range_start/end Daniel Vetter 2019-08-26 20:14 ` Daniel Vetter 2019-08-26 20:14 ` Daniel Vetter [this message] 2019-08-26 20:14 ` [PATCH 2/5] mm, notifier: Prime lockdep Daniel Vetter 2019-08-26 20:14 ` [PATCH 3/5] kernel.h: Add non_block_start/end() Daniel Vetter 2019-08-26 20:14 ` Daniel Vetter 2019-08-27 22:50 ` Jason Gunthorpe 2019-08-28 18:33 ` Daniel Vetter 2019-08-28 18:43 ` Jason Gunthorpe 2019-08-28 18:56 ` Daniel Vetter 2019-09-03 7:28 ` Daniel Vetter 2019-09-03 7:36 ` Jason Gunthorpe 2019-08-28 11:43 ` Michal Hocko 2019-08-26 20:14 ` [PATCH 4/5] mm, notifier: Catch sleeping/blocking for !blockable Daniel Vetter 2019-08-26 20:14 ` Daniel Vetter 2019-08-26 20:14 ` [PATCH 5/5] mm, notifier: annotate with might_sleep() Daniel Vetter 2019-08-26 20:14 ` Daniel Vetter 2019-08-27 23:04 ` [PATCH 0/5] mmu notifer debug annotations Jason Gunthorpe 2019-09-05 14:49 ` Jason Gunthorpe
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=20190826201425.17547-3-daniel.vetter@ffwll.ch \ --to=daniel.vetter@ffwll.ch \ --cc=akpm@linux-foundation.org \ --cc=chris@chris-wilson.co.uk \ --cc=christian.koenig@amd.com \ --cc=daniel.vetter@intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=gregkh@linuxfoundation.org \ --cc=jgg@mellanox.com \ --cc=jgg@ziepe.ca \ --cc=jglisse@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@suse.com \ --cc=rientjes@google.com \ --cc=rppt@linux.vnet.ibm.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: linkBe 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.