Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp4466756img; Tue, 26 Mar 2019 09:56:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqzWTPNywlg5O/QJPsD/vLK6RhrAGIe5InXTKrO7/torUKL9W1LIGFu+VMLBd5MEpzImiS+K X-Received: by 2002:a17:902:a7:: with SMTP id a36mr32511076pla.267.1553619399042; Tue, 26 Mar 2019 09:56:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553619399; cv=none; d=google.com; s=arc-20160816; b=FxtAgmMSkTChVNnP+7ak3z2O97Mtmnl9xUEla1JMC0nsYFaCm6VadowBZfylLavBXf VWDOAd8bLyDJnQuvS3L6KeGdh3TfD7UczOcxPn8s4LVgsLK83+rnqsFYzgSfGg2fzAgs L53LoFjPjgSfpLt6NuDp7HvxAds+Nc53GLjH5RLHk8AWLdKKQi9MWedwcz3I/BDoeEeu d2rQ7QCRMoGewDXCGuv+DCNuCGP16SIQYvuZWG15/mSzuavhER7Rh8bfaUCJFapdofSO wHHzM6d5fQB0VYtQ76wYHN5FF1ATH/7rmj0cCTAHTBQ6rciehz94wC+pBtTWeD5Qi+HY yUNg== 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=252zMKy7F4cZQRAlSYsRJSdfyv+AZ8onT930rac77Bs=; b=zLPokdwDjNiMKU2Xwf0LAwwx3vvO7O6trOh76hgCd+pVnMQRo166D1WPI6tgC5LjrA GodIWBjFIKuT1RyqcvTrVfcpa9zeW5itGj7H61iim6cNFNGKEqDUA0RFwUbZjmJYPkOt y3V4zxDaUT+iOO+psb17vT4nOhaPETEPg4O3B28yFXbyRCa2eIzgQdUUYwjXN95xpQxr KCZ/K1yZXnLeHefqOZ+5Jh14Uk0J1UdS5f7I57kcyxHtcf35GL3OfEouFjScMbVZGsl2 Oi6aKAeROi0WhoOts6BPAAzGNqO0LYSUE1HzWQXcldpV4DAS5ZmzyhBMjFlM92BLHikK CsGQ== 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 x2si15787467pgr.203.2019.03.26.09.56.23; Tue, 26 Mar 2019 09:56:39 -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 S1732230AbfCZQs1 (ORCPT + 99 others); Tue, 26 Mar 2019 12:48:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45718 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732170AbfCZQsY (ORCPT ); Tue, 26 Mar 2019 12:48:24 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 268F483F3D; Tue, 26 Mar 2019 16:48:24 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.20.6.236]) by smtp.corp.redhat.com (Postfix) with ESMTP id B266717595; Tue, 26 Mar 2019 16:48:21 +0000 (UTC) From: jglisse@redhat.com To: linux-kernel@vger.kernel.org Cc: =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Andrew Morton , linux-mm@kvack.org, =?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 v6 7/8] mm/mmu_notifier: pass down vma and reasons why mmu notifier is happening v2 Date: Tue, 26 Mar 2019 12:47:46 -0400 Message-Id: <20190326164747.24405-8-jglisse@redhat.com> In-Reply-To: <20190326164747.24405-1-jglisse@redhat.com> References: <20190326164747.24405-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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Tue, 26 Mar 2019 16:48:24 +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: 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: 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.20.1