[libvirt] [PATCH] virprocess: Extend list of platforms for setns wrapper

Michal Privoznik mprivozn at redhat.com
Mon Sep 15 15:20:46 UTC 2014


On 15.09.2014 17:15, Martin Kletzander wrote:
> On Mon, Sep 15, 2014 at 03:43:55PM +0200, Michal Privoznik wrote:
>> Currently, the setns() wrapper is supported only for x86_64 and i686
>> which leaves us failing to build on other platforms like arm, aarch64
>> and so on. This means, that the wrapper needs to be extended to those
>> platforms and make to fail on runtime not compile time.
>>
>> The syscall numbers for other platforms was fetched using this
>> command:
>>
>> kernel.git $ git grep "define.*__NR_setns" | grep -e arm -e powerpc -e
>> s390
>> arch/arm/include/uapi/asm/unistd.h:#define
>> __NR_setns                   (__NR_SYSCALL_BASE+375)
>> arch/arm64/include/asm/unistd32.h:#define __NR_setns 375
>> arch/powerpc/include/uapi/asm/unistd.h:#define
>> __NR_setns               350
>> arch/s390/include/uapi/asm/unistd.h:#define __NR_setns          339
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>> src/util/virprocess.c | 18 ++++++++++++------
>> 1 file changed, 12 insertions(+), 6 deletions(-)
>>
>
> NACK, we shouldn't be duplicating syscall definitions.  There should
> be AC_CHECK_FUNCS([setns]) (instead of AC_CHECK_FUNCS_ONCE() for the
> syscall) and having with_lxc = "yes" and ac_cv_func_setns != "yes"
> should result in an error.

The only problem with this might be that on systems with older glibc 
(and there is plenty of them) libvirt will fail to build / miss this 
feature. And it's not that the kernel doesn't support the namesapces. 
But let me see if I can get some ACKs on that approach you're suggesting.

Michal




More information about the libvir-list mailing list