Re: [PATCH v4 2/2] livepatch: Add using attribute to klp_func for using function show
From: zhang warden
Date: Fri Sep 06 2024 - 05:42:03 EST
Hi, John & Miroslav
>>
>> Would it be possible to just use klp_transition_patch and implement the
>> logic just in using_show()?
>
> Yes, containing the logic to the sysfs file sounds a lot better.
Maybe I can try to use the state of klp_transition_patch to update the function's state instead of changing code in klp_complete_transition?
>
>> I have not thought through it completely but
>> klp_transition_patch is also an indicator that there is a transition going
>> on. It is set to NULL only after all func->transition are false. So if you
>> check that, you can assign -1 in using_show() immediately and then just
>> look at the top of func_stack.
>
> sysfs already has per-patch 'transition' and 'enabled' files so I don't
> like duplicating that information.
>
> The only thing missing is the patch stack order. How about a simple
> per-patch file which indicates that?
>
> /sys/kernel/livepatch/<patchA>/order => 1
> /sys/kernel/livepatch/<patchB>/order => 2
>
> The implementation should be trivial with the use of
> klp_for_each_patch() to count the patches.
>
I think this is the second solution. It seems that adding an interface to patch level is an acceptable way. And if patch order is provided in /sys/kernel/livepatch/<patchA>/order, we should make a user space tool to calculate the function that is activate in the system. From my point to the original problem, it is more look like a workaround.
> journalctl -b ?
> Store the state in a file in /var/run?
Getting patch order from journal is the way I think not reliable. In fact, I don't recommend to get patch order in that way. ^_^
Thanks!
Wardenjohn