From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8DDCCC433DF for ; Thu, 25 Jun 2020 20:26:37 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 493D62072E for ; Thu, 25 Jun 2020 20:26:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="fqYH5g3m" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 493D62072E Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BF6056B0068; Thu, 25 Jun 2020 16:26:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BCBF66B006E; Thu, 25 Jun 2020 16:26:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ABBB16B0070; Thu, 25 Jun 2020 16:26:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0058.hostedemail.com [216.40.44.58]) by kanga.kvack.org (Postfix) with ESMTP id 9575D6B0068 for ; Thu, 25 Jun 2020 16:26:36 -0400 (EDT) Received: from smtpin02.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id E1C1816495 for ; Thu, 25 Jun 2020 20:26:35 +0000 (UTC) X-FDA: 76968867150.02.birth01_17140e026e4f Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin02.hostedemail.com (Postfix) with ESMTP id 6B85C30000D79BE0 for ; Thu, 25 Jun 2020 20:26:35 +0000 (UTC) X-HE-Tag: birth01_17140e026e4f X-Filterd-Recvd-Size: 7346 Received: from mail-lf1-f67.google.com (mail-lf1-f67.google.com [209.85.167.67]) by imf02.hostedemail.com (Postfix) with ESMTP for ; Thu, 25 Jun 2020 20:26:34 +0000 (UTC) Received: by mail-lf1-f67.google.com with SMTP id g139so3917512lfd.10 for ; Thu, 25 Jun 2020 13:26:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=B2e+9BhdyoZKBQhVVowF1SUb9GpWFGzrObUCYCRlOxI=; b=fqYH5g3mAVkK+2WZwIzFmrKkwPU74dZDdILGRzvB+EKLBaABufN13Q52U1KEYFzKlj sRQmu46b+/4Z7IIYH95+8ndxycal3l2WZaWAzv1qYuNYXsZrdU/Tyky1DvYzVBEKe0wm MvX7Y1VUeWO3u52ih53lEOPHSNh8KLDRr4V1o/Nn+bBdXlFu1J752jg2nNn2zKOknPJx d+4MSZBJabUhn6BgU7g+lIdJutoL8At5Oe/Tyjel9X7rUFLODAnFREzm/rsKPrqsAfel 6DGSdkPRuo9UrS+Z6n8cXsu4m+GeRHSZLmdm+Exh6nSIOIhsGNsRikf1UFXXmum7wZ6v p4XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=B2e+9BhdyoZKBQhVVowF1SUb9GpWFGzrObUCYCRlOxI=; b=W2WLaE6JvnQh/dEUmm1ZgYDtwnWAP7Fky38P4QgOeC1ipPaEpRCP/xkOtyAW386YSG VIIFd10VJ7G/qBGxAjo07Nawr6ykLX4Ejnd399NjxABJjJGSilrSPTRDpd8o3YpbfAxA D8KsJYIfznHWwhtYEl4RBKDnNxlltz9+1goJV04rvYE4Dpy9kAb22m849UZ30F6qdZhb jaOMTSRlSbg2Ar6kgjdAfqK04pgxbgLjF8gogPztXs8z+M36+nU6Qlutq7Gj8LGYSas+ Zh/KqKoXRj/2Zd5PmDKiYD+Z84BrIO+BU59IOsrN0WwM6CvWS6uvCXOyScMjWK7NQwwe SEJA== X-Gm-Message-State: AOAM532AbiQgfaMFtIVwlvsBd63BvXUk9QNqlT6oiIkEteWtULivzQK7 3qksv0SRCtckdJxZdDllhTLZf7oqVZAL0oprIyKQvQ== X-Google-Smtp-Source: ABdhPJxqgKr3mQm8vcKHYSo6pKy0kpTyzuBP2A9M9qBVMIfGzh5iKZneV+1lijdcvCUqsar9qmFYOGds1GQdCVHg5wM= X-Received: by 2002:ac2:41d9:: with SMTP id d25mr19290098lfi.76.1593116793108; Thu, 25 Jun 2020 13:26:33 -0700 (PDT) MIME-Version: 1.0 References: <20200618222225.102337-1-axelrasmussen@google.com> <20200618222225.102337-2-axelrasmussen@google.com> <20200619083023.GS576905@hirez.programming.kicks-ass.net> In-Reply-To: From: Axel Rasmussen Date: Thu, 25 Jun 2020 13:25:56 -0700 Message-ID: Subject: Re: [RFC PATCH v3 1/1] mmap_lock: add tracepoints around mmap_lock acquisition To: Peter Zijlstra Cc: Michel Lespinasse , David Howells , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Jonathan Adams , David Rientjes , Ying Han Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 6B85C30000D79BE0 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam02 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Peter, one additional question for you. Would you accept this patch if: - The rwsem.{h,c} and lockdep.h changes were reverted - It was split up into 2-3 commits ? Thanks! On Fri, Jun 19, 2020 at 9:28 AM Axel Rasmussen wrote: > > On Fri, Jun 19, 2020 at 1:30 AM Peter Zijlstra wrote: > > > > On Thu, Jun 18, 2020 at 03:22:25PM -0700, Axel Rasmussen wrote: > > > diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c > > > index f11b9bd3431d..6aabea1cbc5d 100644 > > > --- a/kernel/locking/rwsem.c > > > +++ b/kernel/locking/rwsem.c > > > @@ -1495,6 +1495,20 @@ void __sched down_read(struct rw_semaphore *sem) > > > } > > > EXPORT_SYMBOL(down_read); > > > > > > +/* > > > + * lock for reading > > > + */ > > > +void __sched down_read_contended_hook(struct rw_semaphore *sem, > > > + void (*pre)(void *), > > > + void (*post)(void *), void *arg) > > > +{ > > > + might_sleep(); > > > + rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); > > > + LOCK_CONTENDED_HOOK(sem, __down_read_trylock, __down_read, pre, post, > > > + arg); > > > +} > > > +EXPORT_SYMBOL(down_read_contended_hook); > > > + > > > int __sched down_read_killable(struct rw_semaphore *sem) > > > { > > > might_sleep(); > > > @@ -1509,6 +1523,24 @@ int __sched down_read_killable(struct rw_semaphore *sem) > > > } > > > EXPORT_SYMBOL(down_read_killable); > > > > > > +int __sched down_read_killable_contended_hook(struct rw_semaphore *sem, > > > + void (*pre)(void *), > > > + void (*post)(void *, int), > > > + void *arg) > > > +{ > > > + might_sleep(); > > > + rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); > > > + > > > + if (LOCK_CONTENDED_HOOK_RETURN(sem, __down_read_trylock, > > > + __down_read_killable, pre, post, arg)) { > > > + rwsem_release(&sem->dep_map, _RET_IP_); > > > + return -EINTR; > > > + } > > > + > > > + return 0; > > > +} > > > +EXPORT_SYMBOL(down_read_killable_contended_hook); > > > + > > > /* > > > * trylock for reading -- returns 1 if successful, 0 if contention > > > */ > > > @@ -1533,6 +1565,20 @@ void __sched down_write(struct rw_semaphore *sem) > > > } > > > EXPORT_SYMBOL(down_write); > > > > > > +/* > > > + * lock for writing > > > + */ > > > +void __sched down_write_contended_hook(struct rw_semaphore *sem, > > > + void (*pre)(void *), > > > + void (*post)(void *), void *arg) > > > +{ > > > + might_sleep(); > > > + rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_); > > > + LOCK_CONTENDED_HOOK(sem, __down_write_trylock, __down_write, pre, post, > > > + arg); > > > +} > > > +EXPORT_SYMBOL(down_write_contended_hook); > > > + > > > /* > > > * lock for writing > > > */ > > > @@ -1551,6 +1597,24 @@ int __sched down_write_killable(struct rw_semaphore *sem) > > > } > > > EXPORT_SYMBOL(down_write_killable); > > > > > > +int __sched down_write_killable_contended_hook(struct rw_semaphore *sem, > > > + void (*pre)(void *), > > > + void (*post)(void *, int), > > > + void *arg) > > > +{ > > > + might_sleep(); > > > + rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); > > > + > > > + if (LOCK_CONTENDED_HOOK_RETURN(sem, __down_write_trylock, > > > + __down_write_killable, pre, post, arg)) { > > > + rwsem_release(&sem->dep_map, _RET_IP_); > > > + return -EINTR; > > > + } > > > + > > > + return 0; > > > +} > > > +EXPORT_SYMBOL(down_write_killable_contended_hook); > > > + > > > /* > > > * trylock for writing -- returns 1 if successful, 0 if contention > > > */ > > > > NAK, absolutely not going to happen. This is an atrocious API to expose, > > worse you're exporting. > > Ack about splitting this up. > > Thanks for taking a look. :)