Thread (56 messages) 56 messages, 4 authors, 2025-10-10

Re: [PATCH v4 00/30] Live Update Orchestrator

From: Pasha Tatashin <pasha.tatashin@soleen.com>
Date: 2025-10-09 18:38:24
Also in: linux-doc, linux-fsdevel, linux-mm, lkml

On Thu, Oct 9, 2025 at 1:39 PM Jason Gunthorpe [off-list ref] wrote:
On Thu, Oct 09, 2025 at 11:01:25AM -0400, Pasha Tatashin wrote:
quoted
In this case we can enforce strict
ordering during retrieval. If "struct file" can be retrieved by
anything within the kernel, then that could be any kernel process
during boot, meaning that charging is not going to be properly applied
when kernel allocations are performed.
Ugh, yeah, OK that's irritating and might burn us, but we did decide
on that strategy.
quoted
quoted
I would argue it should always cause a preservation...

But this is still backwards, what we need is something like

liveupdate_preserve_file(session, file, &token);
my_preserve_blob.file_token = token
We cannot do that, the user should have already preserved that file
and provided us with a token to use, if that file was not preserved by
the user it is a bug. With this proposal, we would have to generate a
token, and it was argued that the kernel should not do that.
The token is the label used as ABI across the kexec. Each entity doing
a serialization can operate it's labels however it needs.

Here I am suggeting that when a kernel entity goes to record a struct
file in a kernel ABI structure it can get a kernel generated token for
it.
Sure, we can consider allowing the kernel to preserve dependent FDs
automatically in the future, but is there a compelling use case that
requires it right now?

For the initial implementation, I think we should stick to the
simpler, agreed-upon plan: preservation order is explicitly defined by
userspace. If a preserve() call fails due to an unmet dependency, the
error is returned to the user, who is then responsible for correcting
the order. This keeps the kernel logic straightforward and places the
preservation responsibility squarely in userspace, where it belongs.

Pasha
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help