Buildresult: linus/a500_defconfig/parisc64-gcc8 built on Mar 5 2019, 16:10
kisskb
Revisions
|
Branches
|
Compilers
|
Configs
|
Build Results
|
Build Failures
|
Status:
OK
Date/Time:
Mar 5 2019, 16:10
Duration:
0:01:46.687249
Builder:
ka1
Revision:
fs: Make splice() and tee() take into account O_NONBLOCK flag on pipes (
ee5e001196d1345b8fee25925ff5f1d67936081e)
Target:
linus/a500_defconfig/parisc64-gcc8
Branch:
linus
Compiler:
parisc64-gcc8
(hppa64-linux-gcc (GCC) 8.1.0 / GNU ld (GNU Binutils) 2.30)
Config:
a500_defconfig
(
download
)
Log:
Download original
Possible warnings (2)
<stdin>:1336:2: warning: #warning syscall rseq not implemented [-Wcpp] arch/parisc/include/asm/cmpxchg.h:48:3: warning: value computed is not used [-Wunused-value]
Full Log
# git rev-parse -q --verify ee5e001196d1345b8fee25925ff5f1d67936081e^{commit} ee5e001196d1345b8fee25925ff5f1d67936081e already have revision, skipping fetch # git checkout -q -f -B kisskb ee5e001196d1345b8fee25925ff5f1d67936081e # git clean -qxdf # < git log -1 # commit ee5e001196d1345b8fee25925ff5f1d67936081e # Author: Slavomir Kaslev <kaslevs@vmware.com> # Date: Thu Feb 7 17:45:19 2019 +0200 # # fs: Make splice() and tee() take into account O_NONBLOCK flag on pipes # # The current implementation of splice() and tee() ignores O_NONBLOCK set # on pipe file descriptors and checks only the SPLICE_F_NONBLOCK flag for # blocking on pipe arguments. This is inconsistent since splice()-ing # from/to non-pipe file descriptors does take O_NONBLOCK into # consideration. # # Fix this by promoting O_NONBLOCK, when set on a pipe, to # SPLICE_F_NONBLOCK. # # Some context for how the current implementation of splice() leads to # inconsistent behavior. In the ongoing work[1] to add VM tracing # capability to trace-cmd we stream tracing data over named FIFOs or # vsockets from guests back to the host. # # When we receive SIGINT from user to stop tracing, we set O_NONBLOCK on # the input file descriptor and set SPLICE_F_NONBLOCK for the next call to # splice(). If splice() was blocked waiting on data from the input FIFO, # after SIGINT splice() restarts with the same arguments (no # SPLICE_F_NONBLOCK) and blocks again instead of returning -EAGAIN when no # data is available. # # This differs from the splice() behavior when reading from a vsocket or # when we're doing a traditional read()/write() loop (trace-cmd's # --nosplice argument). # # With this patch applied we get the same behavior in all situations after # setting O_NONBLOCK which also matches the behavior of doing a # read()/write() loop instead of splice(). # # This change does have potential of breaking users who don't expect # EAGAIN from splice() when SPLICE_F_NONBLOCK is not set. OTOH programs # that set O_NONBLOCK and don't anticipate EAGAIN are arguably buggy[2]. # # [1] https://github.com/skaslev/trace-cmd/tree/vsock # [2] https://github.com/torvalds/linux/blob/d47e3da1759230e394096fd742aad423c291ba48/fs/read_write.c#L1425 # # Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com> # Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> # Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/hppa64-linux/bin/hppa64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/hppa64-linux/bin/hppa64-linux-ld --version # < git log --format=%s --max-count=1 ee5e001196d1345b8fee25925ff5f1d67936081e # < make -s -j 8 ARCH=parisc O=/kisskb/build/linus_a500_defconfig_parisc64 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/hppa64-linux/bin/hppa64-linux- a500_defconfig # make -s -j 8 ARCH=parisc O=/kisskb/build/linus_a500_defconfig_parisc64 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/hppa64-linux/bin/hppa64-linux- <stdin>:1336:2: warning: #warning syscall rseq not implemented [-Wcpp] In file included from /kisskb/src/arch/parisc/include/asm/atomic.h:10, from /kisskb/src/include/linux/atomic.h:7, from /kisskb/src/arch/parisc/include/asm/bitops.h:13, from /kisskb/src/include/linux/bitops.h:19, from /kisskb/src/include/linux/kernel.h:11, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/module.h:9, from /kisskb/src/drivers/scsi/scsi_debug.c:23: /kisskb/src/drivers/scsi/scsi_debug.c: In function 'resp_start_stop': /kisskb/src/arch/parisc/include/asm/cmpxchg.h:48:3: warning: value computed is not used [-Wunused-value] ((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), sizeof(*(ptr)))) /kisskb/src/arch/parisc/include/asm/atomic.h:78:30: note: in expansion of macro 'xchg' #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) ^~~~ /kisskb/src/drivers/scsi/scsi_debug.c:1624:2: note: in expansion of macro 'atomic_xchg' atomic_xchg(&devip->stopped, stop); ^~~~~~~~~~~ Completed OK # rm -rf /kisskb/build/linus_a500_defconfig_parisc64 # Build took: 0:01:46.687249
© Michael Ellerman 2006-2018.