From: Dave Chinner <david@fromorbit.com>
To: Zorro Lang <zlang@redhat.com>
Cc: Amir Goldstein <amir73il@gmail.com>, fstests <fstests@vger.kernel.org>
Subject: Re: [PATCH v3 2/2] xfs/068: new fsstress operation breaks xfsrestore output
Date: Wed, 23 Jan 2019 15:12:46 +1100 [thread overview]
Message-ID: <20190123041246.GO6173@dastard> (raw)
In-Reply-To: <20190123034406.GF2255@dhcp-12-149.nay.redhat.com>
On Wed, Jan 23, 2019 at 11:44:06AM +0800, Zorro Lang wrote:
> On Wed, Jan 23, 2019 at 09:22:16AM +1100, Dave Chinner wrote:
> > On Tue, Jan 22, 2019 at 12:58:54PM +0800, Zorro Lang wrote:
> > > > This is not the case with the newly added SPLICE operation and
> > > > updating the golden output rather than blacklisting the new operation
> > > > is what was decided and done two times in recent history (also patches
> > > > by Zorro).
> > >
> > > Yes, I saw that FSSTRESS_AVOID in common/dump. But I thought (if I'm wrong
> > > please feel free to correct me):
> > > 1) dedupe/clone/copyrange might not be compiled in fsstress, they depend
> > > on "#ifndef ... #endif". That will make different xfsdump/restore output
> > > when a fs with or without these operations. Then there's not a fixed 068.out.
> > > So they must be avoided.
> >
> > > 2) splice syscall is an old common function, which is first appeared in Linux
> > > 2.6.17. So I think it's safe to be added.
> >
> > What makes you think it worked in 2.6.17? I mean:
> >
> > commit 0ff28d9f4674d781e492bcff6f32f0fe48cf0fed
> > Author: Christophe Leroy <christophe.leroy@c-s.fr>
> > Date: Wed May 6 17:26:47 2015 +0200
> >
> > splice: sendfile() at once fails for big files
> >
> > Using sendfile with below small program to get MD5 sums of some files,
> > it appear that big files (over 64kbytes with 4k pages system) get a
> > wrong MD5 sum while small files get the correct sum.
> > This program uses sendfile() to send a file to an AF_ALG socket
> > for hashing.
> > .....
> >
> > i.e. using sendfile to copy large files resulted in corrupt copies
> > up until 2015.
> >
> > Basically, sendfile is a legacy interface that has spend a very
> > large amount of it's time broken, full of deadlocks (i.e. unusable)
> > and not used by anyone. It's not something we really want to enable
> > in xfstests because it will cause all sorts of failures on older
> > distros...
>
> Sorry I didn't learn about that. I just checked "man 2 splice", it said:
> "The splice() system call first appeared in Linux 2.6.17; library support was
> added to glibc in version 2.5."
splice() != sendfile().
sendfile has been around since the 2.2 days, originally implemented
to allow web servers to do zero-copy of file data to the network.
The ability to do file-to-file copies was in the original 2.2/2.4
implementation, but it was removed in the 2.5 series. Back around
2.6.32 it got converted to use the splice(2) kernel infrastructure
and started supporting files as the destination again, and that's
where it all went off the rails....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2019-01-23 4:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-19 2:42 [PATCH v3 1/2] fsstress: add splice support Zorro Lang
2019-01-19 2:42 ` [PATCH v3 2/2] xfs/068: new fsstress operation breaks xfsrestore output Zorro Lang
2019-01-21 22:44 ` Dave Chinner
2019-01-22 3:33 ` Amir Goldstein
2019-01-22 4:58 ` Zorro Lang
2019-01-22 22:22 ` Dave Chinner
2019-01-23 3:44 ` Zorro Lang
2019-01-23 4:12 ` Dave Chinner [this message]
2019-01-23 7:35 ` Amir Goldstein
2019-01-23 8:41 ` Zorro Lang
2019-01-23 8:59 ` Amir Goldstein
2019-01-23 22:06 ` Dave Chinner
2019-01-24 9:28 ` Amir Goldstein
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=20190123041246.GO6173@dastard \
--to=david@fromorbit.com \
--cc=amir73il@gmail.com \
--cc=fstests@vger.kernel.org \
--cc=zlang@redhat.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