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=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 BEAA4C35242 for ; Tue, 11 Feb 2020 23:42:18 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 568012070A for ; Tue, 11 Feb 2020 23:42:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="Z8SpItfG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 568012070A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mellanox.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id B087D6B0374; Tue, 11 Feb 2020 18:42:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AB97A6B0375; Tue, 11 Feb 2020 18:42:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9A8C06B0376; Tue, 11 Feb 2020 18:42:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0204.hostedemail.com [216.40.44.204]) by kanga.kvack.org (Postfix) with ESMTP id 7EF6F6B0374 for ; Tue, 11 Feb 2020 18:42:17 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 2FF628248076 for ; Tue, 11 Feb 2020 23:42:17 +0000 (UTC) X-FDA: 76479472314.14.suit67_4e0f4976fc73e X-HE-Tag: suit67_4e0f4976fc73e X-Filterd-Recvd-Size: 8198 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150072.outbound.protection.outlook.com [40.107.15.72]) by imf10.hostedemail.com (Postfix) with ESMTP for ; Tue, 11 Feb 2020 23:42:16 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q1PdFUfPQ24pq3zDNJQGk+w7g0iJR5lZCeJKJOceX+//m+gJPp7r4a4HZH+bfmWeNkr2/8Ab4SWJ3quyLbsquaS+R40ie2rucSkx9dELaVXLnC49Hm1rV0cYE/04SY0uICQs8mxSGr23NvSopks4ovDLm/WtcvoxcGVLIjjBG3eIMvseiizwfe2zPhPz1Qvnk5IHExO1QzwIt+aNuwGaz2emTmvCXYl3w5/ild8DAuVcclP67ZNw2TGiGRdgMDAIn8G7Y9Qt+8kBYjiCohtfFi9ZkKd2/eXJ2qMHeY2GvpjjZ369tN3r2URqDrP4U/l1EYTB426RSla8QueSvs5TSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=stJYMe8nevqIpeyMQ3v9PvJf3J/Y8BSgnD6n/WUfHMc=; b=CyfJ0q5c0sYAFFCsyKU59M5x6Yz6w59OAWrZgXOaX20bJR9D+56tjgQx3a9ahC5AUC+h8TN4atkGneVIV8IdBhL37eaESlx/3ES9uW2mRKkDyH2OpA+8KP6/znkICY7ieOvVxhr0Sbzn7LB4NkQ3/1Z5W8mO1PS7E/WmKn3ABeejhlWG90lMeW7gmAUAuEgEZAee7v1JrTM/+rqKg/ZajyHTK/LRPtlU9176hmqYlvPhmCzx2EJP5P3JQ5OxLfRIqNJbpg5e0KeF8ym/EMp6gNaLp8aWVP5rQzrwAZ1Eo3HgPKtJkcv7WsZMI+pVtcIt4nx7aU62fLpoKZ2lwGvCrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=stJYMe8nevqIpeyMQ3v9PvJf3J/Y8BSgnD6n/WUfHMc=; b=Z8SpItfGWRRSexC3a/8ssJTwLOlFrbJolxr7+sjNWkRl9Aj68Q7GgfUgsJ4Jl4RTPit4DZiH/i+a9DZCZutqjYwrDJ4cOrVWE51VCdOh8pRymttbRKRI37YTPM3F3jX7c4tEWd2ZSEvC702JP6y8ouxGhyg+Nb3YMLfcVGy1rUQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=jgg@mellanox.com; Received: from VI1PR05MB4141.eurprd05.prod.outlook.com (52.133.14.15) by VI1PR05MB6062.eurprd05.prod.outlook.com (20.178.204.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Tue, 11 Feb 2020 23:42:14 +0000 Received: from VI1PR05MB4141.eurprd05.prod.outlook.com ([fe80::1c00:7925:d5c6:d60d]) by VI1PR05MB4141.eurprd05.prod.outlook.com ([fe80::1c00:7925:d5c6:d60d%7]) with mapi id 15.20.2707.030; Tue, 11 Feb 2020 23:42:14 +0000 Date: Tue, 11 Feb 2020 19:42:10 -0400 From: Jason Gunthorpe To: Ralph Campbell Cc: linux-mm@kvack.org, Michal Hocko , =?utf-8?B?SsOpcsO0bWU=?= Glisse , Christoph Hellwig Subject: Re: [PATCH v3] mm/mmu_notifier: prevent unpaired invalidate_start and invalidate_end Message-ID: <20200211234210.GQ4271@mellanox.com> References: <20200211205252.GA10003@ziepe.ca> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: BL0PR02CA0075.namprd02.prod.outlook.com (2603:10b6:208:51::16) To VI1PR05MB4141.eurprd05.prod.outlook.com (2603:10a6:803:44::15) MIME-Version: 1.0 Received: from mlx.ziepe.ca (142.68.57.212) by BL0PR02CA0075.namprd02.prod.outlook.com (2603:10b6:208:51::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21 via Frontend Transport; Tue, 11 Feb 2020 23:42:13 +0000 Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1j1fAQ-0003rf-Lo; Tue, 11 Feb 2020 19:42:10 -0400 X-Originating-IP: [142.68.57.212] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 945fcaf2-9880-41a9-64c9-08d7af4c0547 X-MS-TrafficTypeDiagnostic: VI1PR05MB6062: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2150; X-Forefront-PRVS: 0310C78181 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4636009)(136003)(366004)(39860400002)(396003)(346002)(376002)(199004)(189003)(186003)(81156014)(8936002)(2906002)(6916009)(81166006)(8676002)(52116002)(26005)(9786002)(9746002)(36756003)(478600001)(33656002)(316002)(66946007)(2616005)(66556008)(66476007)(86362001)(5660300002)(1076003)(54906003)(4326008)(24400500001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR05MB6062;H:VI1PR05MB4141.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mg7NHgkeLCWjvwsVDcwgPWtIN45BYbJrBmDNo20YXgRo4q9yPmRq1qZ569R3K8Pik2p1qUH6/CsaFlGgVnUMOxsCkHSweRTauNwxlWyez/qaz648PWaRyljyYo4jLMPRBM65UlKdHy8YQbEeJXbC/IOGPt+kJ4Fm8Iy+PCD//rgjGmd0HZDUQRW393DuC66qf9FGs4/BYPgh/TE1nqakcMzRCYyhGLyNeK5qnsqdSrcMgiB8vcsGyHFDkJZYC5T+0vLJ0P18NbAitQSIX76QbRQu9w50PioEEVKNzG5D9GipF/MgwQ6n15i7rSMiS1IkOlz6wQWI2iib3pgNTTemN48hl39SM4qCuRpHbJJxvZ3jBjJgJVdQNzRME+wxetCHG1nK+kYjqn+9UmJZIf3FBp1+hcuZ2sQWvs5GMPP27sUn5E2dvv/pVNZxhdRepqMMJYqVNHaMpHXAnpccn7MYPaoBRkgjKk8NIlfFGpCWTIHnKPRaikmWEdzd/j3mjgat X-MS-Exchange-AntiSpam-MessageData: MWWjrUj2vTekMVNaqRARfTHIh52vB1zizsYcoVF4ZSBnhIG45HY/uaBgbNSb46bOFcz0cyOS9UNXY5oazS3sl77MHCwkq2CC9QZtoMhEgFlRUX8ySJVl5U960HPXEevzLmSbrpvh+hs8SWY0YvHRGg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 945fcaf2-9880-41a9-64c9-08d7af4c0547 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2020 23:42:13.9933 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JXnHt6K2yt2YARNAKDe/NdksZ+hs0Sy5aKJEtRIRrLfqD+JvEPJu3LWJNVZhWLcq1TNIlNdpDeoq+vZM8TizvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6062 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: On Tue, Feb 11, 2020 at 01:28:42PM -0800, Ralph Campbell wrote: > > +/* > > + * Add a hlist subscription to the list. The list is kept sorted by the > > + * existence of ops->invalidate_range_end. If there is more than one > > + * invalidate_range_end in the list then this process can no longer support > > + * non-blocking invalidation. > > + * > > + * non-blocking invalidation is problematic as a requirement to block results in > > + * the invalidation being aborted, however due to the use of RCU we have no > > + * reliable way to ensure that every sueessful invalidate_range_start() results > > s/sueessful/successful woops, yes, two spellos, thanks > > +{ > > + struct mmu_notifier *last = NULL; > > + struct mmu_notifier *itr; > > + > > + hlist_for_each_entry(itr, &subscriptions->list, hlist) > > + last = itr; > > + > > + if (last && last->ops->invalidate_range_end && > > + subscription->ops->invalidate_range_end) { > > + subscriptions->no_blocking = true; > > + pr_warn_once( > > + "%s (%d) created two mmu_notifier's with invalidate_range_end(): %ps and %ps, non-blocking notifiers disabled\n", > > line length? Style guide is to keep strings across the 80 cols for grepability > > /* > > * Same as mmu_notifier_register but here the caller must hold the mmap_sem in > > * write mode. A NULL mn signals the notifier is being registered for itree > > @@ -660,8 +707,8 @@ int __mmu_notifier_register(struct mmu_notifier *subscription, > > subscription->users = 1; > > spin_lock(&mm->notifier_subscriptions->lock); > > - hlist_add_head_rcu(&subscription->hlist, > > - &mm->notifier_subscriptions->list); > > + mn_hist_add_subscription(mm->notifier_subscriptions, > > + subscription); > > spin_unlock(&mm->notifier_subscriptions->lock); > > } else > > mm->notifier_subscriptions->has_itree = true; > > > > Other than some nits, looks good to me so you can add: > Reviewed-by: Ralph Campbell Great, thanks! Jason