Subject: Re: powerpc: Enabling sys_kcmp for CRIU

From: Laurent Dufour <[email-masked]>
Date: Mon, 11 May 2015 13:53:40 +0200

On 11/05/2015 12:31, Michael Ellerman wrote:
> On Tue, 2015-05-05 at 15:30:21 UTC, Laurent Dufour wrote:
>> The commit 8170a83f15ee ("powerpc: Wireup the kcmp syscall to sys_ni") has
>> disabled the kcmp syscall for powerpc.  This has been done due to the use
>> of unsigned long parameters which may require a dedicated wrapper to handle
>> 32bit process on top of 64bit kernel.  However in the kcmp() case, the 2
>> unsigned long parameters are currently only used to carry file descriptors
>> from user space to the kernel.  Since such a parameter is passed through
>> register, and file descriptor doesn't need to get extended, there is,
>> today, no need for a wrapper.
>>
>> In the case there will be a need to pass address in or out of this system
>> call, then a wrapper could be required, it will then be to care of it.
>>
>> As today this is not the case, it is safe to enable kcmp() on powerpc.
> 
> That's mostly convincing. Though I see that s390 does have a compat wrapper,
> i386 doesn't. So who knows what that means.
> 
> But, there's a selftest in tools/testing/selftests/kcmp. So can you run that as
> 32-bit and confirm it works? Then I'd be 100% convinced :)

Hi Michael,

I was myself a bit confused about this system call, so to be sure before
sending the patch I ran the selftest/kcmp series on 64bit, 32bit, and
also build it in 32bit and run it on top of a 64bit kernel without any
trouble...

Cheers,
Laurent.