On Tue, Jun 19, 2018 at 11:12:05AM +0200, Thomas Gleixner wrote: > On Fri, 15 Jun 2018, Fenghua Yu wrote: > > > A few new user wait instructions UMONITOR, UMWAIT, and TPAUSE are > > published in the latest Intel Instruction Set Extensions document. > > > > Define the APIs for user or kernel to use the instructions. > > You're not defining APIs. You're adding a pile of misdesigned helper > functions which again add static storage per compilation unit and CPUID > fiddling. > > If you want to add proper APIs then add the stuff to the VDSO and be done > with it.
The user wait instructions are mainly called by user apps; but they can be used in kernel as well. I'm planning to provide five APIs to user: 1. If user wait feature is supported 2. nsec to tsc translation 3. umonitor function that exectes UMONITOR instruction 4. umwait function that executes UMWAIT instruction 5. tpause function that executes TPAUSE instruction Seems 1-2 can be implemented in VDSO. But should I implement 3-5 in VDSO/kernel as well? Thanks. -Fenghua