Re: [tip:x86/vdso] x86, vdso: Instead of dummy functions, include < linux/spinlock_up.h>

From: Stefani Seibold
Date: Mon Feb 17 2014 - 02:41:26 EST


Hi Peter,

Am Sonntag, den 16.02.2014, 20:06 -0800 schrieb H. Peter Anvin:
> On 02/16/2014 07:51 PM, tip-bot for H. Peter Anvin wrote:
> > Commit-ID: bd9ee7fd99f127ee1306289415141d45792c97f3
> > Gitweb: http://git.kernel.org/tip/bd9ee7fd99f127ee1306289415141d45792c97f3
> > Author: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
> > AuthorDate: Sun, 16 Feb 2014 19:47:01 -0800
> > Committer: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
> > CommitDate: Sun, 16 Feb 2014 19:47:01 -0800
> >
> > x86, vdso: Instead of dummy functions, include <linux/spinlock_up.h>
> >
> > The list of dummy functions is insufficient. However, instead of
> > having a full list of dummy functions we can include
> > <linux/spinlock_up.h> which contains the (trivial) implementations
> > that we use on uniprocessor.
> >
> > There aren't supposed to be any spinlocks at all in the VDSO, of
> > course.
> >
>
> That didn't work either. I thought I was clever, but it didn't work at
> all. Multiple build failures across numerous configurations. This is
> turning into a total headache.
>
> The "right" way to fix this is presumably to refactor a bunch of header
> files so that the vdso code doesn't have to include a bunch of kernel
> internal headers, but that is a lot of work.
>

I think for the first time it will be okay to kick out the
_ASM_X86_SPINLOCK_H hack and accept the C=1 warnings.

At next step it is necessary to make the whole BUILD_VDSO32 path in
vclock_gettime.c independent from the kernel headers, only uapi/ should
be included.

The use of cycle_t must be replaced with u64.

We need a own copy of __native_read_tsc(), __iter_div_u64_rem, smp_rmb()
and cpu_relax().

For the non BUILD_VDSO32 path we must only move the #includes inside
this #ifndef BUILD_VDSO32

- Stefani


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/