From: Jason Gunthorpe <jgg@nvidia.com>
To: Mike Rapoport <rppt@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Alexander Graf <graf@amazon.com>, Baoquan He <bhe@redhat.com>,
Changyuan Lyu <changyuanl@google.com>,
Chris Li <chrisl@kernel.org>,
Pasha Tatashin <pasha.tatashin@soleen.com>,
Pratyush Yadav <pratyush@kernel.org>,
kexec@lists.infradead.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] kho: add support for preserving vmalloc allocations
Date: Mon, 8 Sep 2025 11:14:23 -0300 [thread overview]
Message-ID: <20250908141423.GJ616306@nvidia.com> (raw)
In-Reply-To: <20250908103528.2179934-2-rppt@kernel.org>
On Mon, Sep 08, 2025 at 01:35:27PM +0300, Mike Rapoport wrote:
> +static struct kho_vmalloc_chunk *new_vmalloc_chunk(struct kho_vmalloc_chunk *cur)
> +{
> + struct kho_vmalloc_chunk *chunk;
> + int err;
> +
> + chunk = kzalloc(PAGE_SIZE, GFP_KERNEL);
> + if (!chunk)
> + return NULL;
> +
> + err = kho_preserve_phys(virt_to_phys(chunk), PAGE_SIZE);
> + if (err)
> + goto err_free;
kzalloc() cannot be preserved, the only thing we support today is
alloc_page(), so this code pattern shouldn't exist.
Call alloc_page() and use a kho_preserve_page/folio() like the luo
patches were doing. The pattern seems common it probably needs a small
alloc/free helper.
> + for (int i = 0; i < vm->nr_pages; i += (1 << order)) {
> + phys_addr_t phys = page_to_phys(vm->pages[i]);
> +
> + err = __kho_preserve_order(track, PHYS_PFN(phys), order);
> + if (err)
> + goto err_free;
I think you should make a helper inline to document what is happening here:
/*
* Preserve a contiguous aligned list of order 0 pages that aggregate
* to a higher order allocation. Must be restored using
* kho_restore_page() on each order 0 page.
*/
kho_preserve_pages(page, order);
Jason
next prev parent reply other threads:[~2025-09-08 18:21 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-08 10:35 [PATCH v3 0/2] kho: add support for preserving vmalloc allocations Mike Rapoport
2025-09-08 10:35 ` [PATCH v3 1/2] " Mike Rapoport
2025-09-08 14:14 ` Jason Gunthorpe [this message]
2025-09-15 14:01 ` Mike Rapoport
2025-09-15 14:37 ` Jason Gunthorpe
2025-09-15 16:11 ` Mike Rapoport
2025-09-08 18:12 ` Pratyush Yadav
2025-09-08 18:18 ` Jason Gunthorpe
2025-09-09 14:33 ` Pratyush Yadav
2025-09-15 14:12 ` Mike Rapoport
2025-09-15 14:43 ` Jason Gunthorpe
2025-09-15 16:36 ` Mike Rapoport
2025-09-16 13:05 ` Jason Gunthorpe
2025-09-16 13:21 ` Pratyush Yadav
2025-09-16 14:34 ` Mike Rapoport
2025-09-16 12:48 ` Pratyush Yadav
2025-09-16 14:41 ` Mike Rapoport
2025-09-15 14:08 ` Mike Rapoport
2025-09-16 12:43 ` Pratyush Yadav
2025-09-08 10:35 ` [PATCH v3 2/2] lib/test_kho: use kho_preserve_vmalloc instead of storing addresses in fdt Mike Rapoport
-- strict thread matches above, loose matches on Subject: below --
2025-09-07 7:00 [PATCH v2 0/2] kho: add support for preserving vmalloc allocations Mike Rapoport
2025-09-07 7:00 ` [PATCH v3 1/2] " Mike Rapoport
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=20250908141423.GJ616306@nvidia.com \
--to=jgg@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=changyuanl@google.com \
--cc=chrisl@kernel.org \
--cc=graf@amazon.com \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pasha.tatashin@soleen.com \
--cc=pratyush@kernel.org \
--cc=rppt@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 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.