Thread (61 messages) flat view 61 messages, 7 authors, 2019-08-19

Re: [PATCHv6 23/36] x86/vdso: Allocate timens vdso

From: Thomas Gleixner <hidden>
Date: 2019-08-16 20:10:45
Also in: lkml

On Fri, 16 Aug 2019, Andy Lutomirski wrote:
On 8/15/19 9:38 AM, Dmitry Safonov wrote:
quoted
As it has been discussed on timens RFC, adding a new conditional branch
`if (inside_time_ns)` on VDSO for all processes is undesirable.
It will add a penalty for everybody as branch predictor may mispredict
the jump. Also there are instruction cache lines wasted on cmp/jmp.

Those effects of introducing time namespace are very much unwanted
having in mind how much work have been spent on micro-optimisation
vdso code.

The propose is to allocate a second vdso code with dynamically
patched out (disabled by static_branch) timens code on boot time.

Allocate another vdso and copy original code.

I'm unconvinced that any of this magic is wise.  I think you should make a
special timens vvar page that causes the normal fastpath to fail (using a
special vclock mode, a special seq value, or a special "last" value) and then
make the failure path detect that timens is in use and use the timens path.
My initial suggestion still stands. Do that at compile time. It really does
not matter whether we have another 2 or 3 variants of vdso binaries.

Use it and be done with it. No special magic, just straight forward
decisions to use a timens capable VDSO or not.

Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help