virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support
@ 2018-09-14 12:50 Thomas Gleixner
  0 siblings, 0 replies; 77+ messages in thread
From: Thomas Gleixner @ 2018-09-14 12:50 UTC (permalink / raw)
  To: LKML
  Cc: Florian Weimer, Juergen Gross, Arnd Bergmann, Peter Zijlstra, x86,
	virtualization, Stephen Boyd, John Stultz, Andy Lutomirski,
	Paolo Bonzini, devel, Matt Rickard

Matt attempted to add CLOCK_TAI support to the VDSO clock_gettime()
implementation, which extended the clockid switch case and added yet
another slightly different copy of the same code.

Especially the extended switch case is problematic as the compiler tends to
generate a jump table which then requires to use retpolines. If jump tables
are disabled it adds yet another conditional to the existing maze.

This series takes a different approach by consolidating the almost
identical functions into one implementation for high resolution clocks and
one for the coarse grained clock ids by storing the base data for each
clock id in an array which is indexed by the clock id.

This completely eliminates the switch case and allows further
simplifications of the code base, which at the end all together gain a few
cycles performance or at least stay on par with todays code. The resulting
performance depends heavily on the micro architecture and the compiler.

Thanks,

	tglx

8<-------------------
 arch/x86/Kconfig                        |    1 
 arch/x86/entry/vdso/vclock_gettime.c    |  199 ++++++++------------------------
 arch/x86/entry/vsyscall/vsyscall_gtod.c |   55 ++++----
 arch/x86/include/asm/vgtod.h            |   46 ++++---
 arch/x86/kernel/time.c                  |   22 +++
 include/linux/clocksource.h             |    5 
 kernel/time/Kconfig                     |    4 
 kernel/time/clocksource.c               |    2 
 8 files changed, 144 insertions(+), 190 deletions(-)

^ permalink raw reply	[flat|nested] 77+ messages in thread

end of thread, other threads:[~2018-10-15 13:39 UTC | newest]

Thread overview: 77+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20180914125006.349747096@linutronix.de>
2018-09-14 12:50 ` [patch 01/11] clocksource: Provide clocksource_arch_init() Thomas Gleixner
2018-09-14 12:50 ` [patch 02/11] x86/time: Implement clocksource_arch_init() Thomas Gleixner
2018-09-14 12:50 ` [patch 03/11] x86/vdso: Enforce 64bit clocksource Thomas Gleixner
2018-09-14 12:50 ` [patch 04/11] x86/vdso: Use unsigned int consistently for vsyscall_gtod_data::seq Thomas Gleixner
2018-09-14 12:50 ` [patch 05/11] x86/vdso: Introduce and use vgtod_ts Thomas Gleixner
2018-09-14 12:50 ` [patch 06/11] x86/vdso: Collapse high resolution functions Thomas Gleixner
2018-09-14 12:50 ` [patch 07/11] x86/vdso: Collapse coarse functions Thomas Gleixner
2018-09-14 12:50 ` [patch 08/11] x86/vdso: Replace the clockid switch case Thomas Gleixner
2018-09-14 12:50 ` [patch 09/11] x86/vdso: Simplify the invalid vclock case Thomas Gleixner
2018-09-14 12:50 ` [patch 10/11] x86/vdso: Move cycle_last handling into the caller Thomas Gleixner
2018-09-14 12:50 ` [patch 11/11] x66/vdso: Add CLOCK_TAI support Thomas Gleixner
     [not found] ` <2f723b28-8f81-4b02-861c-42f756a8825a@redhat.com>
2018-09-14 13:05   ` [patch 00/11] x86/vdso: Cleanups, simmplifications and " Thomas Gleixner
2018-09-14 13:09   ` Peter Zijlstra
     [not found]   ` <alpine.DEB.2.21.1809141459530.10480@nanos.tec.linutronix.de>
     [not found]     ` <63a0f67d-fdb1-e2fc-5d4d-4f3cfbf86fd1@redhat.com>
2018-09-14 13:19       ` Thomas Gleixner
     [not found] ` <20180914125119.081037164@linutronix.de>
2018-09-14 14:04   ` [patch 11/11] x66/vdso: Add " Andy Lutomirski
     [not found]   ` <ABB53D42-2A06-41B9-8A8C-40B39CD0289D@amacapital.net>
2018-09-14 14:27     ` Thomas Gleixner
     [not found]     ` <alpine.DEB.2.21.1809141625040.10480@nanos.tec.linutronix.de>
2018-09-14 14:59       ` Andy Lutomirski
     [not found]       ` <FAE37798-8CCE-44A5-9EF0-F69C2199BE60@amacapital.net>
2018-09-16  9:39         ` Thomas Gleixner
2018-09-14 14:22 ` [patch 00/11] x86/vdso: Cleanups, simmplifications and " Arnd Bergmann
     [not found] ` <20180914125118.998589817@linutronix.de>
2018-09-14 15:26   ` [patch 10/11] x86/vdso: Move cycle_last handling into the caller Vitaly Kuznetsov
     [not found] ` <20180914125118.293161327@linutronix.de>
2018-09-14 15:45   ` [patch 02/11] x86/time: Implement clocksource_arch_init() Vitaly Kuznetsov
     [not found]   ` <87zhwk6q2l.fsf@vitty.brq.redhat.com>
2018-09-15  6:05     ` Thomas Gleixner
     [not found] ` <CAK8P3a1QfynDxkKBLXVa5Qj_z+7ct3QB5sDYuY5QV3ht-a0cTg@mail.gmail.com>
2018-09-17 13:00   ` [patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support Thomas Gleixner
     [not found]   ` <alpine.DEB.2.21.1809171451380.16580@nanos.tec.linutronix.de>
2018-09-24 21:08     ` Arnd Bergmann
     [not found] ` <20180914125118.909646643@linutronix.de>
2018-09-17 19:25   ` [patch 09/11] x86/vdso: Simplify the invalid vclock case Andy Lutomirski
     [not found]     ` <CALAqxLUv9Rd_eA7u9gZNFvTNrT1Z67RpHLozdeNC0W2yZm=Heg@mail.gmail.com>
2018-09-18  7:52       ` Thomas Gleixner
     [not found]       ` <alpine.DEB.2.21.1809180948570.3558@nanos.tec.linutronix.de>
2018-09-18  8:30         ` Peter Zijlstra
2018-09-18  8:52           ` Thomas Gleixner
     [not found]           ` <alpine.DEB.2.21.1809181050020.4167@nanos.tec.linutronix.de>
2018-09-18 10:06             ` Thomas Gleixner
     [not found]             ` <alpine.DEB.2.21.1809181204460.4167@nanos.tec.linutronix.de>
2018-09-18 10:41               ` Thomas Gleixner
     [not found]               ` <alpine.DEB.2.21.1809181237140.4167@nanos.tec.linutronix.de>
2018-09-18 12:48                 ` Peter Zijlstra
2018-09-18 13:23                   ` Thomas Gleixner
     [not found]                   ` <alpine.DEB.2.21.1809181515170.6950@nanos.tec.linutronix.de>
2018-09-18 13:38                     ` Peter Zijlstra
2018-09-18 15:52                     ` Thomas Gleixner
     [not found]                     ` <alpine.DEB.2.21.1809181731570.7302@nanos.tec.linutronix.de>
2018-09-27 14:41                       ` Thomas Gleixner
2018-09-18 14:01         ` Andy Lutomirski
     [not found]         ` <863331ED-B04A-4B94-91A2-D34002C9CCDC@amacapital.net>
2018-09-18 22:46           ` Thomas Gleixner
     [not found]           ` <alpine.DEB.2.21.1809190037570.1468@nanos.tec.linutronix.de>
2018-09-18 23:03             ` Andy Lutomirski
     [not found]             ` <439A3E73-E4FF-4D66-800E-5BEE58EDE8F6@amacapital.net>
2018-09-18 23:16               ` Thomas Gleixner
     [not found]               ` <alpine.DEB.2.21.1809190112020.1468@nanos.tec.linutronix.de>
2018-09-27 14:36                 ` Thomas Gleixner
     [not found]                 ` <alpine.DEB.2.21.1809271630470.8118@nanos.tec.linutronix.de>
2018-09-27 14:39                   ` Andy Lutomirski
     [not found]             ` <06e91c26-756f-f236-0af2-327e520c3065@rasmusvillemoes.dk>
2018-09-19 13:29               ` Thomas Gleixner
2018-10-03  5:15 ` [patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support Andy Lutomirski
2018-10-03  9:22   ` Vitaly Kuznetsov
     [not found]   ` <87sh1ne64t.fsf@vitty.brq.redhat.com>
2018-10-03 10:20     ` Andy Lutomirski
2018-10-03 12:01       ` Vitaly Kuznetsov
     [not found]       ` <87murvdysd.fsf@vitty.brq.redhat.com>
2018-10-03 14:20         ` Andy Lutomirski
     [not found]         ` <8C316427-8BEC-4979-8AB2-5E385066BB6F@amacapital.net>
2018-10-03 15:10           ` Thomas Gleixner
     [not found]           ` <alpine.DEB.2.21.1810031704480.23677@nanos.tec.linutronix.de>
2018-10-03 16:18             ` Andy Lutomirski
2018-10-03 19:06     ` Marcelo Tosatti
     [not found]     ` <20181003190617.GC21381@amt.cnet>
2018-10-04  7:54       ` Vitaly Kuznetsov
     [not found]       ` <87k1mycfju.fsf@vitty.brq.redhat.com>
2018-10-04  8:11         ` Peter Zijlstra
2018-10-04 12:00         ` Paolo Bonzini
     [not found]         ` <20181004081100.GI19272@hirez.programming.kicks-ass.net>
2018-10-04 14:00           ` Andy Lutomirski
     [not found]           ` <B8C05946-43BB-40A4-A564-53904FAF8CC0@amacapital.net>
2018-10-04 19:31             ` Peter Zijlstra
     [not found]             ` <20181004193150.GQ19272@hirez.programming.kicks-ass.net>
2018-10-04 20:05               ` Andy Lutomirski
     [not found]               ` <499807AB-E779-40C3-AA3F-E8C77A7770EC@amacapital.net>
2018-10-04 22:15                 ` Andy Lutomirski
2018-10-06 20:27                   ` Marcelo Tosatti
2018-10-06 22:28                     ` Andy Lutomirski
     [not found]                     ` <CALCETrWqze2mifOdFc0GJYHtHGKiKX2Zdi5Kz87OyUogbqD15w@mail.gmail.com>
2018-10-08 15:26                       ` Marcelo Tosatti
     [not found]                       ` <20181008152650.GB27822@amt.cnet>
2018-10-08 17:38                         ` Andy Lutomirski
     [not found]                         ` <CALCETrVY6VHPLs0GXZM4+VYraTa1+xs=iRJoRa++OHX9Wq+ieg@mail.gmail.com>
2018-10-08 19:36                           ` Marcelo Tosatti
     [not found]                           ` <20181008193632.GA31729@amt.cnet>
2018-10-09 20:09                             ` Andy Lutomirski
     [not found]                             ` <CALCETrW6b8=dU6vkXNS-rW1GPzJTbVxuVNsU4aoD_NwwobVQcg@mail.gmail.com>
2018-10-11 22:27                               ` Marcelo Tosatti
2018-10-11 23:00                                 ` Andy Lutomirski
2018-10-15 13:39                                   ` Marcelo Tosatti
2018-10-06 20:49                   ` Marcelo Tosatti
     [not found]         ` <1832e2af-3189-cb50-f4b6-45e74cdcf4b4@redhat.com>
2018-10-04 14:04           ` Andy Lutomirski
2018-10-05 21:18         ` Marcelo Tosatti
2018-10-03 19:00   ` Marcelo Tosatti
     [not found]   ` <20181003190026.GB21381@amt.cnet>
2018-10-03 19:05     ` [patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support\ Marcelo Tosatti
2018-10-03 22:32     ` [patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support Andy Lutomirski
2018-10-04 16:37       ` Marcelo Tosatti
     [not found]       ` <20181004163705.GA25129@amt.cnet>
2018-10-04 17:08         ` Andy Lutomirski
     [not found]         ` <CALCETrWbWLM5Jjm7iJCE7S=BJ9OFw2QQGJ2Ao-qsuaN50z=y0A@mail.gmail.com>
2018-10-04 17:28           ` Vitaly Kuznetsov
2018-10-04 20:32 ` Andy Lutomirski
2018-09-14 12:50 Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).