From owner-freebsd-current Sun Sep 29 23:40:11 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CED9237B401 for ; Sun, 29 Sep 2002 23:40:08 -0700 (PDT) Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7ABED43E4A for ; Sun, 29 Sep 2002 23:40:08 -0700 (PDT) (envelope-from julian@elischer.org) Received: from InterJet.elischer.org ([12.232.206.8]) by rwcrmhc53.attbi.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20020930064008.MNDE15492.rwcrmhc53.attbi.com@InterJet.elischer.org> for ; Mon, 30 Sep 2002 06:40:08 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id XAA79128 for ; Sun, 29 Sep 2002 23:31:27 -0700 (PDT) Date: Sun, 29 Sep 2002 23:31:26 -0700 (PDT) From: Julian Elischer To: FreeBSD current users Subject: amusing KSE ktrace. Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG It occured to me to day to look at several KSE threads running under ktrace.. Talk about confusing.. The key to understanding it is that the lines RET fork 0 are actually the upcalls when a thread blocks, and they will report to the userland scheduler all the RETs that occured since the last RET fork 0 In any case it sure is difficult to follow :-) (6 threads each printing one char and then sleeping) 17595 ksetest RET write 1 17595 ksetest CALL nanosleep(0x84b7fcc,0x84b7fc4) 17595 ksetest CALL nanosleep(0x84a6fcc,0x84a6fc4) 17595 ksetest CALL write(0x1,0xbfbffc17,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "K" 17595 ksetest RET write 1 17595 ksetest CALL nanosleep(0x8275fcc,0x8275fc4) 17595 ksetest RET fork 0 17595 ksetest CALL nanosleep(0x8264fcc,0x8264fc4) 17595 ksetest RET fork 0 17595 ksetest CALL kse_yield 17595 ksetest CALL nanosleep(0xbfbffc10,0xbfbffc08) 17595 ksetest RET fork 0 17595 ksetest CALL kse_yield 17595 ksetest RET nanosleep 0 17595 ksetest RET nanosleep 0 17595 ksetest RET nanosleep 0 17595 ksetest RET nanosleep 0 17595 ksetest CALL write(0x1,0x84b7fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "." 17595 ksetest RET write 1 17595 ksetest CALL write(0x1,0x84a6fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "*" 17595 ksetest RET write 1 17595 ksetest CALL write(0x1,0x8264fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "+" 17595 ksetest RET write 1 17595 ksetest CALL write(0x1,0x8275fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "-" 17595 ksetest RET write 1 17595 ksetest CALL nanosleep(0x84b7fcc,0x84b7fc4) 17595 ksetest CALL nanosleep(0x84a6fcc,0x84a6fc4) 17595 ksetest CALL write(0x1,0xbfbffc17,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "L" 17595 ksetest RET write 1 17595 ksetest CALL nanosleep(0x8264fcc,0x8264fc4) 17595 ksetest RET fork 0 17595 ksetest CALL nanosleep(0x8275fcc,0x8275fc4) 17595 ksetest RET fork 0 17595 ksetest CALL kse_yield 17595 ksetest CALL nanosleep(0xbfbffc10,0xbfbffc08) 17595 ksetest RET fork 0 17595 ksetest CALL kse_yield 17595 ksetest RET nanosleep 0 17595 ksetest RET nanosleep 0 17595 ksetest RET nanosleep 0 17595 ksetest RET nanosleep 0 17595 ksetest CALL write(0x1,0x84b7fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "." 17595 ksetest RET write 1 17595 ksetest CALL write(0x1,0x84a6fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "*" 17595 ksetest RET write 1 17595 ksetest CALL write(0x1,0x8275fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "-" 17595 ksetest RET write 1 17595 ksetest CALL write(0x1,0x8264fd3,0x1) 17595 ksetest GIO fd 1 wrote 1 byte "+" 17595 ksetest RET write 1 17595 ksetest CALL nanosleep(0x84b7fcc,0x84b7fc4) 17595 ksetest CALL nanosleep(0x84a6fcc,0x84a6fc4) 17595 ksetest CALL write(0x1,0xbfbffc17,0x1) 17595 ksetest GIO fd 1 wrote 1 byte To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message