Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1239724
| From | Dave Hansen <dave.hansen@linux.intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal |
| Date | 2015-10-05 18:30 +0200 |
| Message-ID | <qggOd-4bm-9@gated-at.bofh.it> (permalink) |
| References | <qgfS9-2Pr-9@gated-at.bofh.it> <qgglc-3nE-19@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 10/05/2015 08:58 AM, Linus Torvalds wrote: ... > Dave, mind sharing the micro-benchmark or perhaps even just a kernel > profile of it? How is that "iov_iter_fault_in_readable()" so > noticeable? It really shouldn't be a big deal. The micro was just plugging this test: https://www.sr71.net/~dave/intel/write1byte.c In to will-it-scale: https://github.com/antonblanchard/will-it-scale iov_iter_fault_in_readable() shows up as the third-most expensive kernel function in a profile: > 7.45% write1byte_proc [kernel.kallsyms] [k] copy_user_enhanced_fast_string > 6.51% write1byte_proc [kernel.kallsyms] [k] unlock_page > 6.04% write1byte_proc [kernel.kallsyms] [k] iov_iter_fault_in_readable > 5.23% write1byte_proc libc-2.20.so [.] __GI___libc_write > 4.86% write1byte_proc [kernel.kallsyms] [k] entry_SYSCALL_64 > 4.48% write1byte_proc [kernel.kallsyms] [k] iov_iter_copy_from_user_atomic > 3.94% write1byte_proc [kernel.kallsyms] [k] generic_perform_write > 3.74% write1byte_proc [kernel.kallsyms] [k] mutex_lock > 3.59% write1byte_proc [kernel.kallsyms] [k] entry_SYSCALL_64_after_swapgs > 3.55% write1byte_proc [kernel.kallsyms] [k] find_get_entry > 3.53% write1byte_proc [kernel.kallsyms] [k] vfs_write > 3.17% write1byte_proc [kernel.kallsyms] [k] find_lock_entry > 3.17% write1byte_proc [kernel.kallsyms] [k] put_page The disassembly points at the stac/clac pair being the culprits inside the function (copy/paste from 'perf top' disassebly here): ... > │ stac > 24.57 │ mov (%rcx),%sil > 15.70 │ clac > 28.77 │ test %eax,%eax > 2.15 │ mov %sil,-0x1(%rbp) > 8.93 │ ↓ jne 66 > 2.31 │ movslq %edx,%rdx One thing I've been noticing on Skylake is that barriers (implicit and explicit) are showing up more in profiles. What we're seeing here probably isn't actually stac/clac overhead, but the cost of finishing some other operations that are outstanding before we can proceed through here. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Theodore Ts'o <tytso@mit.edu> - 2015-10-05 17:30 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-05 18:00 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Dave Hansen <dave.hansen@linux.intel.com> - 2015-10-05 18:30 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-05 22:30 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Dave Hansen <dave.hansen@linux.intel.com> - 2015-10-05 22:50 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-05 23:20 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-06 00:00 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Dave Hansen <dave.hansen@linux.intel.com> - 2015-10-06 01:40 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-06 11:10 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal "H. Peter Anvin" <hpa@zytor.com> - 2015-10-05 22:50 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Ingo Molnar <mingo@kernel.org> - 2015-10-06 10:00 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-06 11:20 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Ingo Molnar <mingo@kernel.org> - 2015-10-06 11:30 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-06 15:30 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Ingo Molnar <mingo@kernel.org> - 2015-10-06 15:50 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Dave Hansen <dave.hansen@linux.intel.com> - 2015-10-05 18:10 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Dave Hansen <dave.hansen@intel.com> - 2015-10-05 20:10 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Theodore Ts'o <tytso@mit.edu> - 2015-10-07 05:40 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Linus Torvalds <torvalds@linux-foundation.org> - 2015-10-07 09:40 +0200
Re: [REGRESSION] 998ef75ddb and aio-dio-invalidate-failure w/ data=journal Theodore Ts'o <tytso@mit.edu> - 2015-10-07 17:50 +0200
[PATCH] ext4: use private version of page_zero_new_buffers() for data=journal mode Theodore Ts'o <tytso@mit.edu> - 2015-10-09 06:10 +0200
Re: [PATCH] ext4: use private version of page_zero_new_buffers() for data=journal mode "Leonid V. Fedorenchik" <Leonid.Fedorenchik@paragon-software.com> - 2015-10-13 08:40 +0200
Re: [PATCH] ext4: use private version of page_zero_new_buffers() for data=journal mode Jan Kara <jack@suse.cz> - 2015-10-15 13:20 +0200
csiph-web