From: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>,
David Hildenbrand <david@redhat.com>,
Mark Rutland <mark.rutland@arm.com>,
Steven Price <steven.price@arm.com>,
Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Suren Baghdasaryan <surenb@google.com>,
Pratik Patel <pratikp@codeaurora.org>
Subject: [RFC] depopulate_range_driver_managed() for removing page-table mappings for hot-added memory blocks
Date: Fri, 13 Nov 2020 18:41:22 -0800 [thread overview]
Message-ID: <bb30aa44d367ad217e9c877eba7b0a12@codeaurora.org> (raw)
Hello,
When memory blocks are removed, along with removing the memmap entries,
memory resource and memory block devices, the arch specific
arch_remove_memory() is called which takes care of tearing down the
page-tables.
Suppose there’s a usecase where the removed memory blocks will be added
back into the system at later point, we can remove/offline the block in
a way that all entries such as memmaps, memory resources and block
devices can be kept intact so that they won’t be needed to be created
again when blocks are added back. Now this can be done by doing offline
alone. But if there’s special usecase where the page-table entries are
needed to be teared down when blocks are offlined in order to avoid
speculative accesses on offlined memory region, but also keep the memmap
entries and block devices intact, I was thinking if we can implement
something like {populate|depopulate}_range_driver_managed() that can be
called after online/offline which can create/tear down page table
mappings for that range. This would avoid us from the need to do
remove_memory() entirely just for the sake of page-table entries being
removed. We can now just offline the block and call
depopulate_range_driver_managed.
This basically isolates arch_{add/remove}_memory outside of
add/remove_memory routines so that drivers can choose if it needs to
just offline and remove page-table mappings or hotremove memory
entirely. This gives drivers the flexibility to retain memmap entries
and memory resource and block device creation so that they can be
skipped when blocks are added back – this helps us reduce the latencies
for removing and adding memory blocks.
I’m still in the process the creating the patch that implements this,
which would give clear view about this RFC but just putting out the
thought here if it makes sense or not.
Sudarshan
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-11-14 2:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-14 2:41 Sudarshan Rajagopalan [this message]
2020-11-14 10:28 ` [RFC] depopulate_range_driver_managed() for removing page-table mappings for hot-added memory blocks Christoph Hellwig
2020-11-17 14:58 ` David Hildenbrand
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=bb30aa44d367ad217e9c877eba7b0a12@codeaurora.org \
--to=sudaraja@codeaurora.org \
--cc=anshuman.khandual@arm.com \
--cc=catalin.marinas@arm.com \
--cc=david@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pratikp@codeaurora.org \
--cc=steven.price@arm.com \
--cc=surenb@google.com \
--cc=will@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).