From: "Yanjun.Zhu" <yanjun.zhu@linux.dev>
To: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Pratyush Yadav <pratyush@kernel.org>,
akpm@linux-foundation.org, brauner@kernel.org, corbet@lwn.net,
graf@amazon.com, jgg@ziepe.ca, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-mm@kvack.org,
masahiroy@kernel.org, ojeda@kernel.org, rdunlap@infradead.org,
rppt@kernel.org, tj@kernel.org
Subject: Re: [PATCH v9 1/9] kho: make debugfs interface optional
Date: Thu, 13 Nov 2025 12:07:26 -0800 [thread overview]
Message-ID: <9e8bc27a-81ed-4270-8289-66bec92bb153@linux.dev> (raw)
In-Reply-To: <CA+CK2bCwqCHr6oecmL6R65qjgXZNuzU7SJ9diVkYX442tUdU+Q@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6979 bytes --]
On 11/13/25 11:59 AM, Pasha Tatashin wrote:
> On Wed, Nov 12, 2025 at 9:11 PM Yanjun.Zhu<yanjun.zhu@linux.dev> wrote:
>>
>> On 11/12/25 5:41 PM, Yanjun.Zhu wrote:
>>> On 11/11/25 7:26 AM, Pasha Tatashin wrote:
>>>> On Mon, Nov 10, 2025 at 11:11 PM Zhu Yanjun<yanjun.zhu@linux.dev>
>>>> wrote:
>>>>> In FC42, when I run "./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...
>>>>>
>>>>> Then the system hang. And via virt-viewer, a calltrace will appear.
>>>> Looks like mountroot fails, are you passing the same kernel parameters
>>>> as the during cold boot?
>>>> i.e. kexec -l -s --reuse-cmdline --initrd=[initramfs] [kernel]
>>>
>>> Thanks a lot. It can work now. The logs are as below:
>>>
>>> "
>>>
>>> # [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 ---
>>> "
>>>
>>> Yanjun.Zhu
>>
>> Hi, Pasha
>>
>> In my tests, I found that luo_kexec_simple and luo_multi_session
>> currently depend on the glibc-static library.
>> If this library is not installed, build errors occur.
>> By making the following changes, luo_kexec_simple and luo_multi_session
>> would no longer depend on glibc-static, reducing external library
>> dependencies.
>> I am not sure whether you agree with these proposed changes.
>>
>> diff --git a/tools/testing/selftests/liveupdate/Makefile
>> b/tools/testing/selftests/liveupdate/Makefile
>> index 6ee6efeec62d..b226b9976150 100644
>> --- a/tools/testing/selftests/liveupdate/Makefile
>> +++ b/tools/testing/selftests/liveupdate/Makefile
>> @@ -3,7 +3,6 @@
>> KHDR_INCLUDES ?= -I../../../../usr/include
>> CFLAGS += -Wall -O2 -Wno-unused-function
>> CFLAGS += $(KHDR_INCLUDES)
>> -LDFLAGS += -static
> Hi Yanjun,
>
> Thank you for testing. I prefer to keep the '-static' flag because
> these self-test files are not executed in the same environment where
> they are compiled but in a VM which might have a different userspace.
Hi, Pasha
I agree with your reasoning. Given that the self-tests run in a
different userspace, keeping the |-static| flag seems reasonable.
Best Regards,
Yanjun.Zhu
>
> Thank you,
> Pasha
>
>> OUTPUT ?= .
>>
>> # --- Test Configuration (Edit this section when adding new tests) ---
>>
>> Yanjun.Zhu
>>
>>>
>>>> Pasha
>>>>
>>>>> The call trace is in the attachment.
>>>>>
>>>>> Yanjun.Zhu
>>>>>
>>>>> 在 2025/11/10 7:26, Pasha Tatashin 写道:
>>>>>> On Mon, Nov 10, 2025 at 8:16 AM Pratyush Yadav
>>>>>> <pratyush@kernel.org> wrote:
>>>>>>> On Sun, Nov 09 2025, Zhu Yanjun wrote:
>>>>>>>
>>>>>>>> 在 2025/11/8 10:13, Pasha Tatashin 写道:
>>>>>>>>> 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/60205b9a95c319dc9965f119303a1d83f0ff08fa.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 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:
>>>>>>>> Hi, Pasha
>>>>>>>>
>>>>>>>> I enabled "CONFIG_LIVEUPDATE=y"
>>>>>>>>
>>>>>>>> # ./luo_multi_session
>>>>>>>> 1..0 # SKIP Failed to open /dev/liveupdate. Is the luo module
>>>>>>>> loaded?
>>>>>>>>
>>>>>>>> # ls /dev/liveupdate
>>>>>>>> ls: cannot access '/dev/liveupdate': No such file or directory
>>>>>>>>
>>>>>>>> # grep "LIVEUPDATE" -inrHI /boot/config-`uname -r`
>>>>>>>> /boot/config-next-20251107-luo+:349:CONFIG_LIVEUPDATE=y
>>>>>>>> /boot/config-next-20251107-luo+:11985:CONFIG_LIVEUPDATE_TEST=y
>>>>>>>>
>>>>>>>> I made tests on FC42. But /dev/liveupdate is missing.
>>>>>>> You need to add liveupdate=1 to your kernel cmdline to enable LUO and
>>>>>>> get /dev/liveupdate.
>>>>>> +1, kernel parameters require: kho=1 liveupdate=1
>>>>>>
>>>>>>> Pasha, your LUO series doesn't add the liveupdate parameter to
>>>>>>> kernel-parameters.txt. I think it should be done in the next
>>>>>>> version to
>>>>>>> this parameter is discoverable.
>>>>>> Yeah, that is missing, I will update that in a standalone patch, or in
>>>>>> a next version.
>>>>>>
>>>>>> Thanks,
>>>>>> Pasha
>>>>> --
>>>>> Best Regards,
>>>>> Yanjun.Zhu
[-- Attachment #2: Type: text/html, Size: 9849 bytes --]
next prev parent reply other threads:[~2025-11-13 20:07 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-01 14:23 [PATCH v9 0/9] liveupdate: Rework KHO for in-kernel users Pasha Tatashin
2025-11-01 14:23 ` [PATCH v9 1/9] kho: make debugfs interface optional Pasha Tatashin
2025-11-07 6:03 ` Zhu Yanjun
2025-11-07 12:00 ` Pasha Tatashin
2025-11-07 12:02 ` Pasha Tatashin
2025-11-07 23:35 ` Yanjun.Zhu
2025-11-08 18:13 ` Pasha Tatashin
2025-11-10 0:20 ` Zhu Yanjun
2025-11-10 13:16 ` Pratyush Yadav
2025-11-10 15:26 ` Pasha Tatashin
2025-11-11 4:11 ` Zhu Yanjun
2025-11-11 15:26 ` Pasha Tatashin
2025-11-13 1:41 ` Yanjun.Zhu
2025-11-13 2:11 ` Yanjun.Zhu
2025-11-13 19:59 ` Pasha Tatashin
2025-11-13 20:07 ` Yanjun.Zhu [this message]
2025-11-13 19:55 ` Yanjun.Zhu
2025-11-13 20:10 ` Pasha Tatashin
2025-11-13 20:13 ` Pasha Tatashin
2025-11-13 20:28 ` Yanjun.Zhu
2025-11-01 14:23 ` [PATCH v9 2/9] kho: drop notifiers Pasha Tatashin
2025-11-06 8:41 ` kernel test robot
2025-11-06 21:46 ` Pasha Tatashin
2025-11-06 22:14 ` Pasha Tatashin
2025-11-01 14:23 ` [PATCH v9 3/9] kho: add interfaces to unpreserve folios, page ranges, and vmalloc Pasha Tatashin
2025-11-03 18:05 ` Pratyush Yadav
2025-11-01 14:23 ` [PATCH v9 4/9] memblock: Unpreserve memory in case of error Pasha Tatashin
2025-11-02 6:51 ` Mike Rapoport
2025-11-05 10:26 ` Pratyush Yadav
2025-11-01 14:23 ` [PATCH v9 5/9] test_kho: " Pasha Tatashin
2025-11-01 14:23 ` [PATCH v9 6/9] kho: don't unpreserve memory during abort Pasha Tatashin
2025-11-05 10:28 ` Pratyush Yadav
2025-11-01 14:23 ` [PATCH v9 7/9] liveupdate: kho: move to kernel/liveupdate Pasha Tatashin
2025-11-06 7:21 ` kernel test robot
2025-11-07 22:23 ` Andrew Morton
2025-11-08 18:01 ` Pasha Tatashin
2025-11-01 14:23 ` [PATCH v9 8/9] MAINTAINERS: update KHO maintainers Pasha Tatashin
2025-11-01 16:36 ` Mike Rapoport
2025-11-01 14:23 ` [PATCH v9 9/9] liveupdate: kho: Use %pe format specifier for error pointer printing Pasha Tatashin
2025-11-01 19:45 ` Zhu Yanjun
2025-11-02 6:59 ` Mike Rapoport
2025-11-03 12:59 ` Pratyush Yadav
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=9e8bc27a-81ed-4270-8289-66bec92bb153@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=brauner@kernel.org \
--cc=corbet@lwn.net \
--cc=graf@amazon.com \
--cc=jgg@ziepe.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=masahiroy@kernel.org \
--cc=ojeda@kernel.org \
--cc=pasha.tatashin@soleen.com \
--cc=pratyush@kernel.org \
--cc=rdunlap@infradead.org \
--cc=rppt@kernel.org \
--cc=tj@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