public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
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

  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