All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincenzo Frascino <vincenzo.frascino@arm.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>, Arnd Bergmann <arnd@arndb.de>,
	Russell King <linux@armlinux.org.uk>,
	Ralf Baechle <ralf@linux-mips.org>,
	Paul Burton <paul.burton@mips.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Mark Salyzyn <salyzyn@android.com>,
	Peter Collingbourne <pcc@google.com>,
	Shuah Khan <shuah@kernel.org>,
	Dmitry Safonov <0x7f454c46@gmail.com>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Huw Davies <huw@codeweavers.com>
Subject: Re: [PATCH v6 03/19] kernel: Unify update_vsyscall implementation
Date: Fri, 14 Jun 2019 13:15:08 +0100	[thread overview]
Message-ID: <a69e48a2-575d-255c-2653-d3e99b7ba760@arm.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1906141307430.1722@nanos.tec.linutronix.de>

Hi Thomas,

On 6/14/19 12:10 PM, Thomas Gleixner wrote:
> On Thu, 30 May 2019, Vincenzo Frascino wrote:
>> +
>> +	if (__arch_use_vsyscall(vdata)) {
>> +		vdata[CS_HRES_COARSE].cycle_last	=
>> +						tk->tkr_mono.cycle_last;
>> +		vdata[CS_HRES_COARSE].mask		=
>> +						tk->tkr_mono.mask;
>> +		vdata[CS_HRES_COARSE].mult		=
>> +						tk->tkr_mono.mult;
> 
> These line breaks make it really hard to read. Can you fold in the patch
> below please?
> 

Thanks for this. I will do it in v7.

> Thanks,
> 
> 	tglx
> 8<-----------
> --- a/kernel/vdso/vsyscall.c
> +++ b/kernel/vdso/vsyscall.c
> @@ -11,6 +11,66 @@
>  #include <vdso/helpers.h>
>  #include <vdso/vsyscall.h>
>  
> +static inline void udpate_vdata(struct vdso_data *vdata, struct timekeeper *tk)
> +{
> +	struct vdso_timestamp *vdso_ts;
> +	u64 nsec;
> +
> +	vdata[CS_HRES_COARSE].cycle_last	= tk->tkr_mono.cycle_last;
> +	vdata[CS_HRES_COARSE].mask		= tk->tkr_mono.mask;
> +	vdata[CS_HRES_COARSE].mult		= tk->tkr_mono.mult;
> +	vdata[CS_HRES_COARSE].shift		= tk->tkr_mono.shift;
> +	vdata[CS_RAW].cycle_last		= tk->tkr_raw.cycle_last;
> +	vdata[CS_RAW].mask			= tk->tkr_raw.mask;
> +	vdata[CS_RAW].mult			= tk->tkr_raw.mult;
> +	vdata[CS_RAW].shift			= tk->tkr_raw.shift;
> +
> +	/* CLOCK_REALTIME */
> +	vdso_ts		=  &vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME];
> +	vdso_ts->sec	= tk->xtime_sec;
> +	vdso_ts->nsec	= tk->tkr_mono.xtime_nsec;
> +
> +	/* CLOCK_MONOTONIC */
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC];
> +	vdso_ts->sec	= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> +
> +	nsec = tk->tkr_mono.xtime_nsec;
> +	nsec += ((u64)tk->wall_to_monotonic.tv_nsec << tk->tkr_mono.shift);
> +	while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> +		nsec -= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> +		vdso_ts->sec++;
> +	}
> +	vdso_ts->nsec	= nsec;
> +
> +	/* CLOCK_MONOTONIC_RAW */
> +	vdso_ts		= &vdata[CS_RAW].basetime[CLOCK_MONOTONIC_RAW];
> +	vdso_ts->sec	= tk->raw_sec;
> +	vdso_ts->nsec	= tk->tkr_raw.xtime_nsec;
> +
> +	/* CLOCK_BOOTTIME */
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_BOOTTIME];
> +	vdso_ts->sec	= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> +	nsec = tk->tkr_mono.xtime_nsec;
> +	nsec += ((u64)(tk->wall_to_monotonic.tv_nsec +
> +		       ktime_to_ns(tk->offs_boot)) << tk->tkr_mono.shift);
> +	while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> +		nsec -= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> +		vdso_ts->sec++;
> +	}
> +	vdso_ts->nsec	= nsec;
> +
> +	/* CLOCK_TAI */
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_TAI];
> +	vdso_ts->sec	= tk->xtime_sec + (s64)tk->tai_offset;
> +	vdso_ts->nsec	= tk->tkr_mono.xtime_nsec;
> +
> +	/*
> +	 * Read without the seqlock held by clock_getres().
> +	 * Note: No need to have a second copy.
> +	 */
> +	WRITE_ONCE(vdata[CS_HRES_COARSE].hrtimer_res, hrtimer_resolution);
> +}
> +
>  void update_vsyscall(struct timekeeper *tk)
>  {
>  	struct vdso_data *vdata = __arch_get_k_vdso_data();
> @@ -32,92 +92,23 @@ void update_vsyscall(struct timekeeper *
>  	vdata[CS_RAW].clock_mode		= __arch_get_clock_mode(tk);
>  
>  	/* CLOCK_REALTIME_COARSE */
> -	vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME_COARSE];
> -	vdso_ts->sec		= tk->xtime_sec;
> -	vdso_ts->nsec		= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME_COARSE];
> +	vdso_ts->sec	= tk->xtime_sec;
> +	vdso_ts->nsec	= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> +
>  	/* CLOCK_MONOTONIC_COARSE */
> -	vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC_COARSE];
> -	vdso_ts->sec		= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> -	nsec			= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> -	nsec			= nsec + tk->wall_to_monotonic.tv_nsec;
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC_COARSE];
> +	vdso_ts->sec	= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> +	nsec		= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> +	nsec		= nsec + tk->wall_to_monotonic.tv_nsec;
>  	while (nsec >= NSEC_PER_SEC) {
>  		nsec = nsec - NSEC_PER_SEC;
>  		vdso_ts->sec++;
>  	}
> -	vdso_ts->nsec		= nsec;
> +	vdso_ts->nsec	= nsec;
>  
> -	if (__arch_use_vsyscall(vdata)) {
> -		vdata[CS_HRES_COARSE].cycle_last	=
> -						tk->tkr_mono.cycle_last;
> -		vdata[CS_HRES_COARSE].mask		=
> -						tk->tkr_mono.mask;
> -		vdata[CS_HRES_COARSE].mult		=
> -						tk->tkr_mono.mult;
> -		vdata[CS_HRES_COARSE].shift		=
> -						tk->tkr_mono.shift;
> -		vdata[CS_RAW].cycle_last		=
> -						tk->tkr_raw.cycle_last;
> -		vdata[CS_RAW].mask			=
> -						tk->tkr_raw.mask;
> -		vdata[CS_RAW].mult			=
> -						tk->tkr_raw.mult;
> -		vdata[CS_RAW].shift			=
> -						tk->tkr_raw.shift;
> -		/* CLOCK_REALTIME */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME];
> -		vdso_ts->sec		= tk->xtime_sec;
> -		vdso_ts->nsec		= tk->tkr_mono.xtime_nsec;
> -		/* CLOCK_MONOTONIC */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC];
> -		vdso_ts->sec		= tk->xtime_sec +
> -					  tk->wall_to_monotonic.tv_sec;
> -		nsec			= tk->tkr_mono.xtime_nsec;
> -		nsec			= nsec +
> -					  ((u64)tk->wall_to_monotonic.tv_nsec <<
> -					  tk->tkr_mono.shift);
> -		while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> -			nsec = nsec -
> -			       (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> -			vdso_ts->sec++;
> -		}
> -		vdso_ts->nsec		= nsec;
> -		/* CLOCK_MONOTONIC_RAW */
> -		vdso_ts			=
> -			&vdata[CS_RAW].basetime[CLOCK_MONOTONIC_RAW];
> -		vdso_ts->sec		= tk->raw_sec;
> -		vdso_ts->nsec		= tk->tkr_raw.xtime_nsec;
> -		/* CLOCK_BOOTTIME */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_BOOTTIME];
> -		vdso_ts->sec		= tk->xtime_sec +
> -					  tk->wall_to_monotonic.tv_sec;
> -		nsec			= tk->tkr_mono.xtime_nsec;
> -		nsec			= nsec +
> -					  ((u64)(tk->wall_to_monotonic.tv_nsec +
> -					  ktime_to_ns(tk->offs_boot)) <<
> -					  tk->tkr_mono.shift);
> -		while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> -			nsec = nsec -
> -				(((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> -			vdso_ts->sec++;
> -		}
> -		vdso_ts->nsec		= nsec;
> -		/* CLOCK_TAI */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_TAI];
> -		vdso_ts->sec		= tk->xtime_sec + (s64)tk->tai_offset;
> -		vdso_ts->nsec		= tk->tkr_mono.xtime_nsec;
> -
> -		/*
> -		 * Read without the seqlock held by clock_getres().
> -		 * Note: No need to have a second copy.
> -		 */
> -		WRITE_ONCE(vdata[CS_HRES_COARSE].hrtimer_res, hrtimer_resolution);
> -	}
> +	if (__arch_use_vsyscall(vdata))
> +		update_vdata(vdata, tk);
>  
>  	__arch_update_vsyscall(vdata, tk);
>  
> 

-- 
Regards,
Vincenzo

WARNING: multiple messages have this Message-ID (diff)
From: Vincenzo Frascino <vincenzo.frascino@arm.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>, Huw Davies <huw@codeweavers.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, Ralf Baechle <ralf@linux-mips.org>,
	linux-mips@vger.kernel.org, Paul Burton <paul.burton@mips.com>,
	linux-kselftest@vger.kernel.org,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Russell King <linux@armlinux.org.uk>,
	Dmitry Safonov <0x7f454c46@gmail.com>,
	Mark Salyzyn <salyzyn@android.com>,
	Peter Collingbourne <pcc@google.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 03/19] kernel: Unify update_vsyscall implementation
Date: Fri, 14 Jun 2019 13:15:08 +0100	[thread overview]
Message-ID: <a69e48a2-575d-255c-2653-d3e99b7ba760@arm.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1906141307430.1722@nanos.tec.linutronix.de>

Hi Thomas,

On 6/14/19 12:10 PM, Thomas Gleixner wrote:
> On Thu, 30 May 2019, Vincenzo Frascino wrote:
>> +
>> +	if (__arch_use_vsyscall(vdata)) {
>> +		vdata[CS_HRES_COARSE].cycle_last	=
>> +						tk->tkr_mono.cycle_last;
>> +		vdata[CS_HRES_COARSE].mask		=
>> +						tk->tkr_mono.mask;
>> +		vdata[CS_HRES_COARSE].mult		=
>> +						tk->tkr_mono.mult;
> 
> These line breaks make it really hard to read. Can you fold in the patch
> below please?
> 

Thanks for this. I will do it in v7.

> Thanks,
> 
> 	tglx
> 8<-----------
> --- a/kernel/vdso/vsyscall.c
> +++ b/kernel/vdso/vsyscall.c
> @@ -11,6 +11,66 @@
>  #include <vdso/helpers.h>
>  #include <vdso/vsyscall.h>
>  
> +static inline void udpate_vdata(struct vdso_data *vdata, struct timekeeper *tk)
> +{
> +	struct vdso_timestamp *vdso_ts;
> +	u64 nsec;
> +
> +	vdata[CS_HRES_COARSE].cycle_last	= tk->tkr_mono.cycle_last;
> +	vdata[CS_HRES_COARSE].mask		= tk->tkr_mono.mask;
> +	vdata[CS_HRES_COARSE].mult		= tk->tkr_mono.mult;
> +	vdata[CS_HRES_COARSE].shift		= tk->tkr_mono.shift;
> +	vdata[CS_RAW].cycle_last		= tk->tkr_raw.cycle_last;
> +	vdata[CS_RAW].mask			= tk->tkr_raw.mask;
> +	vdata[CS_RAW].mult			= tk->tkr_raw.mult;
> +	vdata[CS_RAW].shift			= tk->tkr_raw.shift;
> +
> +	/* CLOCK_REALTIME */
> +	vdso_ts		=  &vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME];
> +	vdso_ts->sec	= tk->xtime_sec;
> +	vdso_ts->nsec	= tk->tkr_mono.xtime_nsec;
> +
> +	/* CLOCK_MONOTONIC */
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC];
> +	vdso_ts->sec	= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> +
> +	nsec = tk->tkr_mono.xtime_nsec;
> +	nsec += ((u64)tk->wall_to_monotonic.tv_nsec << tk->tkr_mono.shift);
> +	while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> +		nsec -= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> +		vdso_ts->sec++;
> +	}
> +	vdso_ts->nsec	= nsec;
> +
> +	/* CLOCK_MONOTONIC_RAW */
> +	vdso_ts		= &vdata[CS_RAW].basetime[CLOCK_MONOTONIC_RAW];
> +	vdso_ts->sec	= tk->raw_sec;
> +	vdso_ts->nsec	= tk->tkr_raw.xtime_nsec;
> +
> +	/* CLOCK_BOOTTIME */
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_BOOTTIME];
> +	vdso_ts->sec	= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> +	nsec = tk->tkr_mono.xtime_nsec;
> +	nsec += ((u64)(tk->wall_to_monotonic.tv_nsec +
> +		       ktime_to_ns(tk->offs_boot)) << tk->tkr_mono.shift);
> +	while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> +		nsec -= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> +		vdso_ts->sec++;
> +	}
> +	vdso_ts->nsec	= nsec;
> +
> +	/* CLOCK_TAI */
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_TAI];
> +	vdso_ts->sec	= tk->xtime_sec + (s64)tk->tai_offset;
> +	vdso_ts->nsec	= tk->tkr_mono.xtime_nsec;
> +
> +	/*
> +	 * Read without the seqlock held by clock_getres().
> +	 * Note: No need to have a second copy.
> +	 */
> +	WRITE_ONCE(vdata[CS_HRES_COARSE].hrtimer_res, hrtimer_resolution);
> +}
> +
>  void update_vsyscall(struct timekeeper *tk)
>  {
>  	struct vdso_data *vdata = __arch_get_k_vdso_data();
> @@ -32,92 +92,23 @@ void update_vsyscall(struct timekeeper *
>  	vdata[CS_RAW].clock_mode		= __arch_get_clock_mode(tk);
>  
>  	/* CLOCK_REALTIME_COARSE */
> -	vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME_COARSE];
> -	vdso_ts->sec		= tk->xtime_sec;
> -	vdso_ts->nsec		= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME_COARSE];
> +	vdso_ts->sec	= tk->xtime_sec;
> +	vdso_ts->nsec	= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> +
>  	/* CLOCK_MONOTONIC_COARSE */
> -	vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC_COARSE];
> -	vdso_ts->sec		= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> -	nsec			= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> -	nsec			= nsec + tk->wall_to_monotonic.tv_nsec;
> +	vdso_ts		= &vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC_COARSE];
> +	vdso_ts->sec	= tk->xtime_sec + tk->wall_to_monotonic.tv_sec;
> +	nsec		= tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift;
> +	nsec		= nsec + tk->wall_to_monotonic.tv_nsec;
>  	while (nsec >= NSEC_PER_SEC) {
>  		nsec = nsec - NSEC_PER_SEC;
>  		vdso_ts->sec++;
>  	}
> -	vdso_ts->nsec		= nsec;
> +	vdso_ts->nsec	= nsec;
>  
> -	if (__arch_use_vsyscall(vdata)) {
> -		vdata[CS_HRES_COARSE].cycle_last	=
> -						tk->tkr_mono.cycle_last;
> -		vdata[CS_HRES_COARSE].mask		=
> -						tk->tkr_mono.mask;
> -		vdata[CS_HRES_COARSE].mult		=
> -						tk->tkr_mono.mult;
> -		vdata[CS_HRES_COARSE].shift		=
> -						tk->tkr_mono.shift;
> -		vdata[CS_RAW].cycle_last		=
> -						tk->tkr_raw.cycle_last;
> -		vdata[CS_RAW].mask			=
> -						tk->tkr_raw.mask;
> -		vdata[CS_RAW].mult			=
> -						tk->tkr_raw.mult;
> -		vdata[CS_RAW].shift			=
> -						tk->tkr_raw.shift;
> -		/* CLOCK_REALTIME */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_REALTIME];
> -		vdso_ts->sec		= tk->xtime_sec;
> -		vdso_ts->nsec		= tk->tkr_mono.xtime_nsec;
> -		/* CLOCK_MONOTONIC */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC];
> -		vdso_ts->sec		= tk->xtime_sec +
> -					  tk->wall_to_monotonic.tv_sec;
> -		nsec			= tk->tkr_mono.xtime_nsec;
> -		nsec			= nsec +
> -					  ((u64)tk->wall_to_monotonic.tv_nsec <<
> -					  tk->tkr_mono.shift);
> -		while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> -			nsec = nsec -
> -			       (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> -			vdso_ts->sec++;
> -		}
> -		vdso_ts->nsec		= nsec;
> -		/* CLOCK_MONOTONIC_RAW */
> -		vdso_ts			=
> -			&vdata[CS_RAW].basetime[CLOCK_MONOTONIC_RAW];
> -		vdso_ts->sec		= tk->raw_sec;
> -		vdso_ts->nsec		= tk->tkr_raw.xtime_nsec;
> -		/* CLOCK_BOOTTIME */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_BOOTTIME];
> -		vdso_ts->sec		= tk->xtime_sec +
> -					  tk->wall_to_monotonic.tv_sec;
> -		nsec			= tk->tkr_mono.xtime_nsec;
> -		nsec			= nsec +
> -					  ((u64)(tk->wall_to_monotonic.tv_nsec +
> -					  ktime_to_ns(tk->offs_boot)) <<
> -					  tk->tkr_mono.shift);
> -		while (nsec >= (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) {
> -			nsec = nsec -
> -				(((u64)NSEC_PER_SEC) << tk->tkr_mono.shift);
> -			vdso_ts->sec++;
> -		}
> -		vdso_ts->nsec		= nsec;
> -		/* CLOCK_TAI */
> -		vdso_ts			=
> -			&vdata[CS_HRES_COARSE].basetime[CLOCK_TAI];
> -		vdso_ts->sec		= tk->xtime_sec + (s64)tk->tai_offset;
> -		vdso_ts->nsec		= tk->tkr_mono.xtime_nsec;
> -
> -		/*
> -		 * Read without the seqlock held by clock_getres().
> -		 * Note: No need to have a second copy.
> -		 */
> -		WRITE_ONCE(vdata[CS_HRES_COARSE].hrtimer_res, hrtimer_resolution);
> -	}
> +	if (__arch_use_vsyscall(vdata))
> +		update_vdata(vdata, tk);
>  
>  	__arch_update_vsyscall(vdata, tk);
>  
> 

-- 
Regards,
Vincenzo

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-06-14 12:14 UTC|newest]

Thread overview: 277+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-30 14:15 [PATCH v6 00/19] Unify vDSOs across more architectures Vincenzo Frascino
2019-05-30 14:15 ` Vincenzo Frascino
2019-05-30 14:15 ` Vincenzo Frascino
2019-05-30 14:15 ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 01/19] kernel: Standardize vdso_datapage Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-31  8:16   ` Arnd Bergmann
2019-05-31  8:16     ` Arnd Bergmann
2019-05-31  8:16     ` Arnd Bergmann
2019-05-31  8:16     ` Arnd Bergmann
2019-05-31  8:16     ` arnd
2019-06-04 12:05     ` Vincenzo Frascino
2019-06-04 12:05       ` Vincenzo Frascino
2019-06-04 12:05       ` Vincenzo Frascino
2019-06-04 12:05       ` Vincenzo Frascino
2019-06-04 12:05       ` vincenzo.frascino
2019-06-10 17:47       ` Huw Davies
2019-06-10 17:47         ` Huw Davies
2019-06-10 17:47         ` Huw Davies
2019-06-10 17:47         ` Huw Davies
2019-06-10 17:47         ` huw
2019-06-10  9:27   ` Huw Davies
2019-06-10  9:27     ` Huw Davies
2019-06-10  9:27     ` Huw Davies
2019-06-10  9:27     ` Huw Davies
2019-06-10  9:27     ` huw
2019-06-10 10:17     ` Vincenzo Frascino
2019-06-10 10:17       ` Vincenzo Frascino
2019-06-10 10:17       ` Vincenzo Frascino
2019-06-10 10:17       ` vincenzo.frascino
2019-06-10 10:31       ` Huw Davies
2019-06-10 10:31         ` Huw Davies
2019-06-10 10:31         ` Huw Davies
2019-06-10 10:31         ` huw
2019-06-10 11:07         ` Vincenzo Frascino
2019-06-10 11:07           ` Vincenzo Frascino
2019-06-10 11:07           ` Vincenzo Frascino
2019-06-10 11:07           ` vincenzo.frascino
2019-06-10 11:37           ` Huw Davies
2019-06-10 11:37             ` Huw Davies
2019-06-10 11:37             ` Huw Davies
2019-06-10 11:37             ` huw
2019-05-30 14:15 ` [PATCH v6 02/19] kernel: Define gettimeofday vdso common code Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-31  8:19   ` Arnd Bergmann
2019-05-31  8:19     ` Arnd Bergmann
2019-05-31  8:19     ` Arnd Bergmann
2019-05-31  8:19     ` Arnd Bergmann
2019-05-31  8:19     ` arnd
2019-06-04 12:08     ` Vincenzo Frascino
2019-06-04 12:08       ` Vincenzo Frascino
2019-06-04 12:08       ` Vincenzo Frascino
2019-06-04 12:08       ` Vincenzo Frascino
2019-06-04 12:08       ` vincenzo.frascino
2019-06-10  9:31   ` Huw Davies
2019-06-10  9:31     ` Huw Davies
2019-06-10  9:31     ` Huw Davies
2019-06-10  9:31     ` Huw Davies
2019-06-10  9:31     ` huw
2019-06-10 10:18     ` Vincenzo Frascino
2019-06-10 10:18       ` Vincenzo Frascino
2019-06-10 10:18       ` Vincenzo Frascino
2019-06-10 10:18       ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 03/19] kernel: Unify update_vsyscall implementation Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-06-10  9:34   ` Huw Davies
2019-06-10  9:34     ` Huw Davies
2019-06-10  9:34     ` Huw Davies
2019-06-10  9:34     ` huw
2019-06-10 10:19     ` Vincenzo Frascino
2019-06-10 10:19       ` Vincenzo Frascino
2019-06-10 10:19       ` Vincenzo Frascino
2019-06-10 10:19       ` vincenzo.frascino
2019-06-14 11:10   ` Thomas Gleixner
2019-06-14 11:10     ` Thomas Gleixner
2019-06-14 12:15     ` Vincenzo Frascino [this message]
2019-06-14 12:15       ` Vincenzo Frascino
2019-06-14 12:19       ` Thomas Gleixner
2019-06-14 12:19         ` Thomas Gleixner
2019-06-14 12:25         ` Vincenzo Frascino
2019-06-14 12:25           ` Vincenzo Frascino
2019-06-14 13:07           ` Thomas Gleixner
2019-06-14 13:07             ` Thomas Gleixner
2019-05-30 14:15 ` [PATCH v6 04/19] arm64: Substitute gettimeofday with C implementation Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 05/19] arm64: Build vDSO with -ffixed-x18 Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 06/19] arm64: compat: Add missing syscall numbers Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 07/19] arm64: compat: Expose signal related structures Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 08/19] arm64: compat: Generate asm offsets for signals Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 09/19] lib: vdso: Add compat support Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 10/19] arm64: compat: Add vDSO Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 11/19] arm64: Refactor vDSO code Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 12/19] arm64: compat: vDSO setup for compat layer Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 13/19] arm64: elf: vDSO code page discovery Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 14/19] arm64: compat: Get sigreturn trampolines from vDSO Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 15/19] arm64: Add vDSO compat support Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-06-01  9:38   ` Catalin Marinas
2019-06-01  9:38     ` Catalin Marinas
2019-06-01  9:38     ` Catalin Marinas
2019-06-01  9:38     ` catalin.marinas
2019-06-04 12:10     ` Vincenzo Frascino
2019-06-04 12:10       ` Vincenzo Frascino
2019-06-04 12:10       ` Vincenzo Frascino
2019-06-04 12:10       ` vincenzo.frascino
2019-05-30 14:15 ` [PATCH v6 16/19] arm: Add support for generic vDSO Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-31  8:32   ` Arnd Bergmann
2019-05-31  8:32     ` Arnd Bergmann
2019-05-31  8:32     ` Arnd Bergmann
2019-05-31  8:32     ` Arnd Bergmann
2019-05-31  8:32     ` arnd
2019-05-30 14:15 ` [PATCH v6 17/19] mips: " Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-31  8:34   ` Arnd Bergmann
2019-05-31  8:34     ` Arnd Bergmann
2019-05-31  8:34     ` Arnd Bergmann
2019-05-31  8:34     ` Arnd Bergmann
2019-05-31  8:34     ` arnd
2019-06-03 14:54     ` Mark Salyzyn
2019-06-03 14:54       ` Mark Salyzyn
2019-06-03 14:54       ` Mark Salyzyn
2019-06-03 14:54       ` Mark Salyzyn
2019-06-03 14:54       ` salyzyn
2019-06-03 17:07       ` Arnd Bergmann
2019-06-03 17:07         ` Arnd Bergmann
2019-06-03 17:07         ` Arnd Bergmann
2019-06-03 17:07         ` Arnd Bergmann
2019-06-03 17:07         ` arnd
2019-05-30 14:15 ` [PATCH v6 18/19] x86: " Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-30 15:41   ` Michael Kelley
2019-05-30 15:41     ` Michael Kelley
2019-05-30 15:41     ` Michael Kelley
2019-05-30 15:41     ` Michael Kelley
2019-05-30 15:41     ` mikelley
2019-06-04 12:13     ` Vincenzo Frascino
2019-06-04 12:13       ` Vincenzo Frascino
2019-06-04 12:13       ` Vincenzo Frascino
2019-06-04 12:13       ` Vincenzo Frascino
2019-06-04 12:13       ` vincenzo.frascino
2019-06-14 11:15     ` Thomas Gleixner
2019-06-14 11:15       ` Thomas Gleixner
2019-06-14 11:15       ` Thomas Gleixner
2019-06-14 11:15       ` Thomas Gleixner
2019-06-14 21:17       ` Sasha Levin
2019-06-14 21:17         ` Sasha Levin
2019-06-14 21:17         ` Sasha Levin
2019-06-14 21:17         ` Sasha Levin
2019-06-22 14:46         ` Thomas Gleixner
2019-06-22 14:46           ` Thomas Gleixner
2019-06-22 14:46           ` Thomas Gleixner
2019-06-22 14:46           ` Thomas Gleixner
2019-06-23 19:09           ` Sasha Levin
2019-06-23 19:09             ` Sasha Levin
2019-06-23 19:09             ` Sasha Levin
2019-06-23 19:09             ` Sasha Levin
2019-06-23 21:58             ` Stephen Rothwell
2019-06-23 21:58               ` Stephen Rothwell
2019-06-23 21:58               ` Stephen Rothwell
2019-06-23 21:58               ` Stephen Rothwell
2019-06-24  0:24               ` Sasha Levin
2019-06-24  0:24                 ` Sasha Levin
2019-06-24  0:24                 ` Sasha Levin
2019-06-24  0:24                 ` Sasha Levin
2019-06-24  1:20                 ` Stephen Rothwell
2019-06-24  1:20                   ` Stephen Rothwell
2019-06-24  1:20                   ` Stephen Rothwell
2019-06-24  1:20                   ` Stephen Rothwell
2019-06-23 22:12             ` Thomas Gleixner
2019-06-23 22:12               ` Thomas Gleixner
2019-06-23 22:12               ` Thomas Gleixner
2019-06-23 22:12               ` Thomas Gleixner
2019-06-24  0:04               ` Michael Kelley
2019-06-24  0:04                 ` Michael Kelley
2019-06-24  0:04                 ` Michael Kelley
2019-06-24  0:04                 ` Michael Kelley
2019-06-24  0:25                 ` Thomas Gleixner
2019-06-24  0:25                   ` Thomas Gleixner
2019-06-24  0:25                   ` Thomas Gleixner
2019-06-24  0:25                   ` Thomas Gleixner
2019-06-28 18:40                   ` Michael Kelley
2019-06-28 18:40                     ` Michael Kelley
2019-06-28 18:40                     ` Michael Kelley
2019-06-28 18:40                     ` Michael Kelley
2019-05-30 14:15 ` [PATCH v6 19/19] kselftest: Extend vDSO selftest Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` Vincenzo Frascino
2019-05-30 14:15   ` vincenzo.frascino
2019-05-31  8:53   ` Arnd Bergmann
2019-05-31  8:53     ` Arnd Bergmann
2019-05-31  8:53     ` Arnd Bergmann
2019-05-31  8:53     ` Arnd Bergmann
2019-05-31  8:53     ` arnd
2019-05-31  8:46 ` [PATCH v6 00/19] Unify vDSOs across more architectures Arnd Bergmann
2019-05-31  8:46   ` Arnd Bergmann
2019-05-31  8:46   ` Arnd Bergmann
2019-05-31  8:46   ` Arnd Bergmann
2019-05-31  8:46   ` arnd
2019-06-04 12:04   ` Vincenzo Frascino
2019-06-04 12:04     ` Vincenzo Frascino
2019-06-04 12:04     ` Vincenzo Frascino
2019-06-04 12:04     ` Vincenzo Frascino
2019-06-04 12:04     ` vincenzo.frascino
2019-06-04 12:12     ` Arnd Bergmann
2019-06-04 12:12       ` Arnd Bergmann
2019-06-04 12:12       ` Arnd Bergmann
2019-06-04 12:12       ` Arnd Bergmann
2019-06-04 12:12       ` arnd
2019-06-05 14:32       ` Vincenzo Frascino
2019-06-05 14:32         ` Vincenzo Frascino
2019-06-05 14:32         ` Vincenzo Frascino
2019-06-05 14:32         ` Vincenzo Frascino
2019-06-05 14:32         ` vincenzo.frascino
2019-06-14 12:16     ` Thomas Gleixner
2019-06-14 12:16       ` Thomas Gleixner
2019-06-14 12:16       ` Thomas Gleixner
2019-06-14 12:19       ` Vincenzo Frascino
2019-06-14 12:19         ` Vincenzo Frascino
2019-06-14 12:19         ` Vincenzo Frascino
2019-06-20  6:17 ` Shijith Thotton
2019-06-20  6:17   ` Shijith Thotton
2019-06-20  6:17   ` Shijith Thotton
2019-06-20  6:17   ` Shijith Thotton
2019-06-20  8:55   ` Vincenzo Frascino
2019-06-20  8:55     ` Vincenzo Frascino
2019-06-20  8:55     ` Vincenzo Frascino
2019-06-20 16:27 ` Andre Przywara
2019-06-20 16:27   ` Andre Przywara
2019-06-21  9:11   ` Vincenzo Frascino
2019-06-21  9:11     ` Vincenzo Frascino

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a69e48a2-575d-255c-2653-d3e99b7ba760@arm.com \
    --to=vincenzo.frascino@arm.com \
    --cc=0x7f454c46@gmail.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=huw@codeweavers.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linux@rasmusvillemoes.dk \
    --cc=paul.burton@mips.com \
    --cc=pcc@google.com \
    --cc=ralf@linux-mips.org \
    --cc=salyzyn@android.com \
    --cc=shuah@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.