Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 1995 13:50:07 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        roberto@blaise.ibp.fr, wollman@halloran-eldar.lcs.mit.edu
Cc:        current@FreeBSD.ORG
Subject:   Re: GENERIC kernel & some basic UNIX pointers
Message-ID:  <199506130350.NAA06987@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> The user mode ppp seems slower (1.3 KB/s compared to 1.55 KB/s). Maybe
>> a configuration problem on my part but I got the asyncmap right (I think).

>Of course.  Remember that you have to do a context switch to process
>every packet.  That doesn't come for free.

The context switches don't stop zmodem from being faster than the kernel ppp
even when the packet sizes are large.  Perhaps I haven't set up pppd properly
(I only use it to test it and use the default options) or something is not
streaming properly.

The kernel mode ppp has a hack for low ping latency.  This saves an average
of 5ms per end.  Again, this should have little effect for large transmissions
if everything is streaming properly.

kernel ppp is inefficiently programmed.  On a 486DX2/66 with a 16550 UART,
the input overheads for 115200 bps are approximately:

	termios(raw) 6.3%
	cslip        7%
	ppp          9%

These overheads include delivery of packets to an application that throws
the packets away.  About 3% of each overhead is for the lowest level of
the driver (which handles interrupts and stores the input in a buffer).
Thus for ppp, about 66% of the overhead is for the protocol and for
delivery of packets to the user.  It might be possibele for a user mode
ppp to improve on this, but not by much since it has to pay for the
termios(raw) protocol and packet delivery.

Bruce



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