Bug 12668

Summary: The kernel clock goes slow with PLIP device (lp0)
Product: Base System Reporter: you <you>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 3.2-RELEASE   
Hardware: Any   
OS: Any   

Description you 1999-07-16 16:00:01 UTC
 While transferring large amount of data via PLIP device (lp0),
the kernel clock goes very slow. I'm using Libretto 50,
transferring a couple of 10MB file causes that the kenel clock goes 
slow a couple of 10 seconds.

How-To-Repeat: 1. Prepare two FreeBSD machines, and connect 2 machines with PLIP cable.
2. Configure lp0 device by using /stand/sysinstall, or manually using ifconfig.
3. Make large file. I make such a file by tar'ing home directories.
4. Transfer the file by FTP. The receiver's kernel clock goes slow while transferring.
(I didn't make sure the sender's clock goes slow or not,
 I'm writing this report at home, with the receiver host, sorry.)
Comment 1 Bruce Evans 1999-07-16 17:23:04 UTC
>>Description:
> While transferring large amount of data via PLIP device (lp0),
>the kernel clock goes very slow. I'm using Libretto 50,
>transferring a couple of 10MB file causes that the kenel clock goes 
>slow a couple of 10 seconds.

Try this quick fix.  It is not the default since it may cause lp0
interface errors on the same slow machines that not having it
causes interrupt latency problems.

Bruce

diff -c2 if_plip.c~ if_plip.c
*** if_plip.c~	Wed Jul  7 22:47:03 1999
--- if_plip.c	Sat Jul 17 02:20:05 1999
***************
*** 476,480 ****
  	struct mbuf *top;
  
! 	s = splhigh();
  
  	if (sc->sc_if.if_flags & IFF_LINK0) {
--- 476,481 ----
  	struct mbuf *top;
  
! 	s = splimp();
! 	(void)spltty();
  
  	if (sc->sc_if.if_flags & IFF_LINK0) {
***************
*** 643,647 ****
      err = 1;			/* assume we're aborting because of an error */
  
!     s = splhigh();
  
      /* Suspend (on laptops) or receive-errors might have taken us offline */
--- 644,649 ----
      err = 1;			/* assume we're aborting because of an error */
  
!     s = splimp();
!     (void)spltty();
  
      /* Suspend (on laptops) or receive-errors might have taken us offline */
Comment 2 Poul-Henning Kamp freebsd_committer freebsd_triage 2001-05-23 22:11:45 UTC
State Changed
From-To: open->closed

Overtaken by events.