Re: [RFC PATCH v3 00/22] arm64: livepatch: Use ORC for dynamic frame pointer validation

From: Madhavan T. Venkataraman
Date: Mon Mar 06 2023 - 12:09:26 EST




On 3/2/23 10:23, Petr Mladek wrote:
> On Wed 2023-03-01 03:12:08, Tomohiro Misono (Fujitsu) wrote:
>> <snip>
>>> Testing
>>> =======
>>>
>>> - I have run all of the livepatch selftests successfully. I have written a
>>> couple of extra selftests myself which I will be posting separately
>> Hi,
>>
>> What test configuration/environment you are using for test?
>> When I tried kselftest with fedora based config on VM, I got errors
>> because livepatch transition won't finish until signal is sent
>> (i.e. it takes 15s for every transition).
>>
>> [excerpt from test result]
>> ```
>> $ sudo ./test-livepatch.sh
>> TEST: basic function patching ... not ok
>>
>> --- expected
>> +++ result
>> @@ -2,11 +2,13 @@
>> livepatch: enabling patch 'test_klp_livepatch'
>> livepatch: 'test_klp_livepatch': initializing patching transition
>> livepatch: 'test_klp_livepatch': starting patching transition
>> +livepatch: signaling remaining tasks
>> livepatch: 'test_klp_livepatch': completing patching transition
>> ```
>
> It might be interesting to see what process is blocking the
> transition. The transition state is visible in
> /proc/<pid>/patch_state.
>
> The transition is blocked when a process is in KLP_UNPATCHED state.
> It is defined in include/linux/livepatch.h:
>
> #define KLP_UNPATCHED 0
>
> Well, the timing against the transition is important. The following
> might help to see the blocking processes:
>
> $> modprobe livepatch-sample ; \
> sleep 1; \
> for proc_path in \
> `grep "\-1" /proc/*/patch_state | cut -d '/' -f-3` ; \
> do \
> cat $proc_path/comm ; \
> cat $proc_path/stack ; \
> echo === ; \
> done
>
> After this the livepatch has to be manualy disabled and removed
>
> $> echo 0 >/sys/kernel/livepatch/livepatch_sample/enabled
> $> rmmod livepatch_sample
>
> Best Regards,
> Petr

Thanks for the suggestion. I will try to reproduce the problem and look at what process(es) are holding up
the livepatch.

Madhavan