On Fri, Nov 7, 2025 at 6:36 PM Yanjun.Zhu yanjun.zhu@linux.dev wrote:
On 11/7/25 4:02 AM, Pasha Tatashin wrote:
On Fri, Nov 7, 2025 at 7:00 AM Pasha Tatashin pasha.tatashin@soleen.com wrote:
Hi, Pasha
In our previous discussion, we talked about counting the number of times the kernel is rebooted via kexec. At that time, you suggested adding a variable in debugfs to keep track of this count. However, since debugfs is now optional, where would be an appropriate place to store this variable?
It is an optional config and can still be enabled if the live update reboot number value needs to be accessed through debugfs. However, given that debugfs does not guarantee a stable interface, tooling should not be built to require these interfaces.
In the WIP LUO [1] I have, I pr_info() the live update number during boot and also store it in the incoming LUO FDT tree, which can also be accessed through this optional debugfs interface.
The pr_info message appears like this during boot: [ 0.000000] luo: Retrieved live update data, liveupdate number: 17
Pasha
Forgot to add link to WIP LUOv5: [1] https://github.com/soleen/linux/tree/luo/v5rc04
Thanks a lot. I’ve carefully read this commit: https://github.com/soleen/linux/commit/60205b9a95c319dc9965f119303a1d83f0ff0....
To be honest, I’d like to run some tests with who/luo, including the selftest for kho/luo. Could you please share the steps with me?
If the testing steps have already been documented somewhere, could you please share the link?
Currently the test performs in-kernel tests for FLB data, it creates a number of FLB for every registered LUO file-handler, which at the moment is only memfd.
It works together with any of the kexec based live update tests. In v5, I introduce two tests: luo_kexec_simple luo_multi_session
For example, with luo_multi_session: # ./luo_multi_session # [STAGE 1] Starting pre-kexec setup for multi-session test... # [STAGE 1] Creating state file for next stage (2)... # [STAGE 1] Creating empty sessions 'multi-test-empty-1' and 'multi-test-empty-2'... # [STAGE 1] Creating session 'multi-test-files-1' with one memfd... # [STAGE 1] Creating session 'multi-test-files-2' with two memfds... # [STAGE 1] Executing kexec...
... reboot ... After reboot:
$ ./luo_multi_session # [STAGE 2] Starting post-kexec verification... # [STAGE 2] Retrieving all sessions... # [STAGE 2] Verifying contents of session 'multi-test-files-1'... # [STAGE 2] Verifying contents of session 'multi-test-files-2'... # [STAGE 2] Test data verified successfully. # [STAGE 2] Finalizing all test sessions... # [STAGE 2] Finalizing state session... # --- MULTI-SESSION KEXEC TEST PASSED ---
Dmesg data, shows that in-kernel live update test was also successful:
[ 0.000000] luo: Retrieved live update data, liveupdate number: 1 [ 0.034513] liveupdate test: test-flb-v0: found flb data from the previous boot [ 0.034517] liveupdate test: test-flb-v1: found flb data from the previous boot [ 0.034518] liveupdate test: test-flb-v2: found flb data from the previous boot [ 0.676891] liveupdate test: Registered 3 FLBs with file handler: [memfd-v1]
Pasha
Best Regards,
Yanjun.Zhu