Re: [exim] data-phase efficiency

Top Page
Delete this message
Reply to this message
Author: Kjetil Torgrim Homme
Date:  
To: Jeremy Harris
CC: exim-users
Subject: Re: [exim] data-phase efficiency
On Tue, 2005-05-17 at 16:58 +0100, Jeremy Harris wrote:
>     Running strace against a 4.50 delivery process I see:

>
> read(3, "LH+9sNJ1a1QaLik2kkw0v2Ff7vemK1TR"..., 8192) = 8192
> alarm(300)                              = 0
> write(6, "CY673bSDcJtW0m0mGk2k2EoTpV+6ad27"..., 8190) = 8190
> alarm(0)                                = 300
> read(3, "Ttv0rVL/a//3e6bSdJtJ\ntBdE3bxsNJ/"..., 8192) = 8192
> alarm(300)                              = 0
> write(6, "L9fx7b06sNJhpMNJtLiGztTP4hOI/vhu"..., 8190) = 8190
> alarm(0)                                = 300

>
> Could a select(or poll) for writability be used instead of
> alarm, saving one syscall/cycle?


I don't think writability guarantees that a 8 KiB block can be written
without blocking (think NFS).

I would worry more about the unaligned writes, but I think the proper
fix (though painful to implement) is to make Exim use wireformat in its
spool (ie. dot-stuffed and with CRLF intact)
--
Kjetil T.