From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4213 invoked by alias); 2 Dec 2001 18:24:50 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Received: (qmail 4187 invoked from network); 2 Dec 2001 18:24:49 -0000 Received: from unknown (HELO mout0.freenet.de) (194.97.50.131) by hostedprojects.ges.redhat.com with SMTP; 2 Dec 2001 18:24:49 -0000 Received: from [194.97.50.136] (helo=mx3.freenet.de) by mout0.freenet.de with esmtp (Exim 3.33 #3) id 16AbIE-0007lM-00; Sun, 02 Dec 2001 19:24:46 +0100 Received: from a144b.pppool.de ([213.6.20.75] helo=BRAMSCHE) by mx3.freenet.de with smtp (Exim 3.33 #3) id 16AbI5-0002X6-00; Sun, 02 Dec 2001 19:24:37 +0100 From: "Ralf Habacker" To: "Tim Prince" Cc: "Cygwin" Subject: RE: Old Thread: Cygwin Performance Date: Sun, 02 Dec 2001 10:24:00 -0000 Message-ID: <001401c17b5f$4ef62bb0$9a5f07d5@BRAMSCHE> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0015_01C17B67.B0BA93B0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 In-Reply-To: <008501c17af9$d044f4f0$8feb85ce@amr.corp.intel.com> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Importance: Normal X-SW-Source: 2001-12/txt/msg00033.txt.bz2 ------=_NextPart_000_0015_01C17B67.B0BA93B0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-length: 6873 > I'd suggest you offer your patch to the lmbench maintainers. At one time, > they were talking about supporting something for Windows. If they don't > adopt it, I suppose the other alternative is to offer to maintain a Cygwin > port as an optional Cygwin package. I'd certainly like to try your version. Perhaps it is the best, that you look at the patch before offering to the lmbench maintainer. I should note some things to the patch: 1. It emulates rpc functions by adding a file "lib_cygwin.c" which contains empty rcp_... functions, so that the rpc functions are disabled and will not be tested. 2. Because the makefile does not have any platform depending parts, generating lat_rpc.exe is disabled 3. in scripts/lmbench I have added some ' echo -n "*" ' to enable visible feedback for the long time execution of some benchmarks. 4. On problem I have recognized is with the "lat_select", it hangs on operation. 5. Because I don't have any compare of lmbench running time on other platforms I can't say if this is okay. Some benchmarks need several minutes to run, but this may be okay. Regards Ralf > ----- Original Message ----- > From: "Ralf Habacker" > To: "Tim Prince" > Cc: "Cygwin" > Sent: Saturday, December 01, 2001 11:44 AM > Subject: RE: Old Thread: Cygwin Performance > > > > > > > > cygwin should have made some improvements in piping since then. Amazing > the > > > things I had time to do last year. At that time, I got over a few of > the > > > linux specific functions by the use of Chuck Wilson's useful packages, > some > > > of which should be integrated into cygwin now. I commented out sections > of > > > lmbench which I couldn't figure out how to port. This would be a useful > > > port, particularly in view of the new performance issues brought up by > XP. > > > > I have get running lmbench 2.0 on cygwin with some patches (removing rpc > functions). > > > > Is there anyone who could verify this patch ? To whom should I send this > patch ? > > > > Regards > > Ralf > > > > > However, several of the organizations involved in lmbench are trying to > stay > > > clear of Bill Gates' vendetta against use of open software together with > his > > > products. I was not employed by such an organization at the time I was > > > beating on lmbench. > > > > > ----- Original Message ----- > > > From: "Piyush Kumar" > > > To: "Cygwin@Cygwin. Com" > > > Sent: Friday, November 30, 2001 6:49 AM > > > Subject: Old Thread: Cygwin Performance > > > > > > > > > > > > > > > > > > I picked this old thread from Oct 2000!!! > > > > Tim reports that cygwin falls short by > > > > performance compared to linux box by a > > > > factor of 2 using lmbench. Is it still > > > > the case? Or have things improved since > > > > Oct 13(Unlucky date!! ;)?? > > > > > > > > I was trying to compile lmbench 2.0 (Patch 2) > > > > on my cygwin , no luck!!!! I couldnt compile it! > > > > Anyone here has tried it before ?? Any luck? > > > > I would be really interested in a lmbench port > > > > on cygwin! If someone has already done it , please > > > > let me know! > > > > > > > > Thanks, > > > > --Piyush > > > > > > > > > > > > =============================================================An Old > Thread > > > > > > > > Re: Cygwin Performance Info > > > > To: , "Chris Abbey" at > > > > chartermi dot net> > > > > Subject: Re: Cygwin Performance Info > > > > From: "Tim Prince" > > > > Date: Fri, 13 Oct 2000 19:12:40 -0700 > > > > References: <4.3.2.7.0.20001013184237.00b6cd70@pop.bresnanlink.net> > > > > > > > > > -------------------------------------------------------------------------- > > > -- > > > > ---- > > > > > > > > When I attempted to run lmbench on this old box both under linux and > cygwi > > > n, > > > > there were some tests on which cygwin/w2k fell short of linux by a > factor > > > of > > > > 2 or more (opening files, pipe throughput, and the like), and then > there > > > > were the cache statistics on which cygwin beat linux by a small > margin. I > > > > was expecting lmbench to become better adapted to cygwin, but I have > no > > > news > > > > there. > > > > ----- Original Message ----- > > > > From: "Chris Abbey" > > > > To: > > > > Sent: Friday, October 13, 2000 4:51 PM > > > > Subject: Re: Cygwin Performance Info > > > > > > > > > > > > > At 19:23 10/13/00 -0400, Laurence F. Wood wrote: > > > > > >Can someone tell me where the performance hit is in cygwin unix > > > > > >emulation? > > > > > > > > > > whichever part you use the most inside your tightest inner loop. > > > > > > > > > > seriously. > > > > > > > > > > that's a big huge open ended question (not about cygwin, about ANY > > > > > library/platform) that is as specific to your application as you can > > > > > get. For example, if you spend 75% of your computing day > manipulating > > > > > text files and piping them and greping them and running file utils > > > > > against them then the cr/lf translation may be a big hit for you. > > > > > On the otherhand if most of your computation in a day is spent > answering > > > > > requests that come in on tcp/ip sockets then the remapping of > winsock > > > > > to netinet.h functions maybe your major headache. (note, I'm not > trying > > > > > to imply that either function has a performance problem, merely that > > > they > > > > > would be representative places that would have high invocation > counts > > > > > in the course of the given activity.) > > > > > > > > > > To really answer that for your application/workload then you need to > > > > > get some form of performance detailing that can tell you how much > time > > > > > you are spending in any given method and how often it's called. > > > > > > > > > > > > > > > -- > > > > > Want to unsubscribe from this list? > > > > > Send a message to cygwin-unsubscribe@sourceware.cygnus.com > > > > > > > > > > > > -- > > > > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > > > Bug reporting: http://cygwin.com/bugs.html > > > > Documentation: http://cygwin.com/docs.html > > > > FAQ: http://cygwin.com/faq/ > > > > > > > > > > > > > -- > > > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > > Bug reporting: http://cygwin.com/bugs.html > > > Documentation: http://cygwin.com/docs.html > > > FAQ: http://cygwin.com/faq/ > > > > > > > > > -- > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > Bug reporting: http://cygwin.com/bugs.html > Documentation: http://cygwin.com/docs.html > FAQ: http://cygwin.com/faq/ > > ------=_NextPart_000_0015_01C17B67.B0BA93B0 Content-Type: application/octet-stream; name="lmbench-2.0-p1-cygwin.dif" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="lmbench-2.0-p1-cygwin.dif" Content-length: 8469 --- ./scripts/lmbench Mon Jul 23 07:08:47 2001=0A= +++ ../LMbench_new/./scripts/lmbench Fri Nov 30 20:02:40 2001=0A= @@ -111,19 +111,34 @@=0A= =20=0A= date >> ${OUTPUT}=0A= echo Latency measurements >> ${OUTPUT}=0A= +echo -n "*"=20=0A= lat_syscall null=0A= +echo -n "*"=20=0A= lat_syscall read=0A= +echo -n "*"=20=0A= lat_syscall write=0A= +echo -n "*"=20=0A= lat_syscall stat $STAT=0A= +echo -n "*"=20=0A= lat_syscall fstat $STAT=0A= +echo -n "*"=20=0A= lat_syscall open $STAT=0A= +echo -n "*"=20=0A= for i in 10 100 250 500; do lat_select file $i; done=0A= +echo -n "*"=20=0A= for i in 10 100 250 500; do lat_select tcp $i; done=0A= +echo -n "*"=20=0A= lat_sig install=0A= +echo -n "*"=20=0A= lat_sig catch=0A= +echo -n "*"=20=0A= +echo -n "*"=20=0A= lat_sig prot lat_sig=0A= +echo -n "*"=20=0A= lat_pipe=0A= +echo -n "*"=20=0A= lat_unix=0A= +echo -n "*"=20=0A= cp hello /tmp/hello=0A= for i in fork exec shell; do lat_proc $i; done=0A= rm /tmp/hello=20=0A= @@ -141,6 +156,7 @@=0A= lat_fs $FSDIR=0A= echo "" 1>&2=0A= fi=0A= +echo -n "*"=20=0A= =20=0A= if [ X"$DISKS" !=3D X ]=0A= then for i in $DISKS=0A= @@ -151,6 +167,7 @@=0A= fi=0A= done=0A= fi=0A= +echo -n "*"=20=0A= =20=0A= date >> ${OUTPUT}=0A= echo Local networking >> ${OUTPUT}=0A= @@ -166,19 +183,31 @@=0A= for i in localhost=0A= do=0A= lat_udp $i=0A= +echo -n "*"=20=0A= lat_udp -$i=0A= +echo -n "*"=20=0A= lat_tcp $i=0A= +echo -n "*"=20=0A= lat_tcp -$i=0A= +echo -n "*"=20=0A= lat_rpc $i=0A= +echo -n "*"=20=0A= lat_rpc -$i=0A= +echo -n "*"=20=0A= lat_connect $i=0A= +echo -n "*"=20=0A= lat_connect -$i=0A= +echo -n "*"=20=0A= bw_tcp $i=0A= +echo -n "*"=20=0A= bw_tcp -$i=0A= # I want a hot cache number=0A= lat_http $i 8008 < ../../src/webpage-lm/URLS > /dev/null 2>&1=0A= +echo -n "*"=20=0A= lat_http $i 8008 < ../../src/webpage-lm/URLS=0A= +echo -n "*"=20=0A= lat_http -$i 8008=0A= +echo -n "*"=20=0A= done=0A= =20=0A= for remote in $REMOTE=20=0A= @@ -190,15 +219,24 @@=0A= $RSH $remote -n 'cd /tmp; tar xf webpage-lm.tar; cd webpage-lm; ../lmhttp= 8008' &=0A= sleep 10=0A= echo "[ Networking remote to $remote: `$RSH $remote uname -a` ]" 1>&2=0A= +echo -n "*"=20=0A= lat_udp $remote; lat_udp -$remote;=0A= +echo -n "*"=20=0A= lat_tcp $remote; lat_tcp -$remote;=0A= +echo -n "*"=20=0A= lat_rpc $remote udp; lat_rpc $remote tcp; lat_rpc -$remote;=20=0A= +echo -n "*"=20=0A= lat_connect $remote; lat_connect -$remote;=0A= +echo -n "*"=20=0A= bw_tcp $remote; bw_tcp -$remote=20=0A= # I want a hot cache number=0A= +echo -n "*"=20=0A= lat_http $remote 8008 < ../../src/webpage-lm/URLS > /dev/null 2>&1=0A= +echo -n "*"=20=0A= lat_http $remote 8008 < ../../src/webpage-lm/URLS=0A= +echo -n "*"=20=0A= lat_http -$remote 8008=0A= +echo -n "*"=20=0A= RM=3D=0A= for server in $SERVERS=0A= do RM=3D"/tmp/$server $RM"=0A= @@ -209,55 +247,71 @@=0A= date >> ${OUTPUT}=0A= echo Bandwidth measurements >> ${OUTPUT}=0A= bw_unix=0A= +echo -n "*"=20=0A= bw_pipe=0A= +echo -n "*"=20=0A= echo "" 1>&2=0A= echo \"read bandwidth 1>&2=0A= for i in $ALL; do bw_file_rd $i io_only $FILE; done=0A= echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "" 1>&2=0A= echo \"read open2close bandwidth 1>&2=0A= for i in $ALL; do bw_file_rd $i open2close $FILE; done=0A= echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo \"Mmap read bandwidth 1>&2=0A= for i in $ALL; do bw_mmap_rd $i mmap_only $FILE; done=0A= echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo \"Mmap read open2close bandwidth 1>&2=0A= for i in $ALL; do bw_mmap_rd $i open2close $FILE; done=0A= echo "" 1>&2=0A= rm -f $FILE=0A= +echo -n "*"=20=0A= =20=0A= echo \"libc bcopy unaligned 1>&2=0A= for i in $HALF; do bw_mem $i bcopy; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo \"libc bcopy aligned 1>&2=0A= for i in $HALF; do bw_mem $i bcopy conflict; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo \"unrolled bcopy unaligned 1>&2=0A= for i in $HALF; do bw_mem $i fcp; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo \"unrolled partial bcopy unaligned 1>&2=0A= for i in $HALF; do bw_mem $i cp; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "Memory read bandwidth" 1>&2=0A= for i in $ALL; do bw_mem $i frd; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "Memory partial read bandwidth" 1>&2=0A= for i in $ALL; do bw_mem $i rd; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "Memory write bandwidth" 1>&2=0A= for i in $ALL; do bw_mem $i fwr; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "Memory partial write bandwidth" 1>&2=0A= for i in $ALL; do bw_mem $i wr; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "Memory partial read/write bandwidth" 1>&2=0A= for i in $ALL; do bw_mem $i rdwr; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= echo "Memory bzero bandwidth" 1>&2=0A= for i in $ALL; do bw_mem $i bzero; done; echo "" 1>&2=0A= +echo -n "*"=20=0A= =20=0A= date >> ${OUTPUT}=0A= msleep 250=0A= --- ./src/bench.h Mon Jul 23 07:08:47 2001=0A= +++ ../LMbench_new/./src/bench.h Fri Nov 30 17:05:38 2001=0A= @@ -34,9 +34,13 @@=0A= #include =0A= #include =0A= #include =0A= +#ifdef __CYGWIN__=0A= +#include =0A= +#else=20=0A= #define PORTMAP=0A= #include =0A= #endif=0A= +#endif=20=0A= =20=0A= #ifndef HAVE_uint=0A= typedef unsigned int uint;=0A= @@ -239,9 +243,9 @@=0A= * Please do not edit this file.=0A= * It was generated using rpcgen.=0A= */=0A= -=0A= +#ifndef __CYGWIN__=0A= #include =0A= -=0A= +#endif=20=0A= #define XACT_PROG ((u_long)404040)=0A= #define XACT_VERS ((u_long)1)=0A= #define RPC_XACT ((u_long)1)=0A= --- ./src/lib_timing.c Mon Jul 23 07:08:47 2001=0A= +++ ../LMbench_new/./src/lib_timing.c Fri Nov 30 17:10:03 2001=0A= @@ -857,7 +857,7 @@=0A= }=0A= }=0A= =20=0A= -#if defined(hpux) || defined(__hpux)=0A= +#if defined(hpux) || defined(__hpux) && !defined(__CYGWIN__)=0A= int=0A= getpagesize()=0A= {=0A= @@ -865,7 +865,7 @@=0A= }=0A= #endif=0A= =20=0A= -#ifdef WIN32=0A= +#if defined(WIN32) && !defined(__CYGWIN__)=0A= int=0A= getpagesize()=0A= {=0A= --- ./src/Makefile Mon Jul 23 07:08:47 2001=0A= +++ ../LMbench_new/./src/Makefile Fri Nov 30 17:20:39 2001=0A= @@ -56,7 +56,7 @@=0A= memsize.c bw_unix.c lat_unix.c lmdd.c loop_o.c timing_o.c \=0A= timing.h stats.h lib_tcp.h lib_udp.h enough.c lat_select.c \=0A= msleep.c bw_mem.c lat_fifo.c lmhttp.c lat_http.c \=0A= - disk.c flushdisk.c lat_unix_connect.c lib_unix.c lib_stats.c \=0A= + disk.c flushdisk.c lat_unix_connect.c lib_unix.c lib_stats.c lib_cygwin.c= \=0A= lib_unix.h names.h version.h=0A= =20=0A= EXES =3D $O/bw_file_rd $O/bw_mem $O/bw_mmap_rd $O/bw_pipe $O/bw_tcp \=0A= @@ -82,7 +82,7 @@=0A= $D/lmbench.8 $D/disk.8 $D/lmdd.8 $D/mhz.8 \=0A= $D/clock.8 $D/enough.8 $D/loop_o.8 $D/timing_o.8=0A= =20=0A= -LIBOBJS=3D $O/lib_tcp.o $O/lib_udp.o $O/lib_unix.o $O/lib_timing.o $O/lib_= stats.o=0A= +LIBOBJS=3D $O/lib_tcp.o $O/lib_udp.o $O/lib_unix.o $O/lib_timing.o $O/lib_= stats.o $O/lib_cygwin.o=0A= =20=0A= lmbench: $(UTILS)=0A= @env CFLAGS=3D-O MAKE=3D"$(MAKE)" MAKEFLAGS=3D"$(MAKEFLAGS)" ../scripts/b= uild all=0A= @@ -196,6 +196,9 @@=0A= $O/lib_stats.o : lib_stats.c $(INCS)=0A= $(COMPILE) -c lib_stats.c -o $O/lib_stats.o=0A= =20=0A= +$O/lib_cygwin.o : lib_cygwin.c $(INCS)=0A= + $(COMPILE) -c lib_cygwin.c -o $O/lib_cygwin.o=0A= +=0A= # Do not remove the next line, $(MAKE) depend needs it=0A= # MAKEDEPEND follows=0A= $O/rhttp: rhttp.c timing.h stats.h bench.h $O/lmbench.a=0A= @@ -292,7 +295,7 @@=0A= $(COMPILE) -o $O/lat_proc lat_proc.c $O/lmbench.a $(LDLIBS)=0A= =20=0A= $O/lat_rpc: lat_rpc.c timing.h stats.h bench.h $O/lmbench.a=0A= - $(COMPILE) -o $O/lat_rpc lat_rpc.c $O/lmbench.a $(LDLIBS)=0A= +# $(COMPILE) -o $O/lat_rpc lat_rpc.c $O/lmbench.a $(LDLIBS)=0A= =20=0A= $O/lat_sig: lat_sig.c timing.h stats.h bench.h $O/lmbench.a=0A= $(COMPILE) -o $O/lat_sig lat_sig.c $O/lmbench.a $(LDLIBS)=0A= --- ./src/timing.h Mon Jul 23 07:08:47 2001=0A= +++ ../LMbench_new/./src/timing.h Fri Nov 30 17:10:18 2001=0A= @@ -42,7 +42,7 @@=0A= uint64 usecs_spent(void);=0A= void touch(char *buf, int size);=0A= =20=0A= -#if defined(hpux) || defined(__hpux) || defined(WIN32)=0A= +#if defined(hpux) || defined(__hpux) || (defined(WIN32) && !defined(__CYGW= IN__))=0A= int getpagesize();=0A= #endif=0A= =20=0A= =0A= ------=_NextPart_000_0015_01C17B67.B0BA93B0 Content-Type: text/plain; charset=us-ascii Content-length: 214 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------=_NextPart_000_0015_01C17B67.B0BA93B0--