Thread (11 messages) 11 messages, 7 authors, 2017-09-18

Re: [linux-next][XFS][trinity] WARNING: CPU: 32 PID: 31369 at fs/iomap.c:993

From: Darrick J. Wong <hidden>
Date: 2017-09-18 22:04:29
Also in: linux-next, linuxppc-dev, lkml

On Mon, Sep 18, 2017 at 05:00:58PM -0500, Eric Sandeen wrote:
On 9/18/17 4:31 PM, Dave Chinner wrote:
quoted
On Mon, Sep 18, 2017 at 09:28:55AM -0600, Jens Axboe wrote:
quoted
On 09/18/2017 09:27 AM, Christoph Hellwig wrote:
quoted
On Mon, Sep 18, 2017 at 08:26:05PM +0530, Abdul Haleem wrote:
quoted
Hi,

A warning is triggered from:

file fs/iomap.c in function iomap_dio_rw

    if (ret)
        goto out_free_dio;

    ret = invalidate_inode_pages2_range(mapping,
            start >> PAGE_SHIFT, end >> PAGE_SHIFT);
quoted
quoted
 WARN_ON_ONCE(ret);
    ret = 0;

    inode_dio_begin(inode);
This is expected and an indication of a problematic workload - which
may be triggered by a fuzzer.
If it's expected, why don't we kill the WARN_ON_ONCE()? I get it all
the time running xfstests as well.
Because when a user reports a data corruption, the only evidence we
have that they are running an app that does something stupid is this
warning in their syslogs.  Tracepoints are not useful for replacing
warnings about data corruption vectors being triggered.
Is the full WARN_ON spew really helpful to us, though?  Certainly
the user has no idea what it means, and will come away terrified
but none the wiser.

Would a more informative printk_once() still give us the evidence
without the ZOMG I THINK I OOPSED that a WARN_ON produces?  Or do we 
want/need the backtrace?
Maybe we could state a little more directly what's going on:

if (err)
	printk_once(KERN_INFO "Urk, collision detected between direct IO and page cache, YHL. HAND.\n"); ?

8-)

--D
-Eric
quoted
It needs to be on by default, bu tI'm sure we can wrap it with
something like an xfs_alert_tag() type of construct so the tag can
be set in /proc/fs/xfs/panic_mask to suppress it if testers so
desire.

Cheers,

Dave.
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help