apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dale Ghent <da...@elemental.org>
Subject Re: sendfilev() on Solaris
Date Tue, 24 Jul 2001 19:30:26 GMT
On Mon, 23 Jul 2001, Justin Erenkrantz wrote:

| Thanks for the heads-up.
|
| I just committed the relevant bits.  Please check it out and give me
| feedback if it doesn't work as expected.
|
| I'll say that the Solaris implementation is actually very nice compared
| to all of the other ones out there.  Too bad it's taken this long for
| Sun to implement this.  -- justin

I just used the latest CVS checkout, and the use of sendfilev() looks
great so far. I noticed that during the xfer, httpd used alot less CPU
time, while I got around a 130Kb/s (this was across a T1) xfer rate.

The only thing I saw amiss were the following compiler warnings:

/bin/sh /local/src/apache-dev/httpd-2.0/srclib/apr/libtool --silent
--mode=compile gcc -g -O2 -pthreads   -DHAVE_CONFIG_H -DSOLARIS2=8
-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT   -I../../include
-I../../include/arch/unix -I../../include/arch/unix  -c sendrecv.c &&
touch sendrecv.lo
sendrecv.c: In function `apr_sendfile':
sendrecv.c:784: warning: assignment makes integer from pointer without a cast
sendrecv.c:805: warning: assignment makes integer from pointer without a cast

The test machine is a Sun Ultra 2, 2x300Mhz, 1768MB RAM, Sol8 4/01 with
sendfile patches. Here's a truss of the tail-end of a 15MB file xfer:

/7:     poll(0xFE8FEF88, 1, 300000)                     = 1
/7:             fd=59 ev=POLLOUT rev=POLLOUT
/7:     sendfilev(0, 59, 0x001AE388, 1, 0xFE8FF2DC)     Err#11 EAGAIN
sfv_fd=60       sfv_flag=0x0    sfv_off=15769544        sfv_len=323640
/7:     poll(0xFE8FEF88, 1, 300000)                     = 1
/7:             fd=59 ev=POLLOUT rev=POLLOUT
/7:     sendfilev(0, 59, 0x001AE398, 1, 0xFE8FF2DC)     Err#11 EAGAIN
sfv_fd=60       sfv_flag=0x0    sfv_off=15832728        sfv_len=260456
/7:     poll(0xFE8FEF88, 1, 300000)                     = 1
/7:             fd=59 ev=POLLOUT rev=POLLOUT
/7:     sendfilev(0, 59, 0x001AE3A8, 1, 0xFE8FF2DC)     Err#11 EAGAIN
sfv_fd=60       sfv_flag=0x0    sfv_off=15895912        sfv_len=197272
/7:     poll(0xFE8FEF88, 1, 300000)                     = 1
/7:             fd=59 ev=POLLOUT rev=POLLOUT
/7:     sendfilev(0, 59, 0x001AE3B8, 1, 0xFE8FF2DC)     Err#11 EAGAIN
sfv_fd=60       sfv_flag=0x0    sfv_off=15961448        sfv_len=131736
/7:     poll(0xFE8FEF88, 1, 300000)                     = 1
/7:             fd=59 ev=POLLOUT rev=POLLOUT
/7:     sendfilev(0, 59, 0x001AE3C8, 1, 0xFE8FF2DC)     Err#11 EAGAIN
sfv_fd=60       sfv_flag=0x0    sfv_off=16024632        sfv_len=68552
/7:     poll(0xFE8FEF88, 1, 300000)                     = 1
/7:             fd=59 ev=POLLOUT rev=POLLOUT
/7:     sendfilev(0, 59, 0x001AE3D8, 1, 0xFE8FF2DC)     = 5368
sfv_fd=60       sfv_flag=0x0    sfv_off=16087816        sfv_len=5368
/7:     read(59, 0x0022AF10, 8192)                      Err#11 EAGAIN
/7:     time()                                          = 996002507
/7:     write(44, 0x001DF8D0, 287)                      = 287
/7:          0x001DF8D0: " 1 6 4 . 1 0 9 . 1 2 0 ."..
/7:     times(0xFF08BFC8)                               = 17429004
/7:             utim=16     stim=84     cutim=0      cstim=0      (HZ=100)
/7:     close(60)                                       = 0
/7:     read(59, 0x00236F90, 8192)                      Err#11 EAGAIN
/1:     lwp_mutex_lock(0xFF1E0000)      (sleeping...)
/1:             mutex type: USYNC_PROCESS|LOCK_PRIO_INHERIT|LOCK_ROBUST_NP
/2:     signotifywait()                 (sleeping...)



Mime
View raw message