Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Feb 2002 20:47:22 -0500
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        cvs-committers@freebsd.org, cvs-all@freebsd.org
Cc:        freebsd-alpha@freebsd.org
Subject:   Re: cvs commit: src/sys/alpha/include cpufunc.h
Message-ID:  <20020211204721.A49383@grasshopper.cs.duke.edu>
In-Reply-To: <200202120120.g1C1Ko136446@freefall.freebsd.org>; from gallatin@FreeBSD.org on Mon, Feb 11, 2002 at 05:20:50PM -0800
References:  <200202120120.g1C1Ko136446@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Gallatin [gallatin@FreeBSD.org] wrote:
> gallatin    2002/02/11 17:20:50 PST
> 
>   Modified files:        (Branch: RELENG_4)
>     sys/alpha/include    cpufunc.h 
>   Log:
>   add enable_intr() and disable_intr() which are required for DEVICE_POLL
>   in -stable

FWIW, device_polling works just fine on alpha.  I'm sticking to the
mandatory MFC waiting period before committing the files file changes
though.. 

Interrupts are very expensive on alpha because of the interaction with
palcode.  People who are using alphas as routers should benefit
greatly from polling.  Here is a brief glimpse at the performance
improvement polling gives you when blasting UDP packets at a 500MHz
monet receiver, dc0 100Mb/full duplex:

Without polling:

% netperf -tUDP_STREAM -Hmonet -- -m 1
UDP UNIDIRECTIONAL SEND TEST to monet
Socket  Message  Elapsed      Messages                
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

  9216       1   10.01     1181764 4041221       0.94
 41600           10.01         534              0.00

The recv CPU is maxed out, and is machine unresponsive.

Eg, without polling nearly all packets that we manage to receive are
dropped on the floor due to livelock.  This isn't just us sucking --
Tru64 5.1 on the same box behaves nearly identically.  (well, it
manages to get a whopping 120 more packets).


With polling:

% netperf -tUDP_STREAM -Hmonet -- -m 1
UDP UNIDIRECTIONAL SEND TEST to monet
Socket  Message  Elapsed      Messages                
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

  9216       1   10.00     1180832 4052365       0.94
 41600           10.00     1163905              0.93

The recv CPU is at 30% idle.


Nice job, Luigi!


Drew

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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