>Hi Jianpeng, > >On 07/26/2013 03:08 PM, majianpeng wrote: > >> Hi all, >> I used splice and found a prolem(at least i call). >> The demo is: >> A:splice(regularfileA--->pipe); >> B:splice(pipe--->regularfileB) >> Before do B, we modify the data of regA which now in pipe. The data to regularfileB willbe change. >> If we used the buff >> A:read(regA, buff); >> B: write(buff, regB); >> After A, the contend of regA can't effect the buff. >> Review the code of splice,I know the pipe share the pagecache of regA. > >Right. And also this is the splice's original design intention, using share mmap rather >than copy_to_user/copy_from_user in order to achieve zero-copy. > If it use some method like COW, i think it can avoid this problem. >Thanks, >Gu > >> Maybe this is not a problem or am i missing something? > >> >> Thanks! >> Jianpeng MaNrybXǧv^?)޺{.n?+{zXܨ}Ơz?&j:+v?zZ+?+zfh~i?z?w???&?)ߢf^jǫym@Aa? >0h?i > > Thanks! Jianpeng Ma >Hi Jianpeng, > >On 07/26/2013 03:08 PM, majianpeng wrote: > >> Hi all, >> I used splice and found a prolem(at least i call). >> The demo is: >> A:splice(regularfileA--->pipe); >> B:splice(pipe--->regularfileB) >> Before do B, we modify the data of regA which now in pipe. The data to regularfileB willbe change. >> If we used the buff >> A:read(regA, buff); >> B: write(buff, regB); >> After A, the contend of regA can't effect the buff. >> Review the code of splice,I know the pipe share the pagecache of regA. > >Right. And also this is the splice's original design intention, using share mmap rather >than copy_to_user/copy_from_user in order to achieve zero-copy. > >Thanks, >Gu > >> Maybe this is not a problem or am i missing something? > >> >> Thanks! >> Jianpeng MaNrybXǧv^?)޺{.n?+{zXܨ}Ơz?&j:+v?zZ+?+zfh~i?z?w???&?)ߢf^jǫym@Aa? >0h?i > >{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I