[PATCH 0/4] Replace lseek..write/read to pwrite/pread

HATAYAMA Daisuke d.hatayama at jp.fujitsu.com
Wed Apr 30 05:19:55 PDT 2014


From: Petr Tesarik <ptesarik at suse.cz>
Subject: Re: [PATCH 0/4] Replace lseek..write/read to pwrite/pread
Date: Wed, 30 Apr 2014 13:53:04 +0200

> On Wed, 30 Apr 2014 20:41:38 +0900 (JST)
> HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:
> 
>> From: Wang Nan <wangnan0 at huawei.com>
>> Subject: [PATCH 0/4] Replace lseek..write/read to pwrite/pread
>> Date: Sat, 26 Apr 2014 12:07:05 +0800
>> 
>> > In original code there are many operations read from /write to specific
>> > positions of a file. This series of patches replace such patterns to
>> > pread/pwrite calls, reduces more than 100 lines of code.
>> > 
>> 
>> I'm now writing pthread support patch set and it will naturally
>> include pread/pwrite like this patch set.
>> 
>> It sounds to me that using pread/pwrite only to reduce lseek code is
>> weak in motivation. Is there another visible merit? For example, any
>> kind of performance improvement. I guess it's small even if exists
>> compared to I/O.
> 
> There is no user-visible benefit just from applying the patch, that's
> right.
> 
> The main benefit is that these pread/pwrite operations are atomic and do
> not move the file offset, so all subprocesses (or threads) can share
> the same file descriptor. This allows to remove reopen_dump_memory(),
> for example.
> 
> Anyway, is improving code readability really so weak argument?
> 
> Petr T

In the current code, parallelism occurs only when --split option is
specified. It seems to me that reopen_dump_memory() is enough. So, it
appears to me that this patch set just changes lseek(); read(); or
lseek(); write() lines to pread() or pwrite(), so I don't see so big
difference...

--
Thanks.
HATAYAMA, Daisuke




More information about the kexec mailing list