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