delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/12/02/13:25:16

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
From: "Ralf Habacker" <Ralf DOT Habacker AT freenet DOT de>
To: "Tim Prince" <tprince AT computer DOT org>
Cc: "Cygwin" <cygwin AT sources DOT redhat DOT com>
Subject: RE: Old Thread: Cygwin Performance
Date: Sun, 2 Dec 2001 19:29:41 +0100
Message-ID: <001401c17b5f$4ef62bb0$9a5f07d5@BRAMSCHE>
MIME-Version: 1.0
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

------=_NextPart_000_0015_01C17B67.B0BA93B0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

> 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" <Ralf DOT Habacker AT freenet DOT de>
> To: "Tim Prince" <tprince AT computer DOT org>
> Cc: "Cygwin" <cygwin AT sources DOT redhat DOT com>
> 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" <piyush AT acm DOT org>
> > > To: "Cygwin AT Cygwin. Com" <cygwin AT cygwin DOT 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: <cygwin at sourceware dot cygnus dot com>, "Chris Abbey" <cabbey
> at
> > > > chartermi dot net>
> > > > Subject: Re: Cygwin Performance Info
> > > > From: "Tim Prince" <tprince at computer dot org>
> > > > Date: Fri, 13 Oct 2000 19:12:40 -0700
> > > > References: <4 DOT 3 DOT 2 DOT 7 DOT 0 DOT 20001013184237 DOT 00b6cd70 AT pop DOT bresnanlink DOT 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" <cabbey AT chartermi DOT net>
> > > > To: <cygwin AT sourceware DOT cygnus DOT com>
> > > > 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 AT sourceware DOT cygnus DOT 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"

--- ./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=
 =0A=
 date >> ${OUTPUT}=0A=
 echo Latency measurements >> ${OUTPUT}=0A=
+echo -n "*" =0A=
 lat_syscall null=0A=
+echo -n "*" =0A=
 lat_syscall read=0A=
+echo -n "*" =0A=
 lat_syscall write=0A=
+echo -n "*" =0A=
 lat_syscall stat $STAT=0A=
+echo -n "*" =0A=
 lat_syscall fstat $STAT=0A=
+echo -n "*" =0A=
 lat_syscall open $STAT=0A=
+echo -n "*" =0A=
 for i in 10 100 250 500; do lat_select file $i; done=0A=
+echo -n "*" =0A=
 for i in 10 100 250 500; do lat_select tcp $i; done=0A=
+echo -n "*" =0A=
 lat_sig install=0A=
+echo -n "*" =0A=
 lat_sig catch=0A=
+echo -n "*" =0A=
+echo -n "*" =0A=
 lat_sig prot lat_sig=0A=
+echo -n "*" =0A=
 lat_pipe=0A=
+echo -n "*" =0A=
 lat_unix=0A=
+echo -n "*" =0A=
 cp hello /tmp/hello=0A=
 for i in fork exec shell; do lat_proc $i; done=0A=
 rm /tmp/hello =0A=
@@ -141,6 +156,7 @@=0A=
 	lat_fs $FSDIR=0A=
 	echo "" 1>&2=0A=
 fi=0A=
+echo -n "*" =0A=
 =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 "*" =0A=
 =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 "*" =0A=
 	lat_udp -$i=0A=
+echo -n "*" =0A=
 	lat_tcp $i=0A=
+echo -n "*" =0A=
 	lat_tcp -$i=0A=
+echo -n "*" =0A=
 	lat_rpc $i=0A=
+echo -n "*" =0A=
 	lat_rpc -$i=0A=
+echo -n "*" =0A=
 	lat_connect $i=0A=
+echo -n "*" =0A=
 	lat_connect -$i=0A=
+echo -n "*" =0A=
 	bw_tcp $i=0A=
+echo -n "*" =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 "*" =0A=
 	lat_http $i 8008 < ../../src/webpage-lm/URLS=0A=
+echo -n "*" =0A=
 	lat_http -$i 8008=0A=
+echo -n "*" =0A=
 done=0A=
 =0A=
 for remote in $REMOTE =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 "*" =0A=
 	lat_udp $remote; lat_udp -$remote;=0A=
+echo -n "*" =0A=
 	lat_tcp $remote; lat_tcp -$remote;=0A=
+echo -n "*" =0A=
 	lat_rpc $remote udp; lat_rpc $remote tcp; lat_rpc -$remote; =0A=
+echo -n "*" =0A=
 	lat_connect $remote; lat_connect -$remote;=0A=
+echo -n "*" =0A=
 	bw_tcp $remote; bw_tcp -$remote =0A=
 	# I want a hot cache number=0A=
+echo -n "*" =0A=
 	lat_http $remote 8008 < ../../src/webpage-lm/URLS > /dev/null 2>&1=0A=
+echo -n "*" =0A=
 	lat_http $remote 8008 < ../../src/webpage-lm/URLS=0A=
+echo -n "*" =0A=
 	lat_http -$remote 8008=0A=
+echo -n "*" =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 "*" =0A=
 bw_pipe=0A=
+echo -n "*" =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 "*" =0A=
 =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 "*" =0A=
 =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 "*" =0A=
 =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 "*" =0A=
 =0A=
 echo \"libc bcopy unaligned 1>&2=0A=
 for i in $HALF; do bw_mem $i bcopy; done; echo "" 1>&2=0A=
+echo -n "*" =0A=
 =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 "*" =0A=
 =0A=
 echo \"unrolled bcopy unaligned 1>&2=0A=
 for i in $HALF; do bw_mem $i fcp; done; echo "" 1>&2=0A=
+echo -n "*" =0A=
 =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 "*" =0A=
 =0A=
 echo "Memory read bandwidth" 1>&2=0A=
 for i in $ALL; do bw_mem $i frd; done; echo "" 1>&2=0A=
+echo -n "*" =0A=
 =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 "*" =0A=
 =0A=
 echo "Memory write bandwidth" 1>&2=0A=
 for i in $ALL; do bw_mem $i fwr; done; echo "" 1>&2=0A=
+echo -n "*" =0A=
 =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 "*" =0A=
 =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 "*" =0A=
 =0A=
 echo "Memory bzero bandwidth" 1>&2=0A=
 for i in $ALL; do bw_mem $i bzero; done; echo "" 1>&2=0A=
+echo -n "*" =0A=
 =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        <sys/socket.h>=0A=
 #include        <sys/un.h>=0A=
 #include        <sys/resource.h>=0A=
+#ifdef __CYGWIN__=0A=
+#include	<w32api/rpc.h>=0A=
+#else =0A=
 #define PORTMAP=0A=
 #include	<rpc/rpc.h>=0A=
 #endif=0A=
+#endif =0A=
 =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 <rpc/types.h>=0A=
-=0A=
+#endif =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=
 =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=
 =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=
 =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=
 =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=
 =0A=
 lmbench: $(UTILS)=0A=
 	@env CFLAGS=3D-O MAKE=3D"$(MAKE)" MAKEFLAGS=3D"$(MAKEFLAGS)" =
../scripts/build 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=
 =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=
 =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=
 =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=
 =0A=
-#if defined(hpux) || defined(__hpux) || defined(WIN32)=0A=
+#if defined(hpux) || defined(__hpux) || (defined(WIN32) && =
!defined(__CYGWIN__))=0A=
 int	getpagesize();=0A=
 #endif=0A=
 =0A=


------=_NextPart_000_0015_01C17B67.B0BA93B0
Content-Type: text/plain; charset=us-ascii

--
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--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019