Re: [LTP] [PATCH v2] getcpu: Add testcase for EFAULT

Cyril Hrubis
2024-08-01T09:04:18Z

Hi!
> > +static void run(void)
> > +{
> > + unsigned int cpu_id, node_id = 0;
> > +
> > + TST_EXP_FAIL(getcpu(tst_get_bad_addr(NULL), &node_id), EFAULT);
> I'm not sure why, but I get SIGSEGV due tst_get_bad_addr(NULL) on various
> kernels (SLES 5.14.21, Tumbleweed 6.5.1, 6.10, Debian 6.9, ...).
>
> But the test works on SLES 4.4.180.

If you are getting SIGSEGV that means that the address is used in
userspace. Looking at man getcpu() it suggests that on some
architectures it may be implemented as VDSO, which would explain it.

So I suppose that the easies solution here would be to run the test in a
child process and accepting SIGSEGV as a correct outcome as well.

--
Cyril Hrubis
chrubis@suse.cz