>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 MaN‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^?)Þº{.n?+‰·¥Š{±‘êçzX§¶›¡Ü¨}©ž²Æ z?&j:+v‰¨?«‘êçzZ+€?+zf£¢·hšˆ§~†­†Ûi?ûàz?®w¥¢??™¨è­?&?)ߢf”ù^jÇ«y§m…á@A«a¶Ú? >0¶ìh?å’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 MaN‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^?)Þº{.n?+‰·¥Š{±‘êçzX§¶›¡Ü¨}©ž²Æ z?&j:+v‰¨?«‘êçzZ+€?+zf£¢·hšˆ§~†­†Ûi?ûàz?®w¥¢??™¨è­?&?)ߢf”ù^jÇ«y§m…á@A«a¶Ú? >0¶ìh?å’i > >