https://bugzilla.kernel.org/show_bug.cgi?id=114591
--- Comment #29 from Michael Walton <mike.walton33@xxxxxxxxx> ---
Well....
I wanted to take Eric's advice first just because I consider Eric to be the
authority here. (BTW, Eric I don't understand why you are being almost abusive
toward Nick who hasn't demonstrated one iota of mean-spiritedness, but perhaps
there is back-story that I am not familiar with...)
So not being a kernel hacker and not really being familiar with modern usage of
C, I inserted the following code:
#pragma GCC push_options
#pragma GCC optimize ("O0")
void
xfs_buf_free1(xfs_buf_t *bp)
{
xfs_buf_free(bp);
}
void
xfs_buf_free2(xfs_buf_t *bp)
{
xfs_buf_free(bp);
}
void
xfs_buf_free3(xfs_buf_t *bp)
{
xfs_buf_free(bp);
}
#pragma GCC pop_options
That way I could call specific ones from xfs_buf_get_map and hopefully see
which one got called without the functions getting optimised out.
Well this is what happened:
I couldn't produce the bug any more...I've done a total of 19 xfsdumps of the
root file system in a row now..
This leads me to speculate that underlying this all may be some sort of
compiler optimimization problem affecting xfs_buf.c (at least for code running
on VM processors).Anyway this is all just speculation by an idiot. I don't know
what's going on but if things work, they work so I'll consider this a
provisional fix until I know better.
--
You are receiving this mail because:
You are the assignee for the bug.
|