Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3914722yba; Tue, 9 Apr 2019 07:23:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqzFOCAfIyvr7kzomk7zLtZnnn4Uge+qX/BhdxzdrVi6UmPhyd4dgVr0Mu26mTRP68nMzo7o X-Received: by 2002:a65:4302:: with SMTP id j2mr33331439pgq.291.1554819810769; Tue, 09 Apr 2019 07:23:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554819810; cv=none; d=google.com; s=arc-20160816; b=bIYkytjNT2ahpY/PmWgRj2MIoKLNj7djRp0PSlx2+RSYxlNHENZJxIihInd6H2zSZV WkC2j1wU1JlfTFzWkCJeT/UtOxQvfDZ6X+VOFeLljFI072JNE+vocvfC3jIe/xN5RFk6 a61vJBIC9kLsvlxkIIIaHG6oHvzR2N4yslJ/XBP6IC69aUoW4xpieKV7HkFUb2nxB/0J ePH5Xgm3rEvkIzQwsMyb8VppPCBpC6SaX8gNcDGTnAsJ7DRUuupL/dVQj+8kVMDBRfki qMd9cP31uGCr193hVSozRZ/FapqjXlnkYPD6wCMkAC4C8nxmXSm+mSGu7q+Fw36yJVsp xMVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=jETpLMT8PCZ1W45Cc9kmHovSdI/plV0Hlc35ED1sZrY=; b=txpWsFMFfR5DvD2fCKJMzRXYOG+lmzXDC61Tbd/p/94G6+pJI5WLfaTC+tNG9rc5Ts Rco8/4THUde+IRiXYJCZvFwSUNIJthfgdLn3ktG9xaz0kIB5NHwMaVb0J7y7nomLyf8Y XnKP/dJYbs8CtwhIxBmuz4iuU5MS0n6hpLNbwhyV9Nl9YVSz6mG/3XheZvqSyAntGZH0 RvjrT1EX/6cNlVJbm47EXtyowFeqLMFG18OQhckI8aQsVTj3r2HGplrpp6QBoqgAjnUw QymmHxQoX5B495lyi/fAUDHogdQcgWmnjnDEaIrMiQlU7VzMi/JqWwpdCEp59TUTPHrS yAoA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e6si21118523pgc.62.2019.04.09.07.23.14; Tue, 09 Apr 2019 07:23:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726577AbfDIOV4 (ORCPT + 99 others); Tue, 9 Apr 2019 10:21:56 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53681 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726001AbfDIOV4 (ORCPT ); Tue, 9 Apr 2019 10:21:56 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7AF093167695; Tue, 9 Apr 2019 14:21:50 +0000 (UTC) Received: from redhat.com (unknown [10.20.6.236]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 828C764446; Tue, 9 Apr 2019 14:21:28 +0000 (UTC) Date: Tue, 9 Apr 2019 10:21:26 -0400 From: Jerome Glisse To: Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Christian =?iso-8859-1?Q?K=F6nig?= , Joonas Lahtinen , Jani Nikula , Rodrigo Vivi , Jan Kara , Andrea Arcangeli , Peter Xu , Felix Kuehling , Jason Gunthorpe , Ross Zwisler , Dan Williams , Paolo Bonzini , Alex Deucher , Radim =?utf-8?B?S3LEjW3DocWZ?= , Michal Hocko , Ben Skeggs , Ralph Campbell , John Hubbard , kvm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, Arnd Bergmann Subject: Re: [PATCH v6 0/8] mmu notifier provide context informations Message-ID: <20190409142126.GC4190@redhat.com> References: <20190326164747.24405-1-jglisse@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190326164747.24405-1-jglisse@redhat.com> User-Agent: Mutt/1.11.3 (2019-02-01) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Tue, 09 Apr 2019 14:21:56 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Andrew anything blocking this for 5.2 ? Should i ask people (ie the end user of this) to re-ack v6 (it is the same as previous version just rebase and dropped kvm bits). On Tue, Mar 26, 2019 at 12:47:39PM -0400, jglisse@redhat.com wrote: > From: Jérôme Glisse > > (Andrew this apply on top of my HMM patchset as otherwise you will have > conflict with changes to mm/hmm.c) > > Changes since v5: > - drop KVM bits waiting for KVM people to express interest if they > do not then i will post patchset to remove change_pte_notify as > without the changes in v5 change_pte_notify is just useless (it > it is useless today upstream it is just wasting cpu cycles) > - rebase on top of lastest Linus tree > > Previous cover letter with minor update: > > > Here i am not posting users of this, they already have been posted to > appropriate mailing list [6] and will be merge through the appropriate > tree once this patchset is upstream. > > Note that this serie does not change any behavior for any existing > code. It just pass down more information to mmu notifier listener. > > The rational for this patchset: > > CPU page table update can happens for many reasons, not only as a > result of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) > but also as a result of kernel activities (memory compression, reclaim, > migration, ...). > > This patch introduce a set of enums that can be associated with each > of the events triggering a mmu notifier: > > - UNMAP: munmap() or mremap() > - CLEAR: page table is cleared (migration, compaction, reclaim, ...) > - PROTECTION_VMA: change in access protections for the range > - PROTECTION_PAGE: change in access protections for page in the range > - SOFT_DIRTY: soft dirtyness tracking > > Being able to identify munmap() and mremap() from other reasons why the > page table is cleared is important to allow user of mmu notifier to > update their own internal tracking structure accordingly (on munmap or > mremap it is not longer needed to track range of virtual address as it > becomes invalid). Without this serie, driver are force to assume that > every notification is an munmap which triggers useless trashing within > drivers that associate structure with range of virtual address. Each > driver is force to free up its tracking structure and then restore it > on next device page fault. With this serie we can also optimize device > page table update [6]. > > More over this can also be use to optimize out some page table updates > like for KVM where we can update the secondary MMU directly from the > callback instead of clearing it. > > ACKS AMD/RADEON https://lkml.org/lkml/2019/2/1/395 > ACKS RDMA https://lkml.org/lkml/2018/12/6/1473 > > Cheers, > Jérôme > > [1] v1 https://lkml.org/lkml/2018/3/23/1049 > [2] v2 https://lkml.org/lkml/2018/12/5/10 > [3] v3 https://lkml.org/lkml/2018/12/13/620 > [4] v4 https://lkml.org/lkml/2019/1/23/838 > [5] v5 https://lkml.org/lkml/2019/2/19/752 > [6] patches to use this: > https://lkml.org/lkml/2019/1/23/833 > https://lkml.org/lkml/2019/1/23/834 > https://lkml.org/lkml/2019/1/23/832 > https://lkml.org/lkml/2019/1/23/831 > > Cc: Andrew Morton > Cc: linux-mm@kvack.org > Cc: Christian König > Cc: Joonas Lahtinen > Cc: Jani Nikula > Cc: Rodrigo Vivi > Cc: Jan Kara > Cc: Andrea Arcangeli > Cc: Peter Xu > Cc: Felix Kuehling > Cc: Jason Gunthorpe > Cc: Ross Zwisler > Cc: Dan Williams > Cc: Paolo Bonzini > Cc: Alex Deucher > Cc: Radim Krčmář > Cc: Michal Hocko > Cc: Christian Koenig > Cc: Ben Skeggs > Cc: Ralph Campbell > Cc: John Hubbard > Cc: kvm@vger.kernel.org > Cc: dri-devel@lists.freedesktop.org > Cc: linux-rdma@vger.kernel.org > Cc: Arnd Bergmann > > Jérôme Glisse (8): > mm/mmu_notifier: helper to test if a range invalidation is blockable > mm/mmu_notifier: convert user range->blockable to helper function > mm/mmu_notifier: convert mmu_notifier_range->blockable to a flags > mm/mmu_notifier: contextual information for event enums > mm/mmu_notifier: contextual information for event triggering > invalidation v2 > mm/mmu_notifier: use correct mmu_notifier events for each invalidation > mm/mmu_notifier: pass down vma and reasons why mmu notifier is > happening v2 > mm/mmu_notifier: mmu_notifier_range_update_to_read_only() helper > > drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 8 ++-- > drivers/gpu/drm/i915/i915_gem_userptr.c | 2 +- > drivers/gpu/drm/radeon/radeon_mn.c | 4 +- > drivers/infiniband/core/umem_odp.c | 5 +- > drivers/xen/gntdev.c | 6 +-- > fs/proc/task_mmu.c | 3 +- > include/linux/mmu_notifier.h | 63 +++++++++++++++++++++++-- > kernel/events/uprobes.c | 3 +- > mm/hmm.c | 6 +-- > mm/huge_memory.c | 14 +++--- > mm/hugetlb.c | 12 +++-- > mm/khugepaged.c | 3 +- > mm/ksm.c | 6 ++- > mm/madvise.c | 3 +- > mm/memory.c | 25 ++++++---- > mm/migrate.c | 5 +- > mm/mmu_notifier.c | 12 ++++- > mm/mprotect.c | 4 +- > mm/mremap.c | 3 +- > mm/oom_kill.c | 3 +- > mm/rmap.c | 6 ++- > virt/kvm/kvm_main.c | 3 +- > 22 files changed, 147 insertions(+), 52 deletions(-) > > -- > 2.20.1 >