Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp3937008imj; Tue, 19 Feb 2019 12:08:16 -0800 (PST) X-Google-Smtp-Source: AHgI3IYMlY3F084rYN9WKebeG3I4zt8QdqeOQSyboqnIFD5zPU2vdCkZS72PaYA2814FcsCoundM X-Received: by 2002:a63:c042:: with SMTP id z2mr25700328pgi.307.1550606896069; Tue, 19 Feb 2019 12:08:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550606896; cv=none; d=google.com; s=arc-20160816; b=b+gTmWZOGh1VU+wmOEuMjHMRMIGUNP3l3ehgVbjcOkQ6w7/2fs0FTJ+d+Kb0S5nXMe w+pBYeUw/7DPPOXq+6KpkM3c3GWBOOUZIXqEgdL9wb0V1qbQxayNZbCe5KyCO1IW90Mo DXYiVF97QQAJqY5x4jREpKqCce0jvw+4C2a6FGWuWoi8rTs5KAJHP8lYmGzhZwS97YDf qKHrkP9pdXKBPlDagGT7B8VbUIoMpP4rlUGQzXeMVBfWxV2Pt7ESOeFFS5UQVhMEPQo3 uXbyZhEl7/upW9nS39pn2xHJDdDy1F9Nd8S4fP7JDYuhPK+oZ+Tyt3CD8iI7bsyX8jEb mSvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=X8kdPUvC42ROC7+rczfKExqL8lE4yK5xysqqrdCsrac=; b=amdkyrpmnN4dzCHq88SeWO083rCghULI72vAHi+UwsBxCwI+XjFhwumuwClXf/baDE S+enLQVuniXXoFy9J1Ao1YlSjv8WhtwhgC6lGvS1j7bguLp6sLOBE5KvqOEre1CK8mQW wR9oV5zTdAVsvxZ5pwbQ9nE8FhhMs1UWAoGLjYzKMn856RynZfA396Yzto96kqj2Kt24 KNllEFxmB+x3Zc56Ajin2+oS9sfy7yVSurhy7wYzcmdV9nR21SuBHQVeSNN8llEKgVGe WJ1yatSrfk/aVvjOrYvAdbNSEoTvtTxOeeJ63TeKoeyfNINLrldLHckybgb55TwFXAcC T6HA== 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 s2si14142011pfm.289.2019.02.19.12.08.00; Tue, 19 Feb 2019 12:08:16 -0800 (PST) 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 S1730099AbfBSUFe (ORCPT + 99 others); Tue, 19 Feb 2019 15:05:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48960 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730068AbfBSUFb (ORCPT ); Tue, 19 Feb 2019 15:05:31 -0500 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 B1E58C074132; Tue, 19 Feb 2019 20:05:30 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-122-134.rdu2.redhat.com [10.10.122.134]) by smtp.corp.redhat.com (Postfix) with ESMTP id BA9FC6013C; Tue, 19 Feb 2019 20:05:27 +0000 (UTC) From: jglisse@redhat.com To: linux-mm@kvack.org, Andrew Morton Cc: linux-kernel@vger.kernel.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , =?UTF-8?q?Christian=20K=C3=B6nig?= , Joonas Lahtinen , Jani Nikula , Rodrigo Vivi , Jan Kara , Andrea Arcangeli , Peter Xu , Felix Kuehling , Jason Gunthorpe , Ross Zwisler , Dan Williams , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Michal Hocko , Ralph Campbell , John Hubbard , kvm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, Arnd Bergmann Subject: [PATCH v5 7/9] mm/mmu_notifier: pass down vma and reasons why mmu notifier is happening v2 Date: Tue, 19 Feb 2019 15:04:28 -0500 Message-Id: <20190219200430.11130-8-jglisse@redhat.com> In-Reply-To: <20190219200430.11130-1-jglisse@redhat.com> References: <20190219200430.11130-1-jglisse@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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.31]); Tue, 19 Feb 2019 20:05:31 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Changes since v1: - Initialize flags field from mmu_notifier_range_init() arguments Signed-off-by: Jérôme Glisse 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: Radim Krčmář Cc: Michal Hocko Cc: Christian Koenig 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 --- include/linux/mmu_notifier.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h index 62f94cd85455..0379956fff23 100644 --- a/include/linux/mmu_notifier.h +++ b/include/linux/mmu_notifier.h @@ -58,10 +58,12 @@ struct mmu_notifier_mm { #define MMU_NOTIFIER_RANGE_BLOCKABLE (1 << 0) struct mmu_notifier_range { + struct vm_area_struct *vma; struct mm_struct *mm; unsigned long start; unsigned long end; unsigned flags; + enum mmu_notifier_event event; }; struct mmu_notifier_ops { @@ -363,10 +365,12 @@ 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; - range->flags = 0; + range->flags = flags; } #define ptep_clear_flush_young_notify(__vma, __address, __ptep) \ -- 2.17.2