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 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.