From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by kanga.kvack.org (Postfix) with ESMTP id 793AA6B0006 for ; Wed, 3 Oct 2018 03:40:10 -0400 (EDT) Received: by mail-pg1-f198.google.com with SMTP id e6-v6so1672706pge.5 for ; Wed, 03 Oct 2018 00:40:10 -0700 (PDT) Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id n32-v6si653110pgm.469.2018.10.03.00.40.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Oct 2018 00:40:09 -0700 (PDT) Subject: Re: [PATCH 13/16] mm: Replace spin_is_locked() with lockdep References: <20181003053902.6910-1-ldr709@gmail.com> <20181003053902.6910-14-ldr709@gmail.com> From: Vlastimil Babka Message-ID: Date: Wed, 3 Oct 2018 09:37:26 +0200 MIME-Version: 1.0 In-Reply-To: <20181003053902.6910-14-ldr709@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Lance Roy , linux-kernel@vger.kernel.org Cc: "Paul E. McKenney" , Andrew Morton , "Kirill A. Shutemov" , Yang Shi , Matthew Wilcox , Mel Gorman , Jan Kara , Shakeel Butt , linux-mm@kvack.org On 10/3/18 7:38 AM, Lance Roy wrote: > lockdep_assert_held() is better suited to checking locking requirements, > since it won't get confused when someone else holds the lock. This is > also a step towards possibly removing spin_is_locked(). Agreed > Signed-off-by: Lance Roy > Cc: Andrew Morton > Cc: "Kirill A. Shutemov" > Cc: Yang Shi > Cc: Matthew Wilcox > Cc: Mel Gorman > Cc: Vlastimil Babka > Cc: Jan Kara > Cc: Shakeel Butt > Cc: Acked-by: Vlastimil Babka > --- > mm/khugepaged.c | 4 ++-- > mm/swap.c | 3 +-- > 2 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index a31d740e6cd1..80f12467ccb3 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -1225,7 +1225,7 @@ static void collect_mm_slot(struct mm_slot *mm_slot) > { > struct mm_struct *mm = mm_slot->mm; > > - VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&khugepaged_mm_lock)); > + lockdep_assert_held(&khugepaged_mm_lock); > > if (khugepaged_test_exit(mm)) { > /* free mm_slot */ > @@ -1665,7 +1665,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, > int progress = 0; > > VM_BUG_ON(!pages); > - VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&khugepaged_mm_lock)); > + lockdep_assert_held(&khugepaged_mm_lock); > > if (khugepaged_scan.mm_slot) > mm_slot = khugepaged_scan.mm_slot; > diff --git a/mm/swap.c b/mm/swap.c > index 26fc9b5f1b6c..c89eb442c0bf 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -824,8 +824,7 @@ void lru_add_page_tail(struct page *page, struct page *page_tail, > VM_BUG_ON_PAGE(!PageHead(page), page); > VM_BUG_ON_PAGE(PageCompound(page_tail), page); > VM_BUG_ON_PAGE(PageLRU(page_tail), page); > - VM_BUG_ON(NR_CPUS != 1 && > - !spin_is_locked(&lruvec_pgdat(lruvec)->lru_lock)); > + lockdep_assert_held(&lruvec_pgdat(lruvec)->lru_lock); > > if (!list) > SetPageLRU(page_tail); >