Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jul 1996 10:02:34 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        CVS-committers@freefall.freebsd.org, cvs-all@freefall.freebsd.org, cvs-sys@freefall.freebsd.org, dyson@freefall.freebsd.org
Subject:   Re: cvs commit:  src/sys/sys pipe.h src/sys/kern sys_pipe.c
Message-ID:  <199607140002.KAA05845@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help

>  Modified:    sys/sys   pipe.h
>               sys/kern  sys_pipe.c
>  Log:
>  A few minor mods (improvements) to support more efficient pipe
>  operations for large transfers.  There are essentially no differences
>  for small transfers, but big transfers should perform about 20%
>  better.

I'd like to win pipe latency benchmarks too :-).  The overhead seems to
be mostly in vfs:

	dd if=/dev/zero of=/dev/null bs=1 count=1000000

takes 1.77user +  4.98system on a P90  running Linux-1.2.13
and   2.84user + 42.20system on a P133 running FreeBSD-current.

Our /dev/zero is a bit slow.  Reading and writing a byte at a time
through a nameless pipe is about twice as fast as this (50K/sec instead
of 22 on a P133).  I/O's to pipes need to be about 2K large before the
transaction overheads become larger than the memory overheads.

I'd also like to win the `ctm cvs-cur.2229.gz' benchmark.  This is
incredibly slow on non-async mounted file systems.

More tinygram benchmarks:

	mkfifo p; dd if=/dev/zero of=p bs=1000000 count=1 & \
	time dd if=p of=/dev/null bs=1

	L: 1.72user + 24.87system
	F: 4.95user + 39.86system

Neither system is very good here.

	dd if=/dev/zero of=/dev/ttypf bs=1000000 count=1 & \
	time dd if=/dev/ptypf of=/dev/null bs=1

	L: 1.89user +  8.70system
	F: 2.33user + 16.64system

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199607140002.KAA05845>