Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 4:20 PM Alexey Dobriyan wrote: > > This is Broadwell Xeon E5-2620 v4. > Which is somewhat strange indeed because it should be modern enough. Yeah, odd. Here's the benchmark I used: #define SIZE 4068 int main(int argc, char **argv) { int i; unsigned char

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 4:20 PM Alexey Dobriyan wrote: > > This is Broadwell Xeon E5-2620 v4. > Which is somewhat strange indeed because it should be modern enough. Yeah, odd. Here's the benchmark I used: #define SIZE 4068 int main(int argc, char **argv) { int i; unsigned char

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Alexey Dobriyan
On Tue, Jun 05, 2018 at 04:04:37PM -0700, Linus Torvalds wrote: > On Tue, Jun 5, 2018 at 4:01 PM Linus Torvalds > wrote: > > > > On Tue, Jun 5, 2018 at 3:41 PM Alexey Dobriyan wrote: > > > > > > On my potato performance increase is 33%, sheesh. > > > And CPU starts doing 3 instructions per cycle

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Alexey Dobriyan
On Tue, Jun 05, 2018 at 04:04:37PM -0700, Linus Torvalds wrote: > On Tue, Jun 5, 2018 at 4:01 PM Linus Torvalds > wrote: > > > > On Tue, Jun 5, 2018 at 3:41 PM Alexey Dobriyan wrote: > > > > > > On my potato performance increase is 33%, sheesh. > > > And CPU starts doing 3 instructions per cycle

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 4:01 PM Linus Torvalds wrote: > > On Tue, Jun 5, 2018 at 3:41 PM Alexey Dobriyan wrote: > > > > On my potato performance increase is 33%, sheesh. > > And CPU starts doing 3 instructions per cycle vs 2. > > Whee. That's a shockingly big difference. On my CPU (i7-6700K) it >

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 4:01 PM Linus Torvalds wrote: > > On Tue, Jun 5, 2018 at 3:41 PM Alexey Dobriyan wrote: > > > > On my potato performance increase is 33%, sheesh. > > And CPU starts doing 3 instructions per cycle vs 2. > > Whee. That's a shockingly big difference. On my CPU (i7-6700K) it >

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 3:41 PM Alexey Dobriyan wrote: > > On my potato performance increase is 33%, sheesh. > And CPU starts doing 3 instructions per cycle vs 2. Whee. That's a shockingly big difference. On my CPU (i7-6700K) it makes absolutely no difference whether the values are integers or in

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 3:41 PM Alexey Dobriyan wrote: > > On my potato performance increase is 33%, sheesh. > And CPU starts doing 3 instructions per cycle vs 2. Whee. That's a shockingly big difference. On my CPU (i7-6700K) it makes absolutely no difference whether the values are integers or in

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Alexey Dobriyan
On Tue, Jun 05, 2018 at 10:32:55AM -0700, Linus Torvalds wrote: > On Tue, Jun 5, 2018 at 10:22 AM Alexey Dobriyan wrote: > > > > Tested? :^) I had P4 maybe ~15(?) years ago. > > Did you EVEN test it on what you have today? > > Do you have any numbers at all, in other words? > >

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Alexey Dobriyan
On Tue, Jun 05, 2018 at 10:32:55AM -0700, Linus Torvalds wrote: > On Tue, Jun 5, 2018 at 10:22 AM Alexey Dobriyan wrote: > > > > Tested? :^) I had P4 maybe ~15(?) years ago. > > Did you EVEN test it on what you have today? > > Do you have any numbers at all, in other words? > >

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 10:22 AM Alexey Dobriyan wrote: > > Tested? :^) I had P4 maybe ~15(?) years ago. Did you EVEN test it on what you have today? Do you have any numbers at all, in other words? Micro-optimizations need numbers. Otherwise they aren't micro-optimizations, they are just

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 10:22 AM Alexey Dobriyan wrote: > > Tested? :^) I had P4 maybe ~15(?) years ago. Did you EVEN test it on what you have today? Do you have any numbers at all, in other words? Micro-optimizations need numbers. Otherwise they aren't micro-optimizations, they are just

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Alexey Dobriyan
On Tue, Jun 05, 2018 at 05:05:14PM +0200, Ingo Molnar wrote: > > * Linus Torvalds wrote: > > > On Mon, Jun 4, 2018 at 5:21 AM Ingo Molnar wrote: > > > > > > - __clear_user() micro-optimization (Alexey Dobriyan) > > > > Was this actually tested? > > I'm not sure - Alexey? > > > I think one

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Alexey Dobriyan
On Tue, Jun 05, 2018 at 05:05:14PM +0200, Ingo Molnar wrote: > > * Linus Torvalds wrote: > > > On Mon, Jun 4, 2018 at 5:21 AM Ingo Molnar wrote: > > > > > > - __clear_user() micro-optimization (Alexey Dobriyan) > > > > Was this actually tested? > > I'm not sure - Alexey? > > > I think one

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 8:05 AM Ingo Molnar wrote: > > Ok, fair point and agreed - if Alexey sends some measurements to back the > change > I'll keep this, otherwise queue up a revert. I don't think it needs to be reverted, it's not like it's likely to hurt on any modern CPU's. The issues I

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Linus Torvalds
On Tue, Jun 5, 2018 at 8:05 AM Ingo Molnar wrote: > > Ok, fair point and agreed - if Alexey sends some measurements to back the > change > I'll keep this, otherwise queue up a revert. I don't think it needs to be reverted, it's not like it's likely to hurt on any modern CPU's. The issues I

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Ingo Molnar
* Linus Torvalds wrote: > On Mon, Jun 4, 2018 at 5:21 AM Ingo Molnar wrote: > > > > - __clear_user() micro-optimization (Alexey Dobriyan) > > Was this actually tested? I'm not sure - Alexey? > I think one reason people avoided the constant was that on some > microarchitecture it ended up

Re: x86/asm: __clear_user() micro-optimization (was: "Re: [GIT PULL] x86/asm changes for v4.18")

2018-06-05 Thread Ingo Molnar
* Linus Torvalds wrote: > On Mon, Jun 4, 2018 at 5:21 AM Ingo Molnar wrote: > > > > - __clear_user() micro-optimization (Alexey Dobriyan) > > Was this actually tested? I'm not sure - Alexey? > I think one reason people avoided the constant was that on some > microarchitecture it ended up

Re: [GIT PULL] x86/asm changes for v4.18

2018-06-04 Thread Linus Torvalds
On Mon, Jun 4, 2018 at 5:21 AM Ingo Molnar wrote: > > - __clear_user() micro-optimization (Alexey Dobriyan) Was this actually tested? I think one reason people avoided the constant was that on some microarchitecture it ended up being a separate uop just for the constant generation, because it

Re: [GIT PULL] x86/asm changes for v4.18

2018-06-04 Thread Linus Torvalds
On Mon, Jun 4, 2018 at 5:21 AM Ingo Molnar wrote: > > - __clear_user() micro-optimization (Alexey Dobriyan) Was this actually tested? I think one reason people avoided the constant was that on some microarchitecture it ended up being a separate uop just for the constant generation, because it

[GIT PULL] x86/asm changes for v4.18

2018-06-04 Thread Ingo Molnar
Linus, Please pull the latest x86-asm-for-linus git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-asm-for-linus # HEAD: 6469a0ee0a06b2ea1f5afbb1d5a3feed017d4c7a x86/io: Define readq()/writeq() to use 64-bit type Two smaller changes: - better support

[GIT PULL] x86/asm changes for v4.18

2018-06-04 Thread Ingo Molnar
Linus, Please pull the latest x86-asm-for-linus git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-asm-for-linus # HEAD: 6469a0ee0a06b2ea1f5afbb1d5a3feed017d4c7a x86/io: Define readq()/writeq() to use 64-bit type Two smaller changes: - better support