From owner-freebsd-current Sun Apr 5 03:55:55 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id DAA01808 for freebsd-current-outgoing; Sun, 5 Apr 1998 03:55:55 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from ache.relcom.ru (ache.relcom.ru [193.125.20.108]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id DAA01753; Sun, 5 Apr 1998 03:54:49 -0700 (PDT) (envelope-from ache@ache.relcom.ru) Received: (from ache@localhost) by ache.relcom.ru (8.8.8/8.8.8) id OAA00252; Sun, 5 Apr 1998 14:54:28 +0400 (MSD) (envelope-from ache) Message-ID: <19980405145427.14961@nagual.pp.ru> Date: Sun, 5 Apr 1998 14:54:27 +0400 From: =?koi8-r?B?4c7E0sXKIP7F0s7P1w==?= To: phk@FreeBSD.ORG, current@FreeBSD.ORG Subject: dead hang after ppp started (with workaround) Mail-Followup-To: phk@freebsd.org, current@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.89.1i Organization: Biomechanoid Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG This change in kern_time.c 1.46 cause dead hang after ppp started, stack looks like: vec1(...) softclock(...) doreti_swi(...) below is workaround (I not shure it is right, just back out to 1.45 code, but it work!) Index: kern_time.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_time.c,v retrieving revision 1.46 retrieving revision 1.45 diff -c -r1.46 -r1.45 *** kern_time.c 1998/04/04 18:46:13 1.46 --- kern_time.c 1998/04/04 13:25:25 1.45 *************** *** 536,544 **** if (uap->which == ITIMER_REAL) { if (timerisset(&p->p_realtimer.it_value)) untimeout(realitexpire, (caddr_t)p, p->p_ithandle); ! if (timerisset(&aitv.it_value)) p->p_ithandle = timeout(realitexpire, (caddr_t)p, ! tvtohz(&aitv.it_value)); p->p_realtimer = aitv; } else p->p_stats->p_timer[uap->which] = aitv; --- 536,547 ---- if (uap->which == ITIMER_REAL) { if (timerisset(&p->p_realtimer.it_value)) untimeout(realitexpire, (caddr_t)p, p->p_ithandle); ! if (timerisset(&aitv.it_value)) { ! getmicrotime(&ctv); ! timevaladd(&aitv.it_value, &ctv); p->p_ithandle = timeout(realitexpire, (caddr_t)p, ! hzto(&aitv.it_value)); ! } p->p_realtimer = aitv; } else p->p_stats->p_timer[uap->which] = aitv; -- Andrey A. Chernov http://www.nagual.pp.ru/~ache/ MTH/SH/HE S-- W-- N+ PEC>+ D A a++ C G>+ QH+(++) 666+>++ Y To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message