Hi Dave and all,
The 99% cpu loop on tests/generic/308 (on "rm") happens also on
i686 (32bit), kernel 4.2.0 (gcc 4.9.1)
So, we can exclude it is a cross-compilation issue, or an ARM specific
issue.
It should just be a 32-bit rch wide related issue.
I hardly found out the reason, at my opinion it doesn't have to be
fixed in xfs. I proposed this patch.
http://marc.info/?l=linux-kernel&m=144330858305518&w=2
Let's see if the list reply.
Couldn't proceed still on the other "all hole" errors, will look into
that. As far as i know, tests as 009 seems to give same errors to
non arm users too.
Will investigate further.
Best regards,
Angelo Dureghello
On 24/09/2015 10:20, Yann Dupont - Veille Techno wrote:
Le 24/09/2015 00:04, Dave Chinner a écrit :
On Wed, Sep 23, 2015 at 12:43:21PM +0200, Yann Dupont - Veille Techno
wrote:
Le 22/09/2015 00:52, Dave Chinner a écrit :
As it is, I highly recommend that you try a current 4.3 kernel, as
there are several code fixes in the XFS kernel code that work
around compiler issues we know about. AFAIA, the do_div() asm bug
that trips recent gcc optimisations isn't in the upstream kernel
yet, but that can be worked around by setting
CONFIG_CC_OPTIMIZE_FOR_SIZE=y in your build.
Hi dave,
I can confirm that CONFIG_CC_OPTIMIZE_FOR_SIZE=y is (was ?) the only
way for me to have reliable XFS kernel code on different arm
platforms (Marvell kirkwood, Allwinner A20, Amlogic S805), no matter
what recent gcc version I've been using.
I must admit I was cross-compiling from X86-64 too, but I think (not
sure) that it was also the case with native gcc.
I must also admit that I didn't tried since some months, because
CONFIG_CC_OPTIMIZE_FOR_SIZE=y was the silver bullet for arm xfs
kernel crashes. This crash was difficult to understand because it
occurs quite randomly (I.e it can take several hours to trigger)
If there's a patch floating around for gcc (or kernel), I'm
interested to test.
See this subthread from august:
http://oss.sgi.com/archives/xfs/2015-08/msg00234.html
Oh, missed this thread.
Thanks a lot for the pointer, will try this patch !
Cheers,
_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs
--
Best regards,
Angelo Dureghello
# cat /sys/kernel/debug/tracing/trace | head -1000
# tracer: function_graph
#
# CPU DURATION FUNCTION CALLS
# | | | | | | |
1) 0.814 us | xfs_file_open();
0) | xfs_xattr_get() {
0) 0.650 us | xfs_attr_get();
0) 5.856 us | }
0) | xfs_file_read_iter() {
0) 1.301 us | xfs_ilock();
0) 1.139 us | xfs_iunlock();
0) + 19.032 us | }
0) | xfs_file_read_iter() {
0) 0.814 us | xfs_ilock();
0) 0.813 us | xfs_iunlock();
0) + 15.942 us | }
0) | xfs_file_read_iter() {
0) 0.488 us | xfs_ilock();
0) 0.813 us | xfs_iunlock();
0) + 12.363 us | }
0) | xfs_vn_follow_link() {
0) | xfs_readlink() {
0) 0.814 us | xfs_ilock();
0) 0.651 us | xfs_iunlock();
0) 9.109 us | }
0) + 14.315 us | }
0) 0.488 us | xfs_file_open();
0) | xfs_file_read_iter() {
0) 0.813 us | xfs_ilock();
0) 0.814 us | xfs_iunlock();
0) + 13.501 us | }
0) | xfs_file_read_iter() {
0) 0.651 us | xfs_ilock();
0) 0.651 us | xfs_iunlock();
0) + 12.200 us | }
0) 0.976 us | xfs_file_mmap();
0) 0.651 us | xfs_file_mmap();
0) | xfs_filemap_fault() {
0) 0.813 us | xfs_ilock();
0) 0.813 us | xfs_iunlock();
0) + 11.550 us | }
0) 0.813 us | xfs_file_mmap();
0) 0.813 us | xfs_file_mmap();
0) | xfs_filemap_fault() {
0) 0.813 us | xfs_ilock();
0) 0.651 us | xfs_iunlock();
0) + 10.410 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.650 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.976 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.488 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.326 us | xfs_bmbt_get_startoff();
0) 0.650 us | xfs_bmbt_get_blockcount();
0) + 76.291 us | }
0) 0.488 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.488 us | __xfs_bmbt_get_all();
0) 4.067 us | }
0) + 92.070 us | }
0) + 95.648 us | }
0) ! 104.270 us | }
0) 0.650 us | xfs_iunlock();
0) ! 117.608 us | }
0) ! 128.832 us | }
0) ! 132.899 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.651 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.976 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.325 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.325 us | xfs_bmbt_get_startoff();
0) 0.326 us | xfs_bmbt_get_blockcount();
0) 7.808 us | }
0) 0.488 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.488 us | __xfs_bmbt_get_all();
0) 4.067 us | }
0) + 22.286 us | }
0) + 26.027 us | }
0) + 33.347 us | }
0) 0.651 us | xfs_iunlock();
0) + 49.613 us | }
0) + 60.186 us | }
0) + 64.090 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.651 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.650 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.326 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.325 us | xfs_bmbt_get_startoff();
0) 0.326 us | xfs_bmbt_get_blockcount();
0) 7.645 us | }
0) 0.325 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.325 us | __xfs_bmbt_get_all();
0) 4.067 us | }
0) + 21.960 us | }
0) + 25.376 us | }
0) + 32.696 us | }
0) 0.650 us | xfs_iunlock();
0) + 44.245 us | }
0) + 54.005 us | }
0) + 57.747 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.488 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.813 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.325 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.326 us | xfs_bmbt_get_startoff();
0) 0.325 us | xfs_bmbt_get_blockcount();
0) 7.645 us | }
0) 0.488 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.326 us | __xfs_bmbt_get_all();
0) 4.229 us | }
0) + 22.285 us | }
0) + 25.701 us | }
0) + 32.696 us | }
0) 0.651 us | xfs_iunlock();
0) + 44.733 us | }
0) + 54.330 us | }
0) + 57.909 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.651 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.650 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.162 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.325 us | xfs_bmbt_get_startoff();
0) 0.325 us | xfs_bmbt_get_blockcount();
0) 9.110 us | }
0) 0.326 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.325 us | __xfs_bmbt_get_all();
0) 4.067 us | }
0) + 23.750 us | }
0) + 27.328 us | }
0) + 34.648 us | }
0) 0.651 us | xfs_iunlock();
0) + 46.522 us | }
0) + 56.283 us | }
0) + 59.861 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.488 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.814 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.325 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.326 us | xfs_bmbt_get_startoff();
0) 0.488 us | xfs_bmbt_get_blockcount();
0) 7.808 us | }
0) 0.325 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.488 us | __xfs_bmbt_get_all();
0) 3.904 us | }
0) + 21.960 us | }
0) + 25.376 us | }
0) + 32.696 us | }
0) 0.651 us | xfs_iunlock();
0) + 44.896 us | }
0) + 54.656 us | }
0) + 58.072 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.488 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.651 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.325 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.163 us | xfs_bmbt_get_startoff();
0) 0.325 us | xfs_bmbt_get_blockcount();
0) 7.808 us | }
0) 0.325 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.325 us | __xfs_bmbt_get_all();
0) 3.742 us | }
0) + 21.960 us | }
0) + 25.539 us | }
0) + 32.696 us | }
0) 0.651 us | xfs_iunlock();
0) + 44.733 us | }
0) + 54.493 us | }
0) + 57.909 us | }
0) 0.814 us | xfs_file_open();
0) 0.976 us | xfs_vn_getattr();
0) 1.139 us | xfs_file_mmap();
0) | xfs_vn_follow_link() {
0) | xfs_readlink() {
0) 0.651 us | xfs_ilock();
0) 0.650 us | xfs_iunlock();
0) 9.435 us | }
0) + 14.477 us | }
0) 0.651 us | xfs_file_open();
0) | xfs_file_read_iter() {
0) 0.814 us | xfs_ilock();
0) 0.813 us | xfs_iunlock();
0) + 17.731 us | }
0) 1.138 us | xfs_file_llseek();
0) | xfs_file_read_iter() {
0) 0.650 us | xfs_ilock();
0) 0.814 us | xfs_iunlock();
0) + 18.707 us | }
0) 0.488 us | xfs_file_llseek();
0) | xfs_file_read_iter() {
0) 0.651 us | xfs_ilock();
0) 0.650 us | xfs_iunlock();
0) + 12.200 us | }
0) 0.651 us | xfs_vn_getattr();
0) 0.651 us | xfs_file_mmap();
0) 0.976 us | xfs_file_mmap();
0) | xfs_filemap_fault() {
0) 0.813 us | xfs_ilock();
0) 0.650 us | xfs_iunlock();
0) + 10.736 us | }
0) | xfs_file_release() {
0) | xfs_release() {
0) 0.488 us | xfs_can_free_eofblocks();
0) | xfs_free_eofblocks() {
0) 0.813 us | xfs_ilock();
0) | xfs_bmapi_read() {
0) 0.326 us | xfs_isilocked();
0) | xfs_bmap_search_extents() {
0) | xfs_bmap_search_multi_extents() {
0) | xfs_iext_bno_to_ext() {
0) 0.326 us | xfs_bmbt_get_startoff();
0) 0.325 us | xfs_bmbt_get_blockcount();
0) 8.133 us | }
0) 0.325 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.326 us | __xfs_bmbt_get_all();
0) 3.904 us | }
0) + 22.285 us | }
0) + 25.864 us | }
0) + 33.672 us | }
0) 0.650 us | xfs_iunlock();
0) + 46.523 us | }
0) + 57.421 us | }
0) + 61.488 us | }
0) 1.138 us | xfs_vn_getattr();
0) | xfs_vn_unlink() {
0) | xfs_remove() {
0) | xfs_trans_alloc() {
0) 1.464 us | _xfs_trans_alloc();
0) 6.669 us | }
0) | xfs_trans_reserve() {
0) 1.464 us | xfs_mod_fdblocks();
0) | xfs_log_reserve() {
0) 0.650 us | xfs_log_calc_unit_res();
0) + 13.501 us | }
0) + 23.262 us | }
0) 0.976 us | xfs_ilock();
0) | xfs_lock_two_inodes() {
0) 0.651 us | xfs_ilock();
0) 0.976 us | xfs_ilock_nowait();
0) 9.110 us | }
0) 0.326 us | xfs_isilocked();
0) 1.464 us | xfs_trans_add_item();
0) 0.488 us | xfs_isilocked();
0) 1.301 us | xfs_trans_add_item();
0) 0.488 us | xfs_isilocked();
0) 0.163 us | xfs_isilocked();
0) | xfs_droplink() {
0) 0.325 us | xfs_isilocked();
0) 0.326 us | xfs_isilocked();
0) | xfs_iunlink() {
0) | xfs_read_agi() {
0) | xfs_buf_read_map() {
0) | xfs_buf_get_map() {
0) | _xfs_buf_find() {
0) 1.301 us | xfs_perag_get();
0) 0.651 us | xfs_perag_put();
0) 1.302 us | xfs_buf_trylock();
0) + 16.754 us | }
0) + 20.984 us | }
0) + 25.051 us | }
0) 1.301 us | xfs_trans_add_item();
0) + 34.974 us | }
0) + 40.992 us | }
0) + 54.656 us | }
0) | xfs_dir_removename() {
0) | xfs_default_hashname() {
0) 0.325 us | xfs_da_hashname();
0) 4.392 us | }
0) | xfs_dir2_sf_removename() {
0) 0.651 us | xfs_da_compname();
0) | xfs_dir2_sfe_get_ino() {
0) 0.326 us | xfs_dir2_sf_get_ino.isra.8();
0) 4.066 us | }
0) 0.488 us | xfs_dir2_sf_entsize();
0) 0.651 us | xfs_idata_realloc();
0) | xfs_dir2_sf_check.isra.6() {
0) | xfs_dir2_sf_get_parent_ino() {
0) 0.325 us | xfs_dir2_sf_get_ino.isra.8();
0) 3.904 us | }
0) 7.971 us | }
0) 0.326 us | xfs_isilocked();
0) + 36.600 us | }
0) + 53.030 us | }
0) 0.488 us | xfs_bmap_finish();
0) | xfs_trans_commit() {
0) 0.326 us | xfs_isilocked();
0) | xfs_iextents_copy() {
0) 0.488 us | xfs_isilocked();
0) 0.488 us | xfs_bmap_trace_exlist();
0) 0.325 us | xfs_iext_get_ext();
0) 0.488 us | xfs_bmbt_get_startblock();
0) | xfs_validate_extents() {
0) 0.326 us | xfs_iext_get_ext();
0) | xfs_bmbt_get_all() {
0) 0.325 us | __xfs_bmbt_get_all();
0) 3.904 us | }
0) + 11.224 us | }
0) + 30.744 us | }
0) 0.163 us | xfs_isilocked();
0) 0.488 us | xfs_next_bit();
0) 0.326 us | xfs_next_bit();
0) 0.325 us | xfs_next_bit();
0) 0.325 us | xfs_next_bit();
0) 0.488 us | xfs_buf_offset();
0) | xfs_log_done() {
0) 0.488 us | xfs_log_space_wake();
0) 1.302 us | xfs_log_ticket_put();
0) + 12.525 us | }
0) | xfs_trans_unreserve_and_mod_sb() {
0) 1.138 us | xfs_mod_fdblocks();
0) 5.043 us | }
0) | xfs_trans_free_items() {
0) 0.488 us | xfs_isilocked();
0) 1.302 us | xfs_iunlock();
0) 1.302 us | xfs_trans_free_item_desc();
0) 0.488 us | xfs_isilocked();
0) 0.651 us | xfs_iunlock();
0) 1.301 us | xfs_trans_free_item_desc();
0) 1.301 us | xfs_buf_unlock();
0) 0.814 us | xfs_buf_rele();
0) 0.976 us | xfs_trans_free_item_desc();
0) ! 135.176 us | }
0) | xfs_trans_free() {
0) 0.325 us | xfs_extent_busy_clear();
0) 5.694 us | }
0) ! 247.090 us | }
0) ! 452.702 us | }
0) ! 457.256 us | }
0) 0.488 us | xfs_fs_drop_inode();
0) | xfs_fs_evict_inode() {
_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs