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
next prev parent 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: linkBe 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.