From: jglisse@redhat.com To: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org> Cc: linux-kernel@vger.kernel.org, "Jérôme Glisse" <jglisse@redhat.com>, "Christian König" <christian.koenig@amd.com>, "Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>, "Jani Nikula" <jani.nikula@linux.intel.com>, "Rodrigo Vivi" <rodrigo.vivi@intel.com>, "Jan Kara" <jack@suse.cz>, "Andrea Arcangeli" <aarcange@redhat.com>, "Peter Xu" <peterx@redhat.com>, "Felix Kuehling" <Felix.Kuehling@amd.com>, "Jason Gunthorpe" <jgg@mellanox.com>, "Ross Zwisler" <zwisler@kernel.org>, "Dan Williams" <dan.j.williams@intel.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Radim Krčmář" <rkrcmar@redhat.com>, "Michal Hocko" <mhocko@kernel.org>, "Ralph Campbell" <rcampbell@nvidia.com>, "John Hubbard" <jhubbard@nvidia.com>, kvm@vger.kernel.org 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 [thread overview] Message-ID: <20190219200430.11130-8-jglisse@redhat.com> (raw) In-Reply-To: <20190219200430.11130-1-jglisse@redhat.com> From: Jérôme Glisse <jglisse@redhat.com> 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 <jglisse@redhat.com> Cc: Christian König <christian.koenig@amd.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Peter Xu <peterx@redhat.com> Cc: Felix Kuehling <Felix.Kuehling@amd.com> Cc: Jason Gunthorpe <jgg@mellanox.com> Cc: Ross Zwisler <zwisler@kernel.org> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Michal Hocko <mhocko@kernel.org> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Ralph Campbell <rcampbell@nvidia.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: kvm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-rdma@vger.kernel.org Cc: Arnd Bergmann <arnd@arndb.de> --- 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
WARNING: multiple messages have this Message-ID (diff)
From: jglisse@redhat.com To: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org> Cc: linux-kernel@vger.kernel.org, "Jérôme Glisse" <jglisse@redhat.com>, "Christian König" <christian.koenig@amd.com>, "Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>, "Jani Nikula" <jani.nikula@linux.intel.com>, "Rodrigo Vivi" <rodrigo.vivi@intel.com>, "Jan Kara" <jack@suse.cz>, "Andrea Arcangeli" <aarcange@redhat.com>, "Peter Xu" <peterx@redhat.com>, "Felix Kuehling" <Felix.Kuehling@amd.com>, "Jason Gunthorpe" <jgg@mellanox.com>, "Ross Zwisler" <zwisler@kernel.org>, "Dan Williams" <dan.j.williams@intel.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Radim Krčmář" <rkrcmar@redhat.com>, "Michal Hocko" <mhocko@kernel.org>, "Ralph Campbell" <rcampbell@nvidia.com>, "John Hubbard" <jhubbard@nvidia.com>, kvm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, "Arnd Bergmann" <arnd@arndb.de> 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 [thread overview] Message-ID: <20190219200430.11130-8-jglisse@redhat.com> (raw) In-Reply-To: <20190219200430.11130-1-jglisse@redhat.com> From: Jérôme Glisse <jglisse@redhat.com> 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 <jglisse@redhat.com> Cc: Christian König <christian.koenig@amd.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Peter Xu <peterx@redhat.com> Cc: Felix Kuehling <Felix.Kuehling@amd.com> Cc: Jason Gunthorpe <jgg@mellanox.com> Cc: Ross Zwisler <zwisler@kernel.org> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Michal Hocko <mhocko@kernel.org> Cc: Christian Koenig <christian.koenig@amd.com> Cc: Ralph Campbell <rcampbell@nvidia.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: kvm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-rdma@vger.kernel.org Cc: Arnd Bergmann <arnd@arndb.de> --- 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
next prev parent reply other threads:[~2019-02-19 20:04 UTC|newest] Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-19 20:04 [PATCH v5 0/9] mmu notifier provide context informations jglisse 2019-02-19 20:04 ` jglisse 2019-02-19 20:04 ` [PATCH v5 1/9] mm/mmu_notifier: helper to test if a range invalidation is blockable jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 19:01 ` Ralph Campbell 2019-02-22 19:01 ` Ralph Campbell 2019-02-22 19:01 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 2/9] mm/mmu_notifier: convert user range->blockable to helper function jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 19:02 ` Ralph Campbell 2019-02-22 19:02 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 3/9] mm/mmu_notifier: convert mmu_notifier_range->blockable to a flags jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 19:04 ` Ralph Campbell 2019-02-22 19:04 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 4/9] mm/mmu_notifier: contextual information for event enums jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 19:26 ` Ralph Campbell 2019-02-22 19:26 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 5/9] mm/mmu_notifier: contextual information for event triggering invalidation v2 jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 21:25 ` Ralph Campbell 2019-02-22 21:25 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 6/9] mm/mmu_notifier: use correct mmu_notifier events for each invalidation jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 22:07 ` Ralph Campbell 2019-02-22 22:07 ` Ralph Campbell 2019-02-19 20:04 ` jglisse [this message] 2019-02-19 20:04 ` [PATCH v5 7/9] mm/mmu_notifier: pass down vma and reasons why mmu notifier is happening v2 jglisse 2019-02-22 22:08 ` Ralph Campbell 2019-02-22 22:08 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 8/9] mm/mmu_notifier: mmu_notifier_range_update_to_read_only() helper jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 22:42 ` Ralph Campbell 2019-02-22 22:42 ` Ralph Campbell 2019-02-19 20:04 ` [PATCH v5 9/9] mm/mmu_notifier: set MMU_NOTIFIER_USE_CHANGE_PTE flag where appropriate v2 jglisse 2019-02-19 20:04 ` jglisse 2019-02-22 23:01 ` Ralph Campbell 2019-02-22 23:01 ` Ralph Campbell 2019-02-19 20:15 ` [PATCH v5 0/9] mmu notifier provide context informations Dan Williams 2019-02-19 20:15 ` Dan Williams 2019-02-19 20:30 ` Jerome Glisse 2019-02-19 20:30 ` Jerome Glisse 2019-02-19 20:40 ` Jason Gunthorpe 2019-02-19 20:40 ` Jason Gunthorpe 2019-02-19 20:49 ` Dan Williams 2019-02-19 20:49 ` Dan Williams 2019-02-19 20:40 ` Dan Williams 2019-02-19 20:40 ` Dan Williams 2019-02-19 20:57 ` Jerome Glisse 2019-02-19 20:57 ` Jerome Glisse 2019-02-19 21:19 ` Dan Williams 2019-02-19 21:19 ` Dan Williams 2019-02-19 21:30 ` Jerome Glisse 2019-02-19 21:30 ` Jerome Glisse
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190219200430.11130-8-jglisse@redhat.com \ --to=jglisse@redhat.com \ --cc=Felix.Kuehling@amd.com \ --cc=aarcange@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=christian.koenig@amd.com \ --cc=dan.j.williams@intel.com \ --cc=jack@suse.cz \ --cc=jani.nikula@linux.intel.com \ --cc=jgg@mellanox.com \ --cc=jhubbard@nvidia.com \ --cc=joonas.lahtinen@linux.intel.com \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@kernel.org \ --cc=pbonzini@redhat.com \ --cc=peterx@redhat.com \ --cc=rcampbell@nvidia.com \ --cc=rkrcmar@redhat.com \ --cc=rodrigo.vivi@intel.com \ --cc=zwisler@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.