From patchwork Wed Jan 23 22:23:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jerome Glisse X-Patchwork-Id: 10777991 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9DFED1390 for ; Wed, 23 Jan 2019 22:23:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 908792D368 for ; Wed, 23 Jan 2019 22:23:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8479B2D396; Wed, 23 Jan 2019 22:23:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1857B2D3D7 for ; Wed, 23 Jan 2019 22:23:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5CAE38E0052; Wed, 23 Jan 2019 17:23:43 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 508D38E0047; Wed, 23 Jan 2019 17:23:43 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 21DD68E0052; Wed, 23 Jan 2019 17:23:43 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by kanga.kvack.org (Postfix) with ESMTP id E0BD98E0047 for ; Wed, 23 Jan 2019 17:23:42 -0500 (EST) Received: by mail-qt1-f198.google.com with SMTP id q33so4209476qte.23 for ; Wed, 23 Jan 2019 14:23:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=fJRovSQTlFFDH/WUnYlgYbMcyCf5O04FUu8tM8xA5uc=; b=onTfLMDmO8unTL85CQIsjvxV/PNLq47G1QGZsjQhDMohRxifjOH4YvUJw51BwDTbN9 ZMz2ni7nuj1pQvcHf1ikiFww8dSRCVHsRlVOtAPNDFfRW3KyTrMxxBOYXeDcGiA4qKC0 3uEsI6sK/76cHagvL/3rQYqCbplnSiEE8MF8UgEk6VK6ZWVx1cLsFQ32U999bllYdTsZ L+F6sobXYe/35s1qYssWKhf7c/psf0MLuBwfcvme+xec0RMAoYnKhAYe1mjz4K3J+LYO qkLKlgMjgf5F55mioFrGTFruxRWtdN/8e9WNVQ47IgfLBVt1IPsOuF5zn7deEz4lhEej zspw== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=jglisse@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com X-Gm-Message-State: AJcUuke8/eTG+mkPKGcxiSVGqAdpFrQaS2rp7yl//zaDaKhWlmqsOzQo /2P707Dk9bY1qmZpNwIVYFrzkJU0hynSB8SmCyR7LkbtB6Tb1s0vGYIGjefsqpbrMM12h1uiGzS Z0XR+qfqYfy0TWVX4TE7Fy/tkaQK7ERLQktykOwBAADR+uexYvF9YlyvE68idezVyHQ== X-Received: by 2002:a37:a904:: with SMTP id s4mr3564393qke.237.1548282222678; Wed, 23 Jan 2019 14:23:42 -0800 (PST) X-Google-Smtp-Source: ALg8bN6rnOe5lj8/yR8w560KP/Sli3DLBHRRMOYv7LSYyQB2b6EPXRDbvG/gtki6slHc+6cewGOB X-Received: by 2002:a37:a904:: with SMTP id s4mr3564356qke.237.1548282222121; Wed, 23 Jan 2019 14:23:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548282222; cv=none; d=google.com; s=arc-20160816; b=XdOUi2jh90ONK+0cU4Lx/EbJX2v/XPt6ZYN3BQsCOJC7OE+7PnOktXfQe9R1zUveCr Gz2R+zYg6oKX3InOglBAn8yiokIB35HTEOOGjsNz6eyQRAgQgPRzHUQ1Z5VChZJ0ys9O N7NhNgwAomK8zYJ5SsUenvXL925Pkl6VixEc4FBmAV3DauBKa+GOErk6pcnVGVtVRIt4 h/SI8dLf82d5+zG1B7YaKYXHYQXYKq73tti7sHi0Sb/E4Doedrwl0s6J/kVAraGfkXub Zly6Kl2WF0csqX5BOPUGgvmBFPiOE1N94t1qpG40QeOMgObr+33ENlVwV874iu5d0Xzi xxqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=fJRovSQTlFFDH/WUnYlgYbMcyCf5O04FUu8tM8xA5uc=; b=FFfR7fyHXBGpY343z9HKu+0SOpkZwPFwK6uSeCAdBw6jyUkhjycogO5bGrSfne0dN6 2kEJuEHJ2Jxthy9WAmrGLfpBlsaasIswx1FHNw7ahzqmAnLjcQVN52wror1FYd9tkviH AI9JUy1qcNdmCjCY/8tp2jnO5maXYeenjliCP1JgMTkLrB4/tBcJSbCmC3bztZSaTXf2 Q/ftjcwpI7XVEUR9uOGk9YratFRjIFrCHYNHc92ak281Z9A02LYyc7MLjtz0PhGVmPrb DDfiphflr8Jup72PYRpoH5WqCHaLRVxnwFvTJKIYnhuv/2/+KRp7cWLzRSrJj+iudH+j 0qyA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=jglisse@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id k18si1459105qtb.401.2019.01.23.14.23.42 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Jan 2019 14:23:42 -0800 (PST) Received-SPF: pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; Authentication-Results: mx.google.com; spf=pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=jglisse@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C9341D7D58; Wed, 23 Jan 2019 22:23:40 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-120-127.rdu2.redhat.com [10.10.120.127]) by smtp.corp.redhat.com (Postfix) with ESMTP id 21DE26A685; Wed, 23 Jan 2019 22:23:38 +0000 (UTC) From: jglisse@redhat.com To: linux-mm@kvack.org Cc: Andrew Morton , linux-kernel@vger.kernel.org, =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , =?utf-8?q?Christian_?= =?utf-8?q?K=C3=B6nig?= , Jan Kara , Felix Kuehling , Jason Gunthorpe , Matthew Wilcox , Ross Zwisler , Dan Williams , Paolo Bonzini , =?utf-8?b?UmFkaW0gS3LEjW3DocWZ?= , Michal Hocko , Ralph Campbell , John Hubbard , kvm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-fsdevel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v4 4/9] mm/mmu_notifier: pass down vma and reasons why mmu notifier is happening Date: Wed, 23 Jan 2019 17:23:10 -0500 Message-Id: <20190123222315.1122-5-jglisse@redhat.com> In-Reply-To: <20190123222315.1122-1-jglisse@redhat.com> References: <20190123222315.1122-1-jglisse@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 23 Jan 2019 22:23:41 +0000 (UTC) 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: X-Virus-Scanned: ClamAV using ClamSMTP From: Jérôme Glisse 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, ...). Users of mmu notifier API track changes to the CPU page table and take specific action for them. While current API only provide range of virtual address affected by the change, not why the changes is happening This patch is just passing down the new informations by adding it to the mmu_notifier_range structure. Signed-off-by: Jérôme Glisse Cc: Christian König Cc: Jan Kara Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Andrew Morton Cc: Matthew Wilcox Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Michal Hocko Cc: Ralph Campbell Cc: John Hubbard Cc: kvm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-rdma@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: Arnd Bergmann --- include/linux/mmu_notifier.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h index a9808add4070..7514775817de 100644 --- a/include/linux/mmu_notifier.h +++ b/include/linux/mmu_notifier.h @@ -56,9 +56,11 @@ struct mmu_notifier_mm { }; struct mmu_notifier_range { + struct vm_area_struct *vma; struct mm_struct *mm; unsigned long start; unsigned long end; + enum mmu_notifier_event event; bool blockable; }; @@ -354,6 +356,8 @@ static inline void mmu_notifier_range_init(struct mmu_notifier_range *range, unsigned long start, unsigned long end) { + range->vma = vma; + range->event = event; range->mm = mm; range->start = start; range->end = end;