From: Angelo Dureghello <angelo.dureghello@nomovok.com>
To: xfs@oss.sgi.com
Subject: Re: xfstests, bad generic tests 009 and 308
Date: Sun, 27 Sep 2015 02:40:24 +0200 [thread overview]
Message-ID: <56073AF8.4060801@nomovok.com> (raw)
In-Reply-To: <5603B240.4030609@univ-nantes.fr>
[-- Attachment #1: Type: text/plain, Size: 2414 bytes --]
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@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
--
Best regards,
Angelo Dureghello
[-- Attachment #2: ftrace_rm_308.txt --]
[-- Type: text/plain, Size: 15971 bytes --]
# 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() {
[-- Attachment #3: Type: text/plain, Size: 121 bytes --]
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2015-09-27 0:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-18 16:38 xfstests, bad generic tests 009 and 308 Angelo Dureghello
2015-09-18 22:44 ` Dave Chinner
2015-09-21 11:13 ` Angelo Dureghello
2015-09-21 11:18 ` Angelo Dureghello
2015-09-21 22:52 ` Dave Chinner
2015-09-22 12:41 ` Angelo Dureghello
2015-09-22 21:27 ` Dave Chinner
2015-09-23 9:15 ` Angelo Dureghello
2015-09-23 22:25 ` Dave Chinner
2015-09-23 10:43 ` Yann Dupont - Veille Techno
2015-09-23 22:04 ` Dave Chinner
2015-09-24 8:20 ` Yann Dupont - Veille Techno
2015-09-27 0:40 ` Angelo Dureghello [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-09-18 16:16 angelo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56073AF8.4060801@nomovok.com \
--to=angelo.dureghello@nomovok.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox