From kaos@sgi.com Tue Jul 1 19:31:12 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 01 Jul 2003 19:31:18 -0700 (PDT) Received: from zok.sgi.com (zok.SGI.COM [204.94.215.101]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h622VC2x021328 for ; Tue, 1 Jul 2003 19:31:12 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by zok.sgi.com (8.12.9/8.12.2/linux-outbound_gateway-1.2) with SMTP id h622V5iY020154 for ; Tue, 1 Jul 2003 19:31:06 -0700 Received: from kao2.melbourne.sgi.com (kao2.melbourne.sgi.com [134.14.55.180]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA17266 for ; Wed, 2 Jul 2003 12:29:50 +1000 Received: by kao2.melbourne.sgi.com (Postfix, from userid 16331) id B1694D84FE; Wed, 2 Jul 2003 12:29:49 +1000 (EST) Received: from kao2.melbourne.sgi.com (localhost [127.0.0.1]) by kao2.melbourne.sgi.com (Postfix) with ESMTP id AECD1912D6 for ; Wed, 2 Jul 2003 12:29:49 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com Subject: Proposed change of kdb key on serial console Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 02 Jul 2003 12:29:44 +1000 Message-ID: <3545.1057112984@kao2.melbourne.sgi.com> X-archive-position: 397 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb Currently you invoke kdb on a serial console by ctrl-A. This causes problems for people using emacs bindings in bash, ctrl-A is start of line. It is very annoying when typing on the serial console to suddenly drop into kdb without intending to. In the next major release of kdb, the serial console sequence will change to KDB, in upper case. You can revert to ctrl-A by changing kdb_serial_str in drivers/char/serial.c. Complain now if this will cause any major problems. From sonic.zhang@intel.com Tue Jul 1 19:53:59 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 01 Jul 2003 19:54:03 -0700 (PDT) Received: from caduceus.jf.intel.com (fmr06.intel.com [134.134.136.7]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h622rw2x022414 for ; Tue, 1 Jul 2003 19:53:59 -0700 Received: from talaria.jf.intel.com (talaria.jf.intel.com [10.7.209.7]) by caduceus.jf.intel.com (8.11.6p2/8.11.6/d: outer.mc,v 1.66 2003/05/22 21:17:36 rfjohns1 Exp $) with ESMTP id h622mHW15560 for ; Wed, 2 Jul 2003 02:48:17 GMT Received: from pdsmsxvs01.pd.intel.com (pdsmsxvs01.pd.intel.com [172.16.12.122]) by talaria.jf.intel.com (8.11.6p2/8.11.6/d: inner.mc,v 1.35 2003/05/22 21:18:01 rfjohns1 Exp $) with SMTP id h622KJt26837 for ; Wed, 2 Jul 2003 02:20:19 GMT Received: from pdsmsx331.ccr.corp.intel.com ([172.16.12.58]) by pdsmsxvs01.pd.intel.com (NAVGW 2.5.2.11) with SMTP id M2003070210535218696 ; Wed, 02 Jul 2003 10:53:52 +0800 Received: from pdsmsx403.ccr.corp.intel.com ([172.16.12.55]) by pdsmsx331.ccr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.5329); Wed, 2 Jul 2003 10:53:52 +0800 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="gb2312" X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 Subject: RE: Proposed change of kdb key on serial console Date: Wed, 2 Jul 2003 10:53:51 +0800 Message-ID: <37FBBA5F3A361C41AB7CE44558C3448E5A2F16@pdsmsx403.ccr.corp.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Proposed change of kdb key on serial console Thread-Index: AcNAQlLiBFz46E+4QpuPla4qR4CyUQAAjrjg From: "Zhang, Sonic" To: "Keith Owens" , X-OriginalArrivalTime: 02 Jul 2003 02:53:52.0147 (UTC) FILETIME=[2B650E30:01C34045] Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id h622rw2x022414 X-archive-position: 398 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: sonic.zhang@intel.com Precedence: bulk X-list: kdb Hi Keith, I think it will cost too many keys to trap into KDB from a serial console. What do you think about "ctrl-=" or "ctrl-\"? ********************************************* Sonic Zhang Software Engineer Intel China Software Lab Tel: (086)021-52574545-1667 iNet: 752-1667 ********************************************* -----Original Message----- From: Keith Owens [mailto:kaos@sgi.com] Sent: 2003Äê7ÔÂ2ÈÕ 10:30 To: kdb@oss.sgi.com Subject: Proposed change of kdb key on serial console Currently you invoke kdb on a serial console by ctrl-A. This causes problems for people using emacs bindings in bash, ctrl-A is start of line. It is very annoying when typing on the serial console to suddenly drop into kdb without intending to. In the next major release of kdb, the serial console sequence will change to KDB, in upper case. You can revert to ctrl-A by changing kdb_serial_str in drivers/char/serial.c. Complain now if this will cause any major problems. From kaos@sgi.com Tue Jul 1 20:11:30 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 01 Jul 2003 20:11:37 -0700 (PDT) Received: from tolkor.sgi.com ([198.149.18.6]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h623BU2x022571 for ; Tue, 1 Jul 2003 20:11:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by tolkor.sgi.com (8.12.9/8.12.2/linux-outbound_gateway-1.2) with SMTP id h623SwmO029868 for ; Tue, 1 Jul 2003 22:29:01 -0500 Received: from kao2.melbourne.sgi.com (kao2.melbourne.sgi.com [134.14.55.180]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA17615 for ; Wed, 2 Jul 2003 13:10:05 +1000 Received: by kao2.melbourne.sgi.com (Postfix, from userid 16331) id 1A2B9D84FE; Wed, 2 Jul 2003 13:10:05 +1000 (EST) Received: from kao2.melbourne.sgi.com (localhost [127.0.0.1]) by kao2.melbourne.sgi.com (Postfix) with ESMTP id 17709912D6 for ; Wed, 2 Jul 2003 13:10:05 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com Subject: Re: Proposed change of kdb key on serial console In-reply-to: Your message of "Wed, 02 Jul 2003 10:53:51 +0800." <37FBBA5F3A361C41AB7CE44558C3448E5A2F16@pdsmsx403.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 02 Jul 2003 13:10:00 +1000 Message-ID: <4102.1057115400@kao2.melbourne.sgi.com> X-archive-position: 399 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Wed, 2 Jul 2003 10:53:51 +0800, "Zhang, Sonic" wrote: > I think it will cost too many keys to trap into KDB from a serial >console. > > What do you think about "ctrl-=" or "ctrl-\"? That is deliberate, it should take more effort to get into the debugger than just hitting a single character. SGI have been using KDB internally for several months and it has not caused any problems. From willschm@us.ibm.com Wed Jul 2 06:33:45 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 06:33:50 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.102]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62DXc2x001174 for ; Wed, 2 Jul 2003 06:33:45 -0700 Received: from northrelay02.pok.ibm.com (northrelay02.pok.ibm.com [9.56.224.150]) by e2.ny.us.ibm.com (8.12.9/8.12.2) with ESMTP id h62DXW5U114132 for ; Wed, 2 Jul 2003 09:33:32 -0400 Received: from d27ml103.rchland.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay02.pok.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h62DXVqO200140 for ; Wed, 2 Jul 2003 09:33:31 -0400 Subject: Re: Proposed change of kdb key on serial console To: kdb@oss.sgi.com X-Mailer: Lotus Notes Release 5.0.11 July 24, 2002 Message-ID: From: Will Schmidt Date: Wed, 2 Jul 2003 08:33:29 -0500 X-MIMETrack: Serialize by Router on d27ml103/27/M/IBM(Release 6.0.1CF1|March 04, 2003 =?GB2312?B?qro/KSBhdCAwNy8wMi8yMDAzIDA4OjMzOjMx?= MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 400 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: willschm@us.ibm.com Precedence: bulk X-list: kdb Agreeing with Keith's observation, the PPC64 implementation has been using the string "startKDB" for quite some time. (more than a year). Occasionally i hear a complaint about it not working, but typically is because it's been mis-typed, so just a matter of typing it again. It would be nice if the "make *config" tools would support setting that string, so this could be a config option instead of hard-coded. -Will willschm@us.ibm.com Linux on PowerPC-64 Development IBM Rochester Keith Owens To: kdb@oss.sgi.com Sent by: cc: kdb-bounce@oss.sg Subject: Re: Proposed change of kdb key on serial console i.com 07/01/2003 10:10 PM On Wed, 2 Jul 2003 10:53:51 +0800, "Zhang, Sonic" wrote: > I think it will cost too many keys to trap into KDB from a serial >console. > > What do you think about "ctrl-=" or "ctrl-\"? That is deliberate, it should take more effort to get into the debugger than just hitting a single character. SGI have been using KDB internally for several months and it has not caused any problems. From kaos@sgi.com Wed Jul 2 06:58:12 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 06:58:22 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62Dw92x001752 for ; Wed, 2 Jul 2003 06:58:10 -0700 Received: (qmail 29619 invoked from network); 2 Jul 2003 13:58:06 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 2 Jul 2003 13:58:06 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id DFA51D84FE; Wed, 2 Jul 2003 23:58:01 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id DCA69912D6; Wed, 2 Jul 2003 23:58:01 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: Will Schmidt Cc: kdb@oss.sgi.com Subject: Re: Proposed change of kdb key on serial console In-reply-to: Your message of "Wed, 02 Jul 2003 08:33:29 EST." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 02 Jul 2003 23:57:56 +1000 Message-ID: <5892.1057154276@ocs3.intra.ocs.com.au> X-archive-position: 401 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Wed, 2 Jul 2003 08:33:29 -0500, Will Schmidt wrote: >Agreeing with Keith's observation, the PPC64 implementation has been using >the string "startKDB" for quite some time. (more than a year). Strange that none of the ppc kdb code has appeared on the kdb mailing list. >It would be nice if the "make *config" tools would support setting that >string, so this could be a config option instead of hard-coded. Alas, CML1 cannot cope with special characters. CML2 could have, but politics killed CML2. From slurndal@verisign.com Wed Jul 2 07:40:17 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 07:40:24 -0700 (PDT) Received: from peacock.verisign.com (peacock.verisign.com [65.205.251.73]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62EeH2x003203 for ; Wed, 2 Jul 2003 07:40:17 -0700 Received: from mou1wnexc02.verisign.com (verisign.com [65.205.251.54]) by peacock.verisign.com (8.12.9/) with ESMTP id h62EeFch019515; Wed, 2 Jul 2003 07:40:15 -0700 (PDT) Received: from slurndal-lnx.verisign.com ([10.25.27.123]) by mou1wnexc02.verisign.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id LYL073HY; Wed, 2 Jul 2003 07:40:15 -0700 Received: (from slurndal@localhost) by slurndal-lnx.verisign.com (8.9.3/8.9.3) id HAA24715; Wed, 2 Jul 2003 07:40:48 -0700 From: s lurndal Message-Id: <200307021440.HAA24715@slurndal-lnx.verisign.com> Subject: Re: Proposed change of kdb key on serial console To: sonic.zhang@intel.com (Zhang, Sonic) Date: Wed, 2 Jul 2003 07:40:48 -0700 (PDT) Cc: kaos@sgi.com (Keith Owens), kdb@oss.sgi.com In-Reply-To: from "Zhang, Sonic" at Jul 02, 2003 10:53:51 AM X-Mailer: ELM [version 2.5 PL5] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-archive-position: 402 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: slurndal@verisign.com Precedence: bulk X-list: kdb > > Hi Keith, > > I think it will cost too many keys to trap into KDB from a serial = > console. > > What do you think about "ctrl-=" or "ctrl-\"? ctrl-\ is used by C-Kermit as an escape character (I use C-Kermit as the terminal emulator when using serial KDB). In this case, I prefer ctrl-=. scott From Thomas.Duffy.99@alumni.brown.edu Wed Jul 2 08:51:51 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 08:52:02 -0700 (PDT) Received: from nwkea-mail-1.sun.com (nwkea-mail-1.sun.com [192.18.42.13]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62Fpo2x004070 for ; Wed, 2 Jul 2003 08:51:51 -0700 Received: from phys-bos-2 ([129.146.14.24]) by nwkea-mail-1.sun.com (8.12.9/8.12.9) with ESMTP id h62FpjKo023258 for ; Wed, 2 Jul 2003 08:51:45 -0700 (PDT) Received: from biznatch (biznatch.Eng.Sun.COM [129.146.95.110]) by bos-mail1.sfbay.sun.com (iPlanet Messaging Server 5.2 HotFix 1.16 (built May 14 2003)) with ESMTP id <0HHE00AIXMQ9YP@bos-mail1.sfbay.sun.com> for kdb@oss.sgi.com; Wed, 02 Jul 2003 08:51:45 -0700 (PDT) Date: Wed, 02 Jul 2003 08:51:45 -0700 From: Thomas Duffy Subject: Re: Proposed change of kdb key on serial console In-reply-to: <4102.1057115400@kao2.melbourne.sgi.com> To: kdb@oss.sgi.com Message-id: <1057161104.26117.7.camel@biznatch> MIME-version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2) Content-type: multipart/signed; boundary="=-IvlVZu0sBANyTTUXEi+h"; protocol="application/pgp-signature"; micalg=pgp-sha1 References: <4102.1057115400@kao2.melbourne.sgi.com> X-archive-position: 403 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: Thomas.Duffy.99@alumni.brown.edu Precedence: bulk X-list: kdb --=-IvlVZu0sBANyTTUXEi+h Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2003-07-01 at 20:10, Keith Owens wrote: > On Wed, 2 Jul 2003 10:53:51 +0800,=20 > "Zhang, Sonic" wrote: > > I think it will cost too many keys to trap into KDB from a serial > >console. > > > > What do you think about "ctrl-=3D" or "ctrl-\"? >=20 > That is deliberate, it should take more effort to get into the debugger > than just hitting a single character. SGI have been using KDB > internally for several months and it has not caused any problems. ctrl-a is also used in screen as the default escape, so I vote for getting rid of ctrl-a as the kdb break sequence... Under Solaris, you hit Stop-A on a keyboard or send a break signal on a serial line to break into the debugger (if it is on, normally this would bring you to the prom). I have been meaning to implement the same thing on the sparc64 port. what is the problem with using the serial break to get into kdb? -tduffy --=20 Thomas Duffy --=-IvlVZu0sBANyTTUXEi+h Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQA/Av+QdY502zjzwbwRAl3wAJ9jcT8LkXZ4gsQ4A6Jf2PmoTbwQoACgkCJx eBWakTIjzUTxMQZL+jbNYao= =iRfr -----END PGP SIGNATURE----- --=-IvlVZu0sBANyTTUXEi+h-- From Thomas.Duffy.99@alumni.brown.edu Wed Jul 2 08:53:52 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 08:53:56 -0700 (PDT) Received: from brmea-mail-3.sun.com (brmea-mail-3.Sun.COM [192.18.98.34]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62Frp2x004088 for ; Wed, 2 Jul 2003 08:53:52 -0700 Received: from phys-bos-2 ([129.146.14.24]) by brmea-mail-3.sun.com (8.12.9/8.12.9) with ESMTP id h62Frp1J017247 for ; Wed, 2 Jul 2003 09:53:51 -0600 (MDT) Received: from biznatch (biznatch.Eng.Sun.COM [129.146.95.110]) by bos-mail1.sfbay.sun.com (iPlanet Messaging Server 5.2 HotFix 1.16 (built May 14 2003)) with ESMTP id <0HHE00AKIMTRYP@bos-mail1.sfbay.sun.com> for kdb@oss.sgi.com; Wed, 02 Jul 2003 08:53:51 -0700 (PDT) Date: Wed, 02 Jul 2003 08:53:51 -0700 From: Thomas Duffy Subject: Re: Proposed change of kdb key on serial console In-reply-to: <200307021440.HAA24715@slurndal-lnx.verisign.com> To: kdb@oss.sgi.com Message-id: <1057161231.26117.10.camel@biznatch> MIME-version: 1.0 X-Mailer: Ximian Evolution 1.4.0 (1.4.0-2) Content-type: multipart/signed; boundary="=-dYP3tCKWIwsKcb/FixBi"; protocol="application/pgp-signature"; micalg=pgp-sha1 References: <200307021440.HAA24715@slurndal-lnx.verisign.com> X-archive-position: 404 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: Thomas.Duffy.99@alumni.brown.edu Precedence: bulk X-list: kdb --=-dYP3tCKWIwsKcb/FixBi Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2003-07-02 at 07:40, s lurndal wrote: > >=20 > > Hi Keith, > >=20 > > I think it will cost too many keys to trap into KDB from a serial =3D > > console. > >=20 > > What do you think about "ctrl-=3D" or "ctrl-\"? >=20 > ctrl-\ is used by C-Kermit as an escape character (I use C-Kermit as > the terminal emulator when using serial KDB). In this case, I prefer > ctrl-=3D. ctrl-\ is also as the escape sequence in the console program I use, so I am against this. -tduffy --=20 Thomas Duffy --=-dYP3tCKWIwsKcb/FixBi Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQA/AwAOdY502zjzwbwRAueyAJ0WSOQj5xXqG2bxpXe/ft/syFigiwCgmbPA F1NTSqMjljPGksSVocL/TmA= =e5lH -----END PGP SIGNATURE----- --=-dYP3tCKWIwsKcb/FixBi-- From kaos@sgi.com Wed Jul 2 09:35:51 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 09:35:59 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62GZm2x005240 for ; Wed, 2 Jul 2003 09:35:50 -0700 Received: (qmail 24403 invoked from network); 2 Jul 2003 16:35:47 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 2 Jul 2003 16:35:47 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 850FBD84FE; Thu, 3 Jul 2003 02:35:45 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 824DD912D6 for ; Thu, 3 Jul 2003 02:35:45 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com Subject: Re: Proposed change of kdb key on serial console In-reply-to: Your message of "Wed, 02 Jul 2003 08:51:45 MST." <1057161104.26117.7.camel@biznatch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 03 Jul 2003 02:35:40 +1000 Message-ID: <8251.1057163740@ocs3.intra.ocs.com.au> X-archive-position: 405 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Wed, 02 Jul 2003 08:51:45 -0700, Thomas Duffy wrote: >what is the problem with using the serial break to get into kdb? It is already used for sysrq. From ps41@hotmail.com Wed Jul 2 11:56:45 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 11:56:48 -0700 (PDT) Received: from hotmail.com (bay1-f136.bay1.hotmail.com [65.54.245.136]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62Iuj2x007707 for ; Wed, 2 Jul 2003 11:56:45 -0700 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Wed, 2 Jul 2003 11:56:39 -0700 Received: from 136.162.74.102 by by1fd.bay1.hotmail.msn.com with HTTP; Wed, 02 Jul 2003 18:56:39 GMT X-Originating-IP: [136.162.74.102] X-Originating-Email: [ps41@hotmail.com] From: "Parag Sharma" To: kdb@oss.sgi.com Subject: kdb on x86-64 for kernel 2.4.21 Date: Wed, 02 Jul 2003 10:56:39 -0800 Mime-Version: 1.0 Content-Type: text/plain; format=flowed Message-ID: X-OriginalArrivalTime: 02 Jul 2003 18:56:39.0880 (UTC) FILETIME=[ABA59480:01C340CB] X-archive-position: 406 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: ps41@hotmail.com Precedence: bulk X-list: kdb Hi, Is kdb supported on x86-64 arch for 2.4.21 kernel? If yes, then any gotchas/HOWTO that one needs to be aware of? Any help appreciated. Thanks Parag _________________________________________________________________ MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus From kaos@sgi.com Wed Jul 2 16:58:52 2003 Received: with ECARTIS (v1.0.0; list kdb); Wed, 02 Jul 2003 16:58:55 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h62Nwn2x012392 for ; Wed, 2 Jul 2003 16:58:51 -0700 Received: (qmail 27589 invoked from network); 2 Jul 2003 23:58:47 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 2 Jul 2003 23:58:47 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id A2859D84FE; Thu, 3 Jul 2003 09:58:45 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 9F9F7912D6; Thu, 3 Jul 2003 09:58:45 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: "Parag Sharma" Cc: kdb@oss.sgi.com Subject: Re: kdb on x86-64 for kernel 2.4.21 In-reply-to: Your message of "Wed, 02 Jul 2003 10:56:39 PST." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 03 Jul 2003 09:58:40 +1000 Message-ID: <13052.1057190320@ocs3.intra.ocs.com.au> X-archive-position: 407 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Wed, 02 Jul 2003 10:56:39 -0800, "Parag Sharma" wrote: >Is kdb supported on x86-64 arch for 2.4.21 kernel? Ask the x86-64 developers. Nobody has sent me any patches for x86-64. From brux@egalis.frec.bull.fr Thu Jul 3 01:47:23 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 03 Jul 2003 01:47:30 -0700 (PDT) Received: from ecbull20.frec.bull.fr (ecbull20.frec.bull.fr [129.183.4.3]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h638lL2x022352 for ; Thu, 3 Jul 2003 01:47:23 -0700 Received: from egalis.frec.bull.fr (egalis.frec.bull.fr [129.183.10.1]) by ecbull20.frec.bull.fr (8.9.2/8.9.1) with ESMTP id KAA16560; Thu, 3 Jul 2003 10:48:08 +0200 Received: (from brux@localhost) by egalis.frec.bull.fr (AIX4.3/8.9.3/8.9.3) id KAA340528; Thu, 3 Jul 2003 10:48:04 +0200 From: Xavier Bru MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Message-ID: <16131.60868.142840.821257@egalis.frec.bull.fr> Date: Thu, 3 Jul 2003 10:48:04 +0200 (DFT) To: Keith Owens cc: kdb@oss.sgi.com Subject: kdb v4.1 for 2.5.72 ia64 X-Mailer: VM 6.72 under 21.1 "20 Minutes to Nikko" XEmacs Lucid (patch 2) Reply-To: Xavier.Bru@bull.net X-MIME-Autoconverted: from 8bit to quoted-printable by ecbull20.frec.bull.fr id KAA16560 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id h638lL2x022352 X-archive-position: 408 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: Xavier.Bru@bull.net Precedence: bulk X-list: kdb Hello Keith & all, I put on: http://www.bullfreeware.com/linux/kdb patches that work on our IA64 platform with kernel 2.5.72. It is based on kdb v4.1 ia64 for 2.4.20, and the initial port you have done of kdb i386 on 2.5.45. The result is far from perfect. Major restrictions are: . only arch ia64 support. . no keyboard support (debug through serial line only: - new ia64 platforms have no AT keyboard. - the kdb USB keyboard driver developped by Sebastien Lelarge still needs to be ported on new USB code. . breakpoints still deadlock in SMP. . no section, rmmod commands. . mca/init not tested. What should work: . parameters support. . kernel & module symbols. . new tpa command that translates virtual to physical addresses (ia64). I hope this can be help, as kdb is really mandatory for 2.5. -- Sincères salutations. _____________________________________________________________________ Xavier BRU BULL ISD/R&D/INTEL office: FREC B1-422 tel : +33 (0)4 76 29 77 45 http://www-frec.bull.fr fax : +33 (0)4 76 29 77 70 mailto:Xavier.Bru@bull.net addr: BULL, 1 rue de Provence, BP 208, 38432 Echirolles Cedex, FRANCE _____________________________________________________________________ From quintela@mandrakesoft.com Thu Jul 3 04:31:46 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 03 Jul 2003 04:31:58 -0700 (PDT) Received: from mail.trasno.org (cm19173.red.mundo-r.com [213.60.19.173]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h63BVW2x027395 for ; Thu, 3 Jul 2003 04:31:35 -0700 Received: by mail.trasno.org (Postfix, from userid 1001) id 5E48275F; Thu, 3 Jul 2003 13:03:03 +0200 (CEST) To: Keith Owens Cc: kdb@oss.sgi.com Subject: Re: Proposed change of kdb key on serial console X-Url: http://people.mandrakesoft.com/~quintela From: Juan Quintela In-Reply-To: <3545.1057112984@kao2.melbourne.sgi.com> (Keith Owens's message of "Wed, 02 Jul 2003 12:29:44 +1000") References: <3545.1057112984@kao2.melbourne.sgi.com> Date: Thu, 03 Jul 2003 13:03:03 +0200 Message-ID: <86d6grlvo8.fsf@trasno.mitica> User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-archive-position: 409 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: quintela@mandrakesoft.com Precedence: bulk X-list: kdb >>>>> "keith" == Keith Owens writes: keith> Currently you invoke kdb on a serial console by ctrl-A. This causes keith> problems for people using emacs bindings in bash, ctrl-A is start of keith> line. It is very annoying when typing on the serial console to keith> suddenly drop into kdb without intending to. keith> In the next major release of kdb, the serial console sequence will keith> change to KDB, in upper case. You can revert to ctrl-A by keith> changing kdb_serial_str in drivers/char/serial.c. Complain now if this keith> will cause any major problems. I liked it, just now I have: - C-a used by emacs bindings - C-a used by screen - C-a useb by kdb and that is not good :( Later, Juan. -- In theory, practice and theory are the same, but in practice they are different -- Larry McVoy From brux@egalis.frec.bull.fr Thu Jul 3 10:06:11 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 03 Jul 2003 10:06:19 -0700 (PDT) Received: from ecbull20.frec.bull.fr (ecbull20.frec.bull.fr [129.183.4.3]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h63H662x007570 for ; Thu, 3 Jul 2003 10:06:08 -0700 Received: from egalis.frec.bull.fr (egalis.frec.bull.fr [129.183.10.1]) by ecbull20.frec.bull.fr (8.9.2/8.9.1) with ESMTP id TAA06804; Thu, 3 Jul 2003 19:06:57 +0200 Received: (from brux@localhost) by egalis.frec.bull.fr (AIX4.3/8.9.3/8.9.3) id TAA194314; Thu, 3 Jul 2003 19:06:49 +0200 From: Xavier Bru MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16132.25256.852644.662461@egalis.frec.bull.fr> Date: Thu, 3 Jul 2003 19:06:48 +0200 (DFT) To: jim.houston@comcast.net Cc: Xavier.Bru@bull.net, kdb@oss.sgi.com, kaos@sgi.com Subject: Re: kdb v4.3 for linux-2.5.73 i386 In-Reply-To: <3F040B81.67EAAA87@comcast.net> References: <3F040B81.67EAAA87@comcast.net> X-Mailer: VM 6.72 under 21.1 "20 Minutes to Nikko" XEmacs Lucid (patch 2) Reply-To: Xavier.Bru@bull.net X-archive-position: 410 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: Xavier.Bru@bull.net Precedence: bulk X-list: kdb Hello Jim Thanks for your answer. I fully agree that we need a common kdb for 2.5, as it is currently for 2.4. My goal was just to provide it as we needed it for our 2.5 debugging. I just would be very happy if it can be of some help for anybody who miss it on 2.5 ia64, or if some piece of code is of any interest for the final version. I will have very few time to help until end august, but if I find some, I will try to compare our common parts. Thanks Xavier Jim Houston writes: > Hi Keith, Xavier, Everyone, > > I recently updated my patch to support kdb on i386 for recent linux-2.5 > kernels. It is available here: > > http://www.ccur.com/realtime/oss > > Xavier, I saw the announcement for your patch for ia64. Perhaps we should > try to combine our efforts on the common portion of kdb? > > Jim Houston - Concurrent Computer Corp. Xavier Bru writes: > Hello Keith & all, > > I put on: > http://www.bullfreeware.com/linux/kdb > patches that work on our IA64 platform with kernel 2.5.72. > > It is based on kdb v4.1 ia64 for 2.4.20, and the initial port you have > done of kdb i386 on 2.5.45. > > The result is far from perfect. > Major restrictions are: > . only arch ia64 support. > . no keyboard support (debug through serial line only: > - new ia64 platforms have no AT keyboard. > - the kdb USB keyboard driver developped by Sebastien Lelarge > still needs to be ported on new USB code. > . breakpoints still deadlock in SMP. > . no section, rmmod commands. > . mca/init not tested. > > What should work: > . parameters support. > . kernel & module symbols. > . new tpa command that translates virtual to physical addresses (ia64). > > I hope this can be help, as kdb is really mandatory for 2.5. > -- From vishwas@eternal-systems.com Thu Jul 3 12:58:33 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 03 Jul 2003 12:58:39 -0700 (PDT) Received: from alpha.eternal-systems.com ([207.175.35.50]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h63JwU2x011623 for ; Thu, 3 Jul 2003 12:58:33 -0700 Received: from eternal-systems.com (dell8 [192.168.168.43]) by alpha.eternal-systems.com (8.12.9/8.12.9) with ESMTP id h63JwP77027486 for ; Thu, 3 Jul 2003 12:58:25 -0700 (PDT) Message-ID: <3F048BFF.5000400@eternal-systems.com> Date: Thu, 03 Jul 2003 13:03:11 -0700 From: Vishwas Raman User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003 X-Accept-Language: en-us, en MIME-Version: 1.0 To: kdb@oss.sgi.com Subject: Newbie question Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 411 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: vishwas@eternal-systems.com Precedence: bulk X-list: kdb Hello all, I am writing in the hope that I will get answers to a few questions that I have. First up, I am extremely new with kdb and started playing with it just a couple of days back. This mailing list's archives maintained by sgi do not work. All the links in the archives page lead me to a page not found page. Can I get hold of the archives someplace else? If not, can I request sgi to please fix the problem and let users see the archives, before they want to mail their questions to this list. Now my actual question. I am working with a 2.4.20 kernel on a red hat 8 box. I downloaded the corresponding kdb patches and applied them on a clean kernel source tree. I then configured the kernel and turned on the "Built-in kernel debugger support" and the "Compile the kernel with frame pointers" options. This in effect has turned on the CONFIG_KDB and the CONFIG_FRAME_POINTER flags in the .config file. I was able to build and install that kernel with no problems. I then start kdb in a virtual terminal and started playing around with the various commands. One of the commands I tried was "md". > md printk 1 0xc01173c0 57e58955 ec8035356 2ee0a120 c085c032 and some junk after this I am just wondering what the junk is. I thought there should be only 5 entries per row. why is the junk occuring? Is it some option that I have not set correctly while setting up kdb? I would appreciate any help... thanks. -- Vishwas Raman Software Engineer, Eternal Systems, Inc, 5290 Overpass Rd, Bldg D, Santa Barbara. CA 93111 Email: vishwas@eternal-systems.com Tel: (805) 696-9051 x246 Fax: (805) 696-9083 URL: http://www.eternal-systems.com/ From jim.houston@comcast.net Thu Jul 3 17:29:02 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 03 Jul 2003 17:29:05 -0700 (PDT) Received: from rwcrmhc11.comcast.net (rwcrmhc11.comcast.net [204.127.198.35]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h640T22x017919 for ; Thu, 3 Jul 2003 17:29:02 -0700 Received: from comcast.net (h00e098094f32.ne.client2.attbi.com[24.60.234.83](untrusted sender)) by comcast.net (rwcrmhc11) with SMTP id <2003070310550501300bm6i6e> (Authid: houston.jim); Thu, 3 Jul 2003 10:55:05 +0000 Message-ID: <3F040B81.67EAAA87@comcast.net> Date: Thu, 03 Jul 2003 06:54:57 -0400 From: Jim Houston Reply-To: jim.houston@comcast.net X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.17 i686) X-Accept-Language: en MIME-Version: 1.0 To: Xavier.Bru@bull.net, kdb@oss.sgi.com, kaos@sgi.com Subject: kdb v4.3 for linux-2.5.73 i386 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-archive-position: 412 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: jim.houston@comcast.net Precedence: bulk X-list: kdb Hi Keith, Xavier, Everyone, I recently updated my patch to support kdb on i386 for recent linux-2.5 kernels. It is available here: http://www.ccur.com/realtime/oss Xavier, I saw the announcement for your patch for ia64. Perhaps we should try to combine our efforts on the common portion of kdb? Jim Houston - Concurrent Computer Corp. From eddie.dong@intel.com Thu Jul 3 20:05:15 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 03 Jul 2003 20:05:24 -0700 (PDT) Received: from caduceus.jf.intel.com (fmr06.intel.com [134.134.136.7]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6435E2x019179 for ; Thu, 3 Jul 2003 20:05:15 -0700 Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by caduceus.jf.intel.com (8.11.6p2/8.11.6/d: outer.mc,v 1.66 2003/05/22 21:17:36 rfjohns1 Exp $) with ESMTP id h642xWW14904 for ; Fri, 4 Jul 2003 02:59:32 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by petasus.jf.intel.com (8.11.6p2/8.11.6/d: inner.mc,v 1.35 2003/05/22 21:18:01 rfjohns1 Exp $) with SMTP id h6430Rf00351 for ; Fri, 4 Jul 2003 03:00:27 GMT Received: from orsmsx332.amr.corp.intel.com ([192.168.65.60]) by orsmsxvs040.jf.intel.com (NAVGW 2.5.2.11) with SMTP id M2003070320162014481 ; Thu, 03 Jul 2003 20:16:20 -0700 Received: from orsmsx312.amr.corp.intel.com ([192.168.65.62]) by orsmsx332.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.5329); Thu, 3 Jul 2003 20:05:08 -0700 Received: from pdsmsx403.ccr.corp.intel.com ([172.16.12.55]) by orsmsx312.amr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.5329); Thu, 3 Jul 2003 20:05:08 -0700 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 Subject: RE: Announce: kdb v4.3 is available for kernels 2.4.20, 2.4.21 Date: Fri, 4 Jul 2003 11:05:05 +0800 Message-ID: <37FBBA5F3A361C41AB7CE44558C3448E011DF6E1@pdsmsx403.ccr.corp.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Announce: kdb v4.3 is available for kernels 2.4.20, 2.4.21 Thread-Index: AcM2/D8MRprqzv4WT462zba33cHroAK2sNWw From: "Dong, Eddie" To: "Keith Owens" , X-OriginalArrivalTime: 04 Jul 2003 03:05:08.0581 (UTC) FILETIME=[13683150:01C341D9] Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id h6435E2x019179 X-archive-position: 413 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: eddie.dong@intel.com Precedence: bulk X-list: kdb Keith: I encountered an issue for ISR routine debug, the situation is: 1: When kdb is entered from keyboard, probably the IRQ is enabled when it enter kdb(). Then if I set bp at do_IRQ and leave kdb, the debug may be re-entered as soon as kdba_restoreint(..) is completed in kdb(). That will cause kdb to be hanged because of LEAVING flag not cleared correctly. 2: Even when kdb() is entered from former debug event, if I set bp at do_IRQ and leave, the debug may be re-entered within local_bh_enable() due to its IRQ enabled within this function, thus same problem existed like above. So what is your suggestion about this problem? If I don't make mistake, probably we should move this 2 items to the end of function kdb() and make a new release. Eddie From vamsi@in.ibm.com Tue Jul 8 00:58:14 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 08 Jul 2003 00:58:28 -0700 (PDT) Received: from e5.ny.us.ibm.com (e5.ny.us.ibm.com [32.97.182.105]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h687wC2x017252 for ; Tue, 8 Jul 2003 00:58:13 -0700 Received: from northrelay02.pok.ibm.com (northrelay02.pok.ibm.com [9.56.224.150]) by e5.ny.us.ibm.com (8.12.9/8.12.2) with ESMTP id h687w4td216936 for ; Tue, 8 Jul 2003 03:58:04 -0400 Received: from vamsiks.in.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay02.pok.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h687vxid086910; Tue, 8 Jul 2003 03:58:01 -0400 Received: (from vamsi@localhost) by vamsiks.in.ibm.com (8.11.6/8.11.2) id h688Kge15582; Tue, 8 Jul 2003 13:50:42 +0530 Date: Tue, 8 Jul 2003 13:50:42 +0530 From: "Vamsi Krishna S ." To: kdb Cc: richard Subject: [rfc] [patch] commands to display x86 hardware structures Message-ID: <20030708135042.A15547@in.ibm.com> Reply-To: vamsi@in.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i X-archive-position: 414 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: vamsi@in.ibm.com Precedence: bulk X-list: kdb Hi Keith, Here is a patch (against 2.4.21+kdb-4.3 latest) to add the following commands: - rdv: display all processor registers. Special system registers are interpreted and their contents displayed verbosely. This should have been "rd v", but as I wanted to keep this seperate, I had to introduce a new command. - gdt: display the contents of GDT - idt: display the contents of IDT - ldt: display the contents of the current LDT - ldtp: display the contents of LDT of the kdb_current task (All process-specific commands apply to the process selected with the "pid" command.) - ptex: display page table entries (pgd/pte) for the given address. If a user address is given, it is looked up in the context of the process previously selected with "pid" command. I realise that "pte" command is present in kdbm_vm.c, please take a look at this too. Eventually, we will need to keep only one of them. All commands except "rdv" can be repeated. Please review and comment, especially on: - kdbm_x86.c file header, if you want any changes there - whether "rdv" should be turned into "rd v" - needs moving a lot of code from kdbm_x86.c to kdbasupport.c - syntax of the commands and the format of their output - whether "ptex" should be removed in favour of existing "pte" - exported symbols (kdb_current_task and kdba_dumpregs). Thanks, Vamsi. -- Vamsi Krishna S. IBM Software Lab, Bangalore. Ph: +91 80 5044959 Internet: vamsi@in.ibm.com -- [vamsi@vamsiks] ~$ diffstat /patches/kdb-hwtables-2421-43-4.patch include/asm-i386/kdbprivate.h | 6 kdb/kdbmain.c | 2 kdb/modules/Makefile | 3 kdb/modules/kdbm_x86.c | 912 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 923 insertions(+) -- diff -urNp -X /home/vamsi/.dontdiff 21-kdb43-pure/include/asm-i386/kdbprivate.h 21-kdb43/include/asm-i386/kdbprivate.h --- 21-kdb43-pure/include/asm-i386/kdbprivate.h 2003-07-07 13:48:55.000000000 +0530 +++ 21-kdb43/include/asm-i386/kdbprivate.h 2003-07-08 11:32:00.000000000 +0530 @@ -85,6 +85,7 @@ extern kdbhard_bp_t kdb_hardbreaks[/* KD #define DR6_B2 0x00000004 #define DR6_B1 0x00000002 #define DR6_B0 0x00000001 +#define DR6_DR_MASK 0x0000000F #define DR7_RW_VAL(dr, drnum) \ (((dr) >> (16 + (4 * (drnum)))) & 0x3) @@ -152,6 +153,11 @@ extern kdbhard_bp_t kdb_hardbreaks[/* KD #define DR7_GE 0x00000200 /* Global exact */ #define DR7_LE 0x00000100 /* Local exact */ +#define DR_TYPE_EXECUTE 0x0 +#define DR_TYPE_WRITE 0x1 +#define DR_TYPE_IO 0x2 +#define DR_TYPE_RW 0x3 + extern kdb_machreg_t kdba_getdr6(void); extern void kdba_putdr6(kdb_machreg_t); diff -urNp -X /home/vamsi/.dontdiff 21-kdb43-pure/kdb/kdbmain.c 21-kdb43/kdb/kdbmain.c --- 21-kdb43-pure/kdb/kdbmain.c 2003-07-07 13:48:48.000000000 +0530 +++ 21-kdb43/kdb/kdbmain.c 2003-07-07 14:42:33.000000000 +0530 @@ -3637,3 +3637,5 @@ EXPORT_SYMBOL(kdb_printf); EXPORT_SYMBOL(kdb_symbol_print); EXPORT_SYMBOL(kdb_notifier_list); EXPORT_SYMBOL(kdb_enter_debugger); +EXPORT_SYMBOL(kdb_current_task); +EXPORT_SYMBOL(kdba_dumpregs); diff -urNp -X /home/vamsi/.dontdiff 21-kdb43-pure/kdb/modules/kdbm_x86.c 21-kdb43/kdb/modules/kdbm_x86.c --- 21-kdb43-pure/kdb/modules/kdbm_x86.c 1970-01-01 05:30:00.000000000 +0530 +++ 21-kdb43/kdb/modules/kdbm_x86.c 2003-07-08 11:47:41.000000000 +0530 @@ -0,0 +1,912 @@ +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Further, this software is distributed without any warranty that it is + * free of the rightful claim of any third person regarding infringement + * or the like. Any license provided herein, whether implied or + * otherwise, applies only to this software file. Patent licenses, if + * any, provided herein do not apply to combinations of this program with + * other software, or any other product whatsoever. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. + * + * Author: Vamsi Krishna S. + * (C) 2003 IBM Corporation. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +MODULE_AUTHOR("Vamsi Krishna S./IBM"); +MODULE_DESCRIPTION("x86 specific information (gdt/idt/ldt/page tables)"); +MODULE_LICENSE("GPL"); + +typedef struct _kdb_desc { + unsigned short limit; + unsigned short base; + unsigned char base_h1; + unsigned char type:4; + unsigned char seg:1; + unsigned char dpl:2; + unsigned char present:1; + unsigned char limit_h:4; + unsigned char avl:2; + unsigned char db:1; + unsigned char g:1; /* granularity */ + unsigned char base_h2; +} kdb_desc_t; + +typedef struct _kdb_gate_desc { + unsigned short offset; + unsigned short sel; + unsigned char res; + unsigned char type:4; + unsigned char seg:1; + unsigned char dpl:2; + unsigned char present:1; + unsigned short offset_h; +} kdb_gate_desc_t; + +#define KDB_SEL_MAX 0x2000 +#define KDB_IDT_MAX 0x100 +#define KDB_SYS_DESC_TYPE_TSS 0x01 +#define KDB_SYS_DESC_TYPE_LDT 0x02 +#define KDB_SYS_DESC_TYPE_TSSB 0x03 +#define KDB_SYS_DESC_TYPE_CALLG 0x04 +#define KDB_SYS_DESC_TYPE_TASKG 0x05 +#define KDB_SYS_DESC_TYPE_INTG 0x06 +#define KDB_SYS_DESC_TYPE_TRAPG 0x07 + +#define KDB_SYS_DESC_TYPE_TSS32 0x09 +#define KDB_SYS_DESC_TYPE_TSS32B 0x0b +#define KDB_SYS_DESC_TYPE_CALLG32 0x0c +#define KDB_SYS_DESC_TYPE_INTG32 0x0e +#define KDB_SYS_DESC_TYPE_TRAPG32 0x0f + +#define KDB_SYS_DESC_OFFSET(d) ((unsigned long)(d->offset_h << 16 | d->offset)) +#define KDB_SYS_DESC_CALLG_COUNT(d) ((unsigned int)(d->res & 0x0F)) + +#define KDB_SEG_DESC_TYPE_CODE 0x08 +#define KDB_SEG_DESC_TYPE_CODE_R 0x02 +#define KDB_SEG_DESC_TYPE_DATA_W 0x02 +#define KDB_SEG_DESC_TYPE_CODE_C 0x02 /* conforming */ +#define KDB_SEG_DESC_TYPE_DATA_D 0x02 /* expand-down */ +#define KDB_SEG_DESC_TYPE_A 0x01 /* accessed */ + +#define KDB_SEG_DESC_BASE(d) ((unsigned long)(d->base_h2 << 24 | d->base_h1 << 16 | d->base)) +#define _LIMIT(d) ((unsigned long)(d->limit_h << 16 | d->limit)) +#define KDB_SEG_DESC_LIMIT(d) (d->g ? ((_LIMIT(d)+1) << 12) -1 : _LIMIT(d)) + +/* helper functions to display system registers in verbose mode */ +static void display_gdtr(void) +{ + struct Xgt_desc_struct gdtr; + + __asm__ __volatile__ ("sgdt %0\n\t" : "=m"(gdtr)); + kdb_printf("gdtr.address = 0x%8.8lx, gdtr.size = 0x%x\n", gdtr.address, gdtr.size); + + return; +} + +static void display_ldtr(void) +{ + struct Xgt_desc_struct gdtr; + unsigned long ldtr; + + __asm__ __volatile__ ("sgdt %0\n\t" : "=m"(gdtr)); + __asm__ __volatile__ ("sldt %0\n\t" : "=m"(ldtr)); + + kdb_printf("ldtr = 0x%8.8lx ", ldtr); + + if (ldtr < gdtr.size) { + kdb_desc_t *ldt_desc = (kdb_desc_t *)(gdtr.address + (ldtr & ~7)); + kdb_printf("base=0x%8.8lx, limit=0x%8.8lx\n", KDB_SEG_DESC_BASE(ldt_desc), + KDB_SEG_DESC_LIMIT(ldt_desc)); + } else { + kdb_printf("invalid\n"); + } + + return; +} + +static void display_idtr(void) +{ + struct Xgt_desc_struct idtr; + __asm__ __volatile__ ("sidt %0\n\t" : "=m"(idtr)); + kdb_printf("idtr.address = 0x%8.8lx, idtr.size = 0x%x\n", idtr.address, idtr.size); + return; +} + +static char *cr0_flags[] = { + "pe", "mp", "em", "ts", "et", "ne", NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + "wp", NULL, "am", NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, "nw", "cd", "pg"}; + +static void display_cr0(void) +{ + kdb_machreg_t cr0; + int i; + __asm__ ("movl %%cr0,%0\n\t":"=r"(cr0)); + kdb_printf("cr0=0x%08lx ", cr0); + for (i = 0; i < 32; i++) { + if (test_bit(i, &cr0) && cr0_flags[i]) + kdb_printf("%s ", cr0_flags[i]); + } + kdb_printf("\n"); + return; +} + +static void display_cr3(void) +{ + kdb_machreg_t cr3; + __asm__ ("movl %%cr3,%0\n\t":"=r"(cr3)); + kdb_printf("cr3 = 0x%08lx ", cr3); + if (cr3 & 0x08) + kdb_printf("pwt "); + if (cr3 & 0x10) + kdb_printf("pcd "); + kdb_printf("pgdir=%8.8lx\n", cr3 & PAGE_MASK); + return; +} + +static char *cr4_flags[] = { + "vme", "pvi", "tsd", "de", "pse", "pae", "mce", "pge", "pce"}; + +static void display_cr4(void) +{ + kdb_machreg_t cr4; + int i; + __asm__ ("movl %%cr4,%0\n\t":"=r"(cr4)); + kdb_printf("cr4 = 0x%08lx ", cr4); + for (i = 0; i < 9; i++) { + if (test_bit(i, &cr4)) + kdb_printf("%s ", cr4_flags[i]); + } + kdb_printf("\n"); + return; +} + +static char *dr_type_name[] = { "exec", "write", "io", "rw" }; + +static void display_dr_status(int nr, int enabled, int local, int len, int type) +{ + if (!enabled) { + kdb_printf("\tdebug register %d: not enabled\n", nr); + return; + } + + kdb_printf("\tdebug register %d: %s, len = %d, type = %s\n", + nr, + local? " local":"global", + len, + dr_type_name[type]); +} + +static void display_dr(void) +{ + kdb_machreg_t dr0, dr1, dr2, dr3, dr6, dr7; + int dbnr, set; + + __asm__ ("movl %%db0,%0\n\t":"=r"(dr0)); + __asm__ ("movl %%db1,%0\n\t":"=r"(dr1)); + __asm__ ("movl %%db2,%0\n\t":"=r"(dr2)); + __asm__ ("movl %%db3,%0\n\t":"=r"(dr3)); + __asm__ ("movl %%db6,%0\n\t":"=r"(dr6)); + __asm__ ("movl %%db7,%0\n\t":"=r"(dr7)); + + kdb_printf("dr0 = 0x%08lx dr1 = 0x%08lx dr2 = 0x%08lx dr3 = 0x%08lx\n", + dr0, dr1, dr2, dr3); + kdb_printf("dr6 = 0x%08lx ", dr6); + dbnr = dr6 & DR6_DR_MASK; + if (dbnr) { + int nr; + switch(dbnr) { + case 1: + nr = 0; break; + case 2: + nr = 1; break; + case 4: + nr = 2; break; + default: + nr = 3; break; + } + kdb_printf("debug register hit = %d", nr); + } else if (dr6 & DR_STEP) { + kdb_printf("single step"); + } else if (dr6 & DR_SWITCH) { + kdb_printf("task switch"); + } + kdb_printf("\n"); + + kdb_printf("dr7 = 0x%08lx\n", dr7); + set = DR7_L0(dr7) || DR7_G0(dr7); + display_dr_status(0, set, DR7_L0(dr7), DR7_LEN0(dr7), DR7_RW0(dr7)); + set = DR7_L1(dr7) || DR7_G1(dr7); + display_dr_status(1, set, DR7_L1(dr7), DR7_LEN1(dr7), DR7_RW1(dr7)); + set = DR7_L2(dr7) || DR7_G2(dr7); + display_dr_status(2, set, DR7_L2(dr7), DR7_LEN2(dr7), DR7_RW2(dr7)); + set = DR7_L3(dr7) || DR7_G3(dr7); + display_dr_status(3, set, DR7_L3(dr7), DR7_LEN3(dr7), DR7_RW3(dr7)); +} + +static char *set_eflags[] = { + "carry", NULL, "parity", NULL, "adjust", NULL, "zero", "sign", + "trace", "intr-on", "dir", "overflow", NULL, NULL, "nestedtask", NULL, + "resume", "vm", "align", "vif", "vip", "id", NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; + +static void display_eflags(unsigned long ef) +{ + int i, iopl; + kdb_printf("eflags = 0x%08lx ", ef); + for (i = 0; i < 22; i++) { + if (test_bit(i, &ef) && set_eflags[i]) + kdb_printf("%s ", set_eflags[i]); + } + + iopl = ((unsigned long)(ef & 0x00003000)) >> 12; + kdb_printf("iopl=%c\n", '0'+iopl); + return; +} + +static void display_tss(struct tss_struct *t) +{ + kdb_printf(" cs = %04x, eip = 0x%8.8lx\n", t->es, t->eip); + kdb_printf(" ss = %04x, esp = 0x%8.8lx\n", t->ss, t->esp); + kdb_printf(" ss0 = %04x, esp0 = 0x%8.8lx\n", t->ss0, t->esp0); + kdb_printf(" ss1 = %04x, esp1 = 0x%8.8lx\n", t->ss1, t->esp1); + kdb_printf(" ss2 = %04x, esp2 = 0x%8.8lx\n", t->ss2, t->esp2); + kdb_printf(" ldt = %04x, cr3 = 0x%8.8lx\n", t->ldt, t->__cr3); + kdb_printf(" ds = %04x, es = %04x fs = %04x gs = %04x\n", + t->ds, t->es, t->fs, t->gs); + kdb_printf(" eax = 0x%8.8lx, ebx = 0x%8.8lx ecx = 0x%8.8lx edx = 0x%8.8lx\n", + t->eax, t->ebx, t->ecx, t->edx); + kdb_printf(" esi = 0x%8.8lx, edi = 0x%8.8lx ebp = 0x%8.8lx\n", + t->esi, t->edi, t->ebp); +} + +static char *gate_desc_types[] = { + "invalid", "tss-avlb", "ldt", "tss-busy", + "callgate", "taskgate", "intgate", "trapgate", + "invalid", "tss32-avlb", "invalid", "tss32-busy", + "callgate32", "invalid", "intgate32", "trapgate32", + NULL }; + +static int +display_gate_desc(kdb_gate_desc_t * d) +{ + kdb_printf("%-11s ", gate_desc_types[d->type]); + + switch(d->type) { + case KDB_SYS_DESC_TYPE_LDT: + kdb_printf("base=0x%8.8lx limit=0x%8.8lx dpl=%d\n", + KDB_SEG_DESC_BASE(((kdb_desc_t *)d)), + KDB_SEG_DESC_LIMIT(((kdb_desc_t *)d)), d->dpl); + break; + case KDB_SYS_DESC_TYPE_TSS32: + case KDB_SYS_DESC_TYPE_TSS32B: + { + struct tss_struct *tss = (struct tss_struct *)KDB_SEG_DESC_BASE(((kdb_desc_t *)d)); + kdb_printf("base=0x%8.8lx limit=0x%8.8lx dpl=%d\n", + (unsigned long)tss, + KDB_SEG_DESC_LIMIT(((kdb_desc_t *)d)), d->dpl); + display_tss(tss); + break; + } + case KDB_SYS_DESC_TYPE_CALLG: + kdb_printf("sel=0x%4.4x off=0x%8.8lx dpl=%d wc=%d\n", + d->sel, KDB_SYS_DESC_OFFSET(d), d->dpl, + KDB_SYS_DESC_CALLG_COUNT(d)); + break; + case KDB_SYS_DESC_TYPE_CALLG32: + kdb_printf("sel=0x%4.4x off=0x%8.8lx dpl=%d dwc=%d\n", + d->sel, KDB_SYS_DESC_OFFSET(d), d->dpl, + KDB_SYS_DESC_CALLG_COUNT(d)); + break; + default: + kdb_printf("sel=0x%4.4x off=0x%8.8lx dpl=%d\n", + d->sel, KDB_SYS_DESC_OFFSET(d), d->dpl); + break; + } + + return 0; +} + +static int +display_seg_desc(kdb_desc_t * d) +{ + unsigned char type = d->type; + + if (type & KDB_SEG_DESC_TYPE_CODE) { + kdb_printf("%-7s base=0x%8.8lx limit=0x%8.8lx dpl=%d %c%c%c %s %s %s \n", + "code", + KDB_SEG_DESC_BASE(d), KDB_SEG_DESC_LIMIT(d), + d->dpl, + (type & KDB_SEG_DESC_TYPE_CODE_R)?'r':'-', + '-', 'x', + d->db ? "32b" : "16b", + (type & KDB_SEG_DESC_TYPE_A)?"ac":"", + (type & KDB_SEG_DESC_TYPE_CODE_C)?"conf":""); + } + else { + kdb_printf("%-7s base=0x%8.8lx limit=0x%8.8lx dpl=%d %c%c%c %s %s %s \n", + "data", + KDB_SEG_DESC_BASE(d), KDB_SEG_DESC_LIMIT(d), + d->dpl, + 'r', + (type & KDB_SEG_DESC_TYPE_DATA_W)?'w':'-', + '-', + d->db ? "32b" : "16b", + (type & KDB_SEG_DESC_TYPE_A)?"ac":"", + (type & KDB_SEG_DESC_TYPE_DATA_D)?"down":""); + } + + return 0; +} + +static int +kdb_parse_two_numbers(int argc, const char **argv, int *sel, int *count, int *last_sel, int *last_count) +{ + int diag; + + if (argc > 2) + return KDB_ARGCOUNT; + + kdbgetintenv("MDCOUNT", count); + + if (argc == 0) { + *sel = *last_sel; + if (*last_count) + *count = *last_count; + } else { + unsigned long val; + + if (argc >= 1) { + diag = kdbgetularg(argv[1], &val); + if (diag) + return diag; + *sel = val; + } + if (argc >= 2) { + diag = kdbgetularg(argv[2], &val); + if (diag) + return diag; + *count = (int) val; + *last_count = (int) val; + } else if (*last_count) { + *count = *last_count; + } + } + return 0; +} + +/* + * kdb_gdt + * + * This function implements the 'gdt' command. + * + * gdt [ []] + * + * Inputs: + * argc argument count + * argv argument vector + * envp environment vector + * regs registers at time kdb was entered. + * Outputs: + * None. + * Returns: + * zero for success, a kdb diagnostic if error + * Locking: + * none. + * Remarks: + */ +static int +kdb_gdt(int argc, const char **argv, const char **envp, struct pt_regs *regs) +{ + int sel = 0; + struct Xgt_desc_struct gdtr; + int diag, count = 8; + kdb_desc_t * gdt; + unsigned int max_sel; + static int last_sel = 0, last_count = 0; + + diag = kdb_parse_two_numbers(argc, argv, &sel, &count, &last_sel, &last_count); + if (diag) + return diag; + + __asm__ __volatile__ ("sgdt %0\n\t" : "=m"(gdtr)); + gdt = (kdb_desc_t *) gdtr.address; + + max_sel = (gdtr.size + 1) / sizeof(kdb_desc_t); + if (sel >= max_sel) { + sel = 0; + } + + if (sel + count > max_sel) + count = max_sel - sel; + + while (count--) { + kdb_desc_t * d = &gdt[sel]; + kdb_printf("0x%4.4x ", sel++); + + if (!d->present) { + kdb_printf("not present\n"); + continue; + } + if (d->seg) + display_seg_desc(d); + else + display_gate_desc((kdb_gate_desc_t *)d); + } + + last_sel = sel; + return 0; +} + +/* + * kdb_ldt + * + * This function implements the 'ldt' command. + * + * ldt [ []] + * + * Inputs: + * argc argument count + * argv argument vector + * envp environment vector + * regs registers at time kdb was entered. + * Outputs: + * None. + * Returns: + * zero for success, a kdb diagnostic if error + * Locking: + * none. + * Remarks: + */ +static int +kdb_ldt(int argc, const char **argv, const char **envp, struct pt_regs *regs) +{ + int sel = 0; + struct Xgt_desc_struct gdtr; + unsigned long ldtr = 0; + int diag, count = 8; + kdb_desc_t * ldt, *ldt_desc; + unsigned int max_sel; + static int last_sel = 0, last_count = 0; + + diag = kdb_parse_two_numbers(argc, argv, &sel, &count, &last_sel, &last_count); + if (diag) + return diag; + + if (strcmp(argv[0], "ldtp") == 0) { + kdb_printf("pid=%d, process=%s\n", kdb_current_task->pid, kdb_current_task->comm); + if (!kdb_current_task->mm || !kdb_current_task->mm->context.segments) { + kdb_printf("no special LDT for this process\n"); + return 0; + } + ldt = kdb_current_task->mm->context.segments; + max_sel = LDT_ENTRIES; + } else { + + /* sldt gives the GDT selector for the segment containing LDT */ + __asm__ __volatile__ ("sgdt %0\n\t" : "=m"(gdtr)); + __asm__ __volatile__ ("sldt %0\n\t" : "=m"(ldtr)); + + if (ldtr > gdtr.size+1) { + kdb_printf("invalid ldtr\n"); + return 0; + } + + ldt_desc = (kdb_desc_t *)(gdtr.address + (ldtr & ~7)); + ldt = (kdb_desc_t *) KDB_SEG_DESC_BASE(ldt_desc); + max_sel = (KDB_SEG_DESC_LIMIT(ldt_desc)+1) / sizeof(kdb_desc_t); + } + + if (sel >= max_sel) { + sel = 0; + } + + if (sel + count > max_sel) + count = max_sel - sel; + + while (count--) { + kdb_desc_t * d = &ldt[sel]; + kdb_printf("0x%4.4x ", sel++); + + if (d->seg) + display_seg_desc(d); + else + display_gate_desc((kdb_gate_desc_t *)d); + } + + last_sel = sel; + return 0; +} + +/* + * kdb_idt + * + * This function implements the 'idt' command. + * + * idt [ []] + * + * Inputs: + * argc argument count + * argv argument vector + * envp environment vector + * regs registers at time kdb was entered. + * Outputs: + * None. + * Returns: + * zero for success, a kdb diagnostic if error + * Locking: + * none. + * Remarks: + */ +static int +kdb_idt(int argc, const char **argv, const char **envp, struct pt_regs *regs) +{ + int vec = 0; + struct Xgt_desc_struct idtr; + int diag, count = 8; + kdb_gate_desc_t * idt; + unsigned int max_entries; + static int last_vec = 0, last_count = 0; + + diag = kdb_parse_two_numbers(argc, argv, &vec, &count, &last_vec, &last_count); + if (diag) + return diag; + + __asm__ __volatile__ ("sidt %0\n\t" : "=m"(idtr)); + idt = (kdb_gate_desc_t *) idtr.address; + + max_entries = (idtr.size+1) / sizeof(kdb_gate_desc_t); + if (vec >= max_entries) { + vec = 0; + } + + if (vec + count > max_entries) + count = max_entries - vec; + + while (count--) { + kdb_gate_desc_t * d = &idt[vec]; + kdb_printf("0x%4.4x ", vec++); + if (!d->present) { + kdb_printf("not present\n"); + continue; + } + if (d->seg) { + kdb_printf("invalid\n"); + continue; + } + display_gate_desc(d); + } + + last_vec = vec; + + return 0; +} + +#define _PAGE_PSE 0x080 + +static int +get_pagetables(unsigned long addr, pgd_t **pgdir, pmd_t **pgmiddle, pte_t **pte) +{ + pgd_t * d; + pmd_t * m; + pte_t * t; + + if (addr > PAGE_OFFSET) { + d = pgd_offset_k(addr); + } else { + kdb_printf("pid=%d, process=%s\n", kdb_current_task->pid, kdb_current_task->comm); + d = pgd_offset(kdb_current_task->mm, addr); + } + + if (pgd_none(*d) || pgd_bad(*d)) { + *pgdir = NULL; + *pgmiddle = NULL; + *pte = NULL; + return 0; + } else { + *pgdir = d; + } + + /* if _PAGE_PSE is set, pgdir points directly to the page. */ + if (pgd_val(*d) & _PAGE_PSE) { + *pgmiddle = NULL; + *pte = NULL; + return 0; + } + + m = pmd_offset(d, addr); + if (pmd_none(*m) || pmd_bad(*m)) { + *pgmiddle = NULL; + *pte = NULL; + return 0; + } else { + *pgmiddle = m; + } + + t = pte_offset(m, addr); + if (pte_none(*t)) { + *pte = NULL; + return 0; + } else { + *pte = t; + } + kdb_printf("\naddr=%08lx, pgd=%08lx, pmd=%08lx, pte=%08lx\n", + addr, + (unsigned long) pgd_val(*d), + (unsigned long) pmd_val(*m), + (unsigned long) pte_val(*t)); + return 0; +} + +#define FORMAT_PGDIR(entry) \ + kdb_printf("frame=%05lx %c %s %c %c %c %s %c %s %s \n",\ + (entry >> PAGE_SHIFT), \ + (entry & _PAGE_PRESENT)?'p':'n', \ + (entry & _PAGE_RW)?"rw":"ro", \ + (entry & _PAGE_USER)?'u':'s', \ + (entry & _PAGE_ACCESSED)?'a':' ', \ + ' ', \ + (entry & _PAGE_PSE)?"4M":"4K", \ + (entry & _PAGE_GLOBAL)?'g':' ', \ + (entry & _PAGE_PWT)?"wt":"wb", \ + (entry & _PAGE_PCD)?"cd":" "); + +#define FORMAT_PTE(p, entry) \ + kdb_printf("frame=%05lx %c%c%c %c %c %c %s %c %s %s\n", \ + (entry >> PAGE_SHIFT), \ + (pte_read(p))? 'r':'-', \ + (pte_write(p))? 'w':'-', \ + (pte_exec(p))? 'x':'-', \ + (pte_dirty(p))? 'd':' ', \ + (pte_young(p))? 'a':' ', \ + (entry & _PAGE_USER)? 'u':'s', \ + " ", \ + (entry & _PAGE_GLOBAL)? 'g':' ', \ + (entry & _PAGE_PWT)? "wt":"wb", \ + (entry & _PAGE_PCD)? "cd":" "); +static int +display_pgdir(unsigned long addr, pgd_t *pgdir, int count) +{ + unsigned long entry; + int i; + int index = pgdir - ((pgd_t *)(((unsigned long)pgdir) & PAGE_MASK)); + + count = min(count, PTRS_PER_PGD - index); + addr &= ~(PGDIR_SIZE-1); + + for (i = 0; i < count; i++, pgdir++) { + entry = pgd_val(*pgdir); + kdb_printf("pgd: addr=%08lx ", addr); + if (pgd_none(*pgdir)) { + kdb_printf("pgdir not present\n"); + } else { + FORMAT_PGDIR(entry); + } + addr += PGDIR_SIZE; + } + return i; +} + +static int +display_pgmiddle(unsigned long addr, pmd_t *pgmiddle, int count) +{ + unsigned long entry; + int i; + int index = pgmiddle - ((pmd_t *)(((unsigned long)pgmiddle) & PAGE_MASK)); + + count = min(count, PTRS_PER_PMD - index); + addr &= ~(PMD_SIZE-1); + + for (i = 0; i < count; i++, pgmiddle++) { + entry = pmd_val(*pgmiddle); + kdb_printf("pmd: addr=%08lx ", addr); + if (pmd_none(*pgmiddle)) { + kdb_printf("pgmiddle not present\n"); + } else { + FORMAT_PGDIR(entry); + } + addr += PMD_SIZE; + } + return i; +} + +static int +display_pte(unsigned long addr, pte_t *pte, int count) +{ + unsigned long entry; + int i; + int index = pte - ((pte_t *)(((unsigned long)pte) & PAGE_MASK)); + + count = min(count, PTRS_PER_PTE - index); + addr &= PAGE_MASK; + + for (i = 0; i < count; i++, pte++) { + entry = pte_val(*pte); + kdb_printf("pte: addr=%08lx ", addr); + if (pte_none(*pte)) { + kdb_printf("pte not present\n"); + } else if (!pte_present(*pte)) { + kdb_printf("page swapped out. swp_offset=%08lx ", SWP_OFFSET(pte_to_swp_entry(*pte))); + kdb_printf("swp_type=%8lx", SWP_TYPE(pte_to_swp_entry(*pte))); + } else { + FORMAT_PTE(*pte, entry); + } + addr += PAGE_SIZE; + } + return i; +} + +/* + * kdb_pte + * + * This function implements the 'pte' command. + * + * pte [] + * + * Inputs: + * argc argument count + * argv argument vector + * envp environment vector + * regs registers at time kdb was entered. + * Outputs: + * None. + * Returns: + * zero for success, a kdb diagnostic if error + * Locking: + * none. + * Remarks: + */ +static int +kdb_pte(int argc, const char **argv, const char **envp, struct pt_regs *regs) +{ + static unsigned long last_addr = 0, last_count = 0; + int count = 8; + unsigned long addr; + long offset = 0; + pgd_t * pgdir; + pmd_t * pgmiddle; + pte_t * pte; + +#ifdef CONFIG_X86_PAE + kdb_printf("This kernel is compiled with PAE support."); + return KDB_NOTIMP; +#endif + kdbgetintenv("MDCOUNT", &count); + + if (argc == 0) { + if (last_addr == 0) + return KDB_ARGCOUNT; + addr = last_addr; + if (last_count) + count = last_count; + } else { + kdb_machreg_t val; + int diag, nextarg = 1; + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL, regs); + if (diag) + return diag; + if (argc > nextarg+1) + return KDB_ARGCOUNT; + + if (argc >= nextarg) { + diag = kdbgetularg(argv[nextarg], &val); + if (!diag) { + count = (int) val; + last_count = count; + } else if (last_count) { + count = last_count; + } + } + } + + /* + * round off the addr to a page boundary. + */ + addr &= PAGE_MASK; + + get_pagetables(addr, &pgdir, &pgmiddle, &pte); + + if (pgdir) + display_pgdir(addr, pgdir, 1); + /* + * for now, let's not print pgmiddle. + if (pgmiddle) + display_pgmiddle(addr, pgmiddle, 1); + */ + if (pte) { + int displayed; + displayed = display_pte(addr, pte, count); + addr += (displayed << PAGE_SHIFT); + } + last_addr = addr; + return 0; +} + +/* + * kdb_rdv + * + * This function implements the 'rdv' command. + * It displays all registers of the current processor + * included control registers in verbose mode. + * + * Inputs: + * argc argument count + * argv argument vector + * envp environment vector + * regs registers at time kdb was entered. + * Outputs: + * None. + * Returns: + * zero for success, a kdb diagnostic if error + * Locking: + * none. + * Remarks: + * This should have been an option to rd command say "rd v", + * but it is here as it is a non-essential x86-only command, + * that need not clutter arch/i386/kdb/kdbasupport.c. + */ +static int +kdb_rdv(int argc, const char **argv, const char **envp, struct pt_regs *regs) +{ + kdba_dumpregs(regs, NULL, NULL); + kdb_printf("\n"); + display_eflags(regs->eflags); + kdb_printf("\n"); + display_gdtr(); + display_idtr(); + display_ldtr(); + kdb_printf("\n"); + display_cr0(); + display_cr3(); + display_cr4(); + kdb_printf("\n"); + display_dr(); + return 0; +} + +static int __init kdbm_x86_init(void) +{ + kdb_register("rdv", kdb_rdv, NULL, "Display registers in verbose mode", 0); + kdb_register_repeat("gdt", kdb_gdt, " []", "Display GDT", 0, KDB_REPEAT_NO_ARGS); + kdb_register_repeat("idt", kdb_idt, " []", "Display IDT", 0, KDB_REPEAT_NO_ARGS); + kdb_register_repeat("ldt", kdb_ldt, " []", "Display LDT", 0, KDB_REPEAT_NO_ARGS); + kdb_register_repeat("ptex", kdb_pte, " []", "Display pagetables", 0, KDB_REPEAT_NO_ARGS); + kdb_register_repeat("ldtp", kdb_ldt, " []", "Display Process LDT", 0, KDB_REPEAT_NO_ARGS); + return 0; +} + +static void __exit kdbm_x86_exit(void) +{ + kdb_unregister("rdv"); + kdb_unregister("gdt"); + kdb_unregister("ldt"); + kdb_unregister("idt"); + kdb_unregister("ptex"); + kdb_unregister("ldtp"); +} + +module_init(kdbm_x86_init) +module_exit(kdbm_x86_exit) diff -urNp -X /home/vamsi/.dontdiff 21-kdb43-pure/kdb/modules/Makefile 21-kdb43/kdb/modules/Makefile --- 21-kdb43-pure/kdb/modules/Makefile 2003-07-07 13:48:48.000000000 +0530 +++ 21-kdb43/kdb/modules/Makefile 2003-07-07 13:51:05.000000000 +0530 @@ -32,6 +32,9 @@ O_TARGET := vmlinux-obj.o obj-$(CONFIG_KDB_MODULES) += kdbm_vm.o kdbm_pg.o kdbm_task.o +ifdef CONFIG_X86 +obj-$(CONFIG_KDB_MODULES) += kdbm_x86.o +endif CFLAGS_kdbm_vm.o += -I $(TOPDIR)/drivers/scsi EXTRA_CFLAGS += -I $(TOPDIR)/arch/$(ARCH)/kdb From kaos@sgi.com Tue Jul 8 04:48:59 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 08 Jul 2003 04:49:11 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h68Bmu2x023392 for ; Tue, 8 Jul 2003 04:48:58 -0700 Received: (qmail 17648 invoked from network); 8 Jul 2003 11:48:54 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 8 Jul 2003 11:48:54 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 05599D84FE; Tue, 8 Jul 2003 21:48:50 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 027D1912D6; Tue, 8 Jul 2003 21:48:49 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: vamsi@in.ibm.com Cc: kdb , richard Subject: Re: [rfc] [patch] commands to display x86 hardware structures In-reply-to: Your message of "Tue, 08 Jul 2003 13:50:42 +0530." <20030708135042.A15547@in.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 08 Jul 2003 21:48:44 +1000 Message-ID: <2428.1057664924@ocs3.intra.ocs.com.au> X-archive-position: 415 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Tue, 8 Jul 2003 13:50:42 +0530, "Vamsi Krishna S ." wrote: >Here is a patch (against 2.4.21+kdb-4.3 latest) to add the >following commands: > >- rdv: display all processor registers. Special system registers > are interpreted and their contents displayed verbosely. > This should have been "rd v", but as I wanted to keep > this seperate, I had to introduce a new command. >- gdt: display the contents of GDT >- idt: display the contents of IDT >- ldt: display the contents of the current LDT >- ldtp: display the contents of LDT of the kdb_current task > (All process-specific commands apply to the process > selected with the "pid" command.) >- ptex: display page table entries (pgd/pte) for the given address. > If a user address is given, it is looked up in > the context of the process previously selected with > "pid" command. I realise that "pte" command is > present in kdbm_vm.c, please take a look at this too. > Eventually, we will need to keep only one of them. > >All commands except "rdv" can be repeated. > >Please review and comment, especially on: > >- kdbm_x86.c file header, if you want any changes there >- whether "rdv" should be turned into "rd v" - needs moving > a lot of code from kdbm_x86.c to kdbasupport.c >- syntax of the commands and the format of their output >- whether "ptex" should be removed in favour of existing > "pte" >- exported symbols (kdb_current_task and kdba_dumpregs). Nice. I will include the patch as it is, to let people get some experience with the commands. Then we can decide if the commands should be rationalised or not. In previous versions of kdb I made the mistake of trying to get it exactly right before releasing the code. The pte command should become common code, with a few arch specific #ifdefs in it. Most of the pte scanmning code is the same for i386, ia64, etc. From kaos@sgi.com Tue Jul 8 05:31:00 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 08 Jul 2003 05:31:11 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h68CUv2x025463 for ; Tue, 8 Jul 2003 05:30:58 -0700 Received: (qmail 17970 invoked from network); 8 Jul 2003 12:30:55 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 8 Jul 2003 12:30:55 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 32B97D84FE; Tue, 8 Jul 2003 22:30:52 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 3357A912D6; Tue, 8 Jul 2003 22:30:52 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com, linux-kernel@vger.kernel.org Subject: Re: Announce: kdb v4.3 is available for kernels 2.4.20, 2.4.21 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 08 Jul 2003 22:30:47 +1000 Message-ID: <4163.1057667447@ocs3.intra.ocs.com.au> X-archive-position: 416 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb ftp://oss.sgi.com/projects/kdb/download/v4.3/ Current versions are kdb-v4.3-2.4.21-common-6.bz2 and kdb-v4.3-2.4.21-i386-4.bz2. kdb-v4.3-2.4.21-ia64-030702 is nearly ready for release. common 2003-07-08 Keith Owens * Export more kdb symbols. Vamsi Krishna S., IBM. * kdb v4.3-2.4.21-common-6. 2003-07-07 Keith Owens * Tweak 'waiting for cpus' message. * kdb v4.3-2.4.21-common-5. 2003-07-07 Keith Owens * 2.4.21-ia64-030702 patches common code that affects kdb. Workaround this nuisance. * kdb v4.3-2.4.21-common-4. 2003-06-24 Keith Owens * Add task and sigset commands. Mark Goodwin, SGI. * kdb v4.3-2.4.21-common-3. 2003-06-23 Keith Owens * Sync with XFS 2.4.21 tree. * kdb v4.3-2.4.21-common-2. i386 2003-07-08 Keith Owens * Add new x86 commands - rdv, gdt, idt, ldt, ldtp, ptex. Vamsi Krishna S., IBM. * kdb v4.3-2.4.21-i386-4. 2003-07-01 Keith Owens * Convert kdba_find_return() to two passes to reduce false positives. * Correct jmp disp8 offset calculation for out of line lock code. * Use NMI for kdb IPI in clustered APIC mode. Sachin Sant, IBM. * kdb v4.3-2.4.21-i386-3. 2003-06-23 Keith Owens * Sync with XFS 2.4.21 tree. * kdb v4.3-2.4.21-i386-2. From vamsi@in.ibm.com Tue Jul 8 05:49:23 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 08 Jul 2003 05:49:30 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.103]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h68CnL2x025568 for ; Tue, 8 Jul 2003 05:49:23 -0700 Received: from northrelay02.pok.ibm.com (northrelay02.pok.ibm.com [9.56.224.150]) by e3.ny.us.ibm.com (8.12.9/8.12.2) with ESMTP id h68CnFXq127842; Tue, 8 Jul 2003 08:49:15 -0400 Received: from vamsiks.in.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay02.pok.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h68CnBnn182914; Tue, 8 Jul 2003 08:49:13 -0400 Received: (from vamsi@localhost) by vamsiks.in.ibm.com (8.11.6/8.11.2) id h68DBtt16427; Tue, 8 Jul 2003 18:41:55 +0530 Date: Tue, 8 Jul 2003 18:41:55 +0530 From: "Vamsi Krishna S ." To: Keith Owens Cc: kdb , richard Subject: Re: [rfc] [patch] commands to display x86 hardware structures Message-ID: <20030708184155.A16417@in.ibm.com> Reply-To: vamsi@in.ibm.com References: <20030708135042.A15547@in.ibm.com> <2428.1057664924@ocs3.intra.ocs.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <2428.1057664924@ocs3.intra.ocs.com.au>; from kaos@sgi.com on Tue, Jul 08, 2003 at 09:48:44PM +1000 X-archive-position: 417 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: vamsi@in.ibm.com Precedence: bulk X-list: kdb Hi Keith, On Tue, Jul 08, 2003 at 09:48:44PM +1000, Keith Owens wrote: > > > Nice. I will include the patch as it is, to let people get some > experience with the commands. Then we can decide if the commands > should be rationalised or not. In previous versions of kdb I made the > mistake of trying to get it exactly right before releasing the code. > > The pte command should become common code, with a few arch specific > #ifdefs in it. Most of the pte scanmning code is the same for i386, > ia64, etc. > This is great, thanks very much. I will tweak the pte code a bit more: - make most of it generic with arch hooks for displaying additional info - test and fix if needed (esp. display_pgmiddle()) on highmem (4GB/64GB kernels and then send you an incremental diff. Thanks again, Vamsi. -- Vamsi Krishna S. IBM Software Lab, Bangalore. Ph: +91 80 5044959 Internet: vamsi@in.ibm.com From vamsi@in.ibm.com Tue Jul 8 06:22:06 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 08 Jul 2003 06:22:11 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.102]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h68DM42x028227 for ; Tue, 8 Jul 2003 06:22:05 -0700 Received: from northrelay02.pok.ibm.com (northrelay02.pok.ibm.com [9.56.224.150]) by e2.ny.us.ibm.com (8.12.9/8.12.2) with ESMTP id h68DLx5U075142 for ; Tue, 8 Jul 2003 09:21:59 -0400 Received: from vamsiks.in.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay02.pok.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h68DLunn018838 for ; Tue, 8 Jul 2003 09:21:57 -0400 Received: (from vamsi@localhost) by vamsiks.in.ibm.com (8.11.6/8.11.2) id h68DifQ16533 for kdb@oss.sgi.com; Tue, 8 Jul 2003 19:14:41 +0530 Date: Tue, 8 Jul 2003 19:14:41 +0530 From: "Vamsi Krishna S ." To: kdb Subject: mailing list archives? Message-ID: <20030708191441.A16530@in.ibm.com> Reply-To: vamsi@in.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i X-archive-position: 418 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: vamsi@in.ibm.com Precedence: bulk X-list: kdb Hi, Where can we find the latest archives for kdb mailing list? The site at http://oss.sgi.com/cgi-bin/archive/kdb/ has archives only till August 2002. Thanks, Vamsi. -- Vamsi Krishna S. IBM Software Lab, Bangalore. Ph: +91 80 5044959 Internet: vamsi@in.ibm.com From kaos@sgi.com Tue Jul 8 06:44:18 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 08 Jul 2003 06:44:21 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h68DiG2x029127 for ; Tue, 8 Jul 2003 06:44:17 -0700 Received: (qmail 18524 invoked from network); 8 Jul 2003 13:44:15 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 8 Jul 2003 13:44:15 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id B784ED84FE; Tue, 8 Jul 2003 23:44:12 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id B72F3912D6 for ; Tue, 8 Jul 2003 23:44:12 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb Subject: Re: mailing list archives? In-reply-to: Your message of "Tue, 08 Jul 2003 19:14:41 +0530." <20030708191441.A16530@in.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 08 Jul 2003 23:44:07 +1000 Message-ID: <5560.1057671847@ocs3.intra.ocs.com.au> X-archive-position: 419 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Tue, 8 Jul 2003 19:14:41 +0530, "Vamsi Krishna S ." wrote: >Where can we find the latest archives for kdb mailing list? I have been trying to track these down on oss.sgi.com without success. Still looking. From brux@egalis.frec.bull.fr Thu Jul 10 07:49:49 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 10 Jul 2003 07:49:59 -0700 (PDT) Received: from ecbull20.frec.bull.fr (ecbull20.frec.bull.fr [129.183.4.3]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6AEnl2x004619 for ; Thu, 10 Jul 2003 07:49:49 -0700 Received: from egalis.frec.bull.fr (egalis.frec.bull.fr [129.183.10.1]) by ecbull20.frec.bull.fr (8.9.2/8.9.1) with ESMTP id QAA17884; Thu, 10 Jul 2003 16:50:36 +0200 Received: (from brux@localhost) by egalis.frec.bull.fr (AIX4.3/8.9.3/8.9.3) id QAA206876; Thu, 10 Jul 2003 16:50:30 +0200 From: Xavier Bru MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Message-ID: <16141.32051.375966.732390@egalis.frec.bull.fr> Date: Thu, 10 Jul 2003 16:50:27 +0200 (DFT) To: kaos@sgi.com, jim.houston@comcast.net cc: kdb@oss.sgi.com, linux-ia64@vger.kernel.org Subject: kdb v4.3 for 2.5.72 ia64 X-Mailer: VM 6.72 under 21.1 "20 Minutes to Nikko" XEmacs Lucid (patch 2) Reply-To: Xavier.Bru@bull.net X-MIME-Autoconverted: from 8bit to quoted-printable by ecbull20.frec.bull.fr id QAA17884 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id h6AEnl2x004619 X-archive-position: 420 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: Xavier.Bru@bull.net Precedence: bulk X-list: kdb Hello all, I updated the previous port of kdb on 2.5.72 ia64 to kdb v4.3 on: http://www.bullfreeware.com/linux/kdb It has same limitations, just a fix for calling bh_enable() only when interrupts are enabled (Problem is seen on 2.5 when kdb() is called from kdb_ipi(), due to WARN_ON() in this code, but also exists in 2.4). Hoping this can help. Please don't expect too much fixes from me until september. Xavier -- Sincères salutations. _____________________________________________________________________ Xavier BRU BULL ISD/R&D/INTEL office: FREC B1-422 tel : +33 (0)4 76 29 77 45 http://www-frec.bull.fr fax : +33 (0)4 76 29 77 70 mailto:Xavier.Bru@bull.net addr: BULL, 1 rue de Provence, BP 208, 38432 Echirolles Cedex, FRANCE _____________________________________________________________________ Xavier Bru writes: > Hello Keith & all, > > I put on: > http://www.bullfreeware.com/linux/kdb > patches that work on our IA64 platform with kernel 2.5.72. > > It is based on kdb v4.1 ia64 for 2.4.20, and the initial port you have > done of kdb i386 on 2.5.45. > > The result is far from perfect. > Major restrictions are: > . only arch ia64 support. > . no keyboard support (debug through serial line only: > - new ia64 platforms have no AT keyboard. > - the kdb USB keyboard driver developped by Sebastien Lelarge > still needs to be ported on new USB code. > . breakpoints still deadlock in SMP. > . no section, rmmod commands. > . mca/init not tested. > > What should work: > . parameters support. > . kernel & module symbols. > . new tpa command that translates virtual to physical addresses (ia64). > > I hope this can be help, as kdb is really mandatory for 2.5. From davidm@napali.hpl.hp.com Thu Jul 10 11:08:30 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 10 Jul 2003 11:08:34 -0700 (PDT) Received: from palrel10.hp.com (palrel10.hp.com [156.153.255.245]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6AI8K2x016326 for ; Thu, 10 Jul 2003 11:08:20 -0700 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by palrel10.hp.com (Postfix) with ESMTP id B67EC1C00FD6; Thu, 10 Jul 2003 10:43:51 -0700 (PDT) Received: from napali.hpl.hp.com (napali.hpl.hp.com [15.4.89.123]) by hplms2.hpl.hp.com (8.12.9/8.12.9/HPL-PA Hub) with ESMTP id h6AHhpJg006044; Thu, 10 Jul 2003 10:43:51 -0700 (PDT) Received: from napali.hpl.hp.com (localhost [127.0.0.1]) by napali.hpl.hp.com (8.12.3/8.12.3/Debian-5) with ESMTP id h6AHhorK012397; Thu, 10 Jul 2003 10:43:50 -0700 Received: (from davidm@localhost) by napali.hpl.hp.com (8.12.3/8.12.3/Debian-5) id h6AHholT012393; Thu, 10 Jul 2003 10:43:50 -0700 From: David Mosberger MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16141.42454.442866.979116@napali.hpl.hp.com> Date: Thu, 10 Jul 2003 10:43:50 -0700 To: Xavier.Bru@bull.net Cc: kaos@sgi.com, jim.houston@comcast.net, kdb@oss.sgi.com, linux-ia64@vger.kernel.org Subject: Re: kdb v4.3 for 2.5.72 ia64 In-Reply-To: <16141.32051.375966.732390@egalis.frec.bull.fr> References: <16141.32051.375966.732390@egalis.frec.bull.fr> X-Mailer: VM 7.07 under Emacs 21.2.1 Reply-To: davidm@hpl.hp.com X-URL: http://www.hpl.hp.com/personal/David_Mosberger/ X-archive-position: 421 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: davidm@napali.hpl.hp.com Precedence: bulk X-list: kdb >>>>> On Thu, 10 Jul 2003 16:50:27 +0200 (DFT), Xavier Bru said: Xavier> Hello all, Xavier> I updated the previous port of kdb on 2.5.72 ia64 to kdb Xavier> v4.3 on: http://www.bullfreeware.com/linux/kdb Xavier> It has same limitations, just a fix for calling bh_enable() Xavier> only when interrupts are enabled (Problem is seen on 2.5 Xavier> when kdb() is called from kdb_ipi(), due to WARN_ON() in Xavier> this code, but also exists in 2.4). Xavier> Hoping this can help. Please don't expect too much fixes Xavier> from me until september. Cool! Now if only somebody would do kgdb for ia64... ;-) --david From guangdeng.liao@intel.com Sun Jul 13 19:07:27 2003 Received: with ECARTIS (v1.0.0; list kdb); Sun, 13 Jul 2003 19:07:35 -0700 (PDT) Received: from hermes.jf.intel.com (fmr05.intel.com [134.134.136.6]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6E27RFl021988 for ; Sun, 13 Jul 2003 19:07:27 -0700 Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by hermes.jf.intel.com (8.11.6p2/8.11.6/d: outer.mc,v 1.66 2003/05/22 21:17:36 rfjohns1 Exp $) with ESMTP id h6E25Hp18173 for ; Mon, 14 Jul 2003 02:05:17 GMT Received: from pdsmsxvs01.pd.intel.com (pdsmsxvs01.pd.intel.com [172.16.12.122]) by petasus.jf.intel.com (8.11.6p2/8.11.6/d: inner.mc,v 1.35 2003/05/22 21:18:01 rfjohns1 Exp $) with SMTP id h6E22Ys05214 for ; Mon, 14 Jul 2003 02:02:34 GMT Received: from pdsmsx331.ccr.corp.intel.com ([172.16.12.58]) by pdsmsxvs01.pd.intel.com (NAVGW 2.5.2.11) with SMTP id M2003071410072032034 ; Mon, 14 Jul 2003 10:07:20 +0800 Received: from pdsmsx402.ccr.corp.intel.com ([172.16.12.50]) by pdsmsx331.ccr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.5329); Mon, 14 Jul 2003 10:07:21 +0800 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="gb2312" Subject: Feature--Single Step of KDB on xscale is on work X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 Date: Mon, 14 Jul 2003 10:07:20 +0800 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Feature--Single Step of KDB on xscale is on work Thread-Index: AcNJrKgpJC8I9DOiRLiRq12qB8xGBw== From: "LIAO, GUANGDENG" To: Cc: X-OriginalArrivalTime: 14 Jul 2003 02:07:21.0304 (UTC) FILETIME=[A8E13580:01C349AC] Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id h6E27RFl021988 X-archive-position: 422 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: guangdeng.liao@intel.com Precedence: bulk X-list: kdb HI all: For personal interest. I have tested the Feature¡ªSingle Step of KDB Patch on Xscale. And find it is good. Because of difference between Ia32 and Xscale Architecture. So I develop some new test suites to test it. As follows: .macro COND_INS_LOGICAL bit_cond,ins,ins_cond,category1,category2,rd1,rd2,rs,shifter_operator mrs r0,cpsr and r0, r0, #MASK_NZCV orr r0, r0, #\bit_cond msr cpsr,r0 .if \category1 add r1,r15,#12 ¡­¡­¡­¡­¡­¡­¡­. If you want to test Single step, I will happy to give your Test suites to test it --Danny From kaos@sgi.com Sun Jul 13 22:21:15 2003 Received: with ECARTIS (v1.0.0; list kdb); Sun, 13 Jul 2003 22:21:20 -0700 (PDT) Received: from tolkor.sgi.com (tolkor.SGI.COM [198.149.18.6]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6E5LFFl024580 for ; Sun, 13 Jul 2003 22:21:15 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by tolkor.sgi.com (8.12.9/8.12.2/linux-outbound_gateway-1.2) with SMTP id h6E5dRmO014782 for ; Mon, 14 Jul 2003 00:39:28 -0500 Received: from kao2.melbourne.sgi.com (kao2.melbourne.sgi.com [134.14.55.180]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA10794; Mon, 14 Jul 2003 15:21:05 +1000 Received: by kao2.melbourne.sgi.com (Postfix, from userid 16331) id 657C1D84FE; Mon, 14 Jul 2003 15:21:05 +1000 (EST) Received: from kao2.melbourne.sgi.com (localhost [127.0.0.1]) by kao2.melbourne.sgi.com (Postfix) with ESMTP id 629B8912D6; Mon, 14 Jul 2003 15:21:05 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com, linux-kernel@vger.kernel.org Subject: Re: Announce: kdb v4.3 is available for kernels 2.4.20, 2.4.21 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 14 Jul 2003 15:21:00 +1000 Message-ID: <1441.1058160060@kao2.melbourne.sgi.com> X-archive-position: 423 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb ftp://oss.sgi.com/projects/kdb/download/v4.3/ Current versions are kdb-v4.3-2.4.21-common-7.bz2, kdb-v4.3-2.4.21-i386-4.bz2, kdb-v4.3-2.4.21-ia64-030702-1.bz2. Changelog extracts. common 2003-07-14 Keith Owens * Correct ll command. * kdb v4.3-2.4.21-common-7. 2003-07-08 Keith Owens * Export more kdb symbols. Vamsi Krishna S., IBM. * kdb v4.3-2.4.21-common-6. 2003-07-07 Keith Owens * Tweak 'waiting for cpus' message. * kdb v4.3-2.4.21-common-5. 2003-07-07 Keith Owens * 2.4.21-ia64-030702 patches common code that affects kdb. Workaround this nuisance. * kdb v4.3-2.4.21-common-4. 2003-06-24 Keith Owens * Add task and sigset commands. Mark Goodwin, SGI. * kdb v4.3-2.4.21-common-3. 2003-06-23 Keith Owens * Sync with XFS 2.4.21 tree. * kdb v4.3-2.4.21-common-2. i386 2003-07-08 Keith Owens * Add new x86 commands - rdv, gdt, idt, ldt, ldtp, ptex. Vamsi Krishna S., IBM. * kdb v4.3-2.4.21-i386-4. 2003-07-01 Keith Owens * Convert kdba_find_return() to two passes to reduce false positives. * Correct jmp disp8 offset calculation for out of line lock code. * Use NMI for kdb IPI in clustered APIC mode. Sachin Sant, IBM. * kdb v4.3-2.4.21-i386-3. 2003-06-23 Keith Owens * Sync with XFS 2.4.21 tree. * kdb v4.3-2.4.21-i386-2. ia64 2003-07-08 Keith Owens * print_symbol() in mca.c does something useful when kdb is installed. * Unwind and SAL changes removed from kdb, they are in the base kernel. * kdb v4.3-2.4.21-ia64-030702-1. From kaos@sgi.com Sun Jul 13 22:47:17 2003 Received: with ECARTIS (v1.0.0; list kdb); Sun, 13 Jul 2003 22:47:22 -0700 (PDT) Received: from tolkor.sgi.com (tolkor.SGI.COM [198.149.18.6]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6E5lGFl024694 for ; Sun, 13 Jul 2003 22:47:17 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by tolkor.sgi.com (8.12.9/8.12.2/linux-outbound_gateway-1.2) with SMTP id h6E65SmO017194 for ; Mon, 14 Jul 2003 01:05:29 -0500 Received: from kao2.melbourne.sgi.com (kao2.melbourne.sgi.com [134.14.55.180]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA10991; Mon, 14 Jul 2003 15:47:04 +1000 Received: by kao2.melbourne.sgi.com (Postfix, from userid 16331) id 8B02FD84FE; Mon, 14 Jul 2003 15:47:03 +1000 (EST) Received: from kao2.melbourne.sgi.com (localhost [127.0.0.1]) by kao2.melbourne.sgi.com (Postfix) with ESMTP id 87FE6912D6; Mon, 14 Jul 2003 15:47:03 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: "Dong, Eddie" Cc: kdb@oss.sgi.com Subject: Re: Announce: kdb v4.3 is available for kernels 2.4.20, 2.4.21 In-reply-to: Your message of "Fri, 04 Jul 2003 11:05:05 +0800." <37FBBA5F3A361C41AB7CE44558C3448E011DF6E1@pdsmsx403.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 14 Jul 2003 15:46:58 +1000 Message-ID: <1752.1058161618@kao2.melbourne.sgi.com> X-archive-position: 424 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Fri, 4 Jul 2003 11:05:05 +0800, "Dong, Eddie" wrote: >Keith: > I encountered an issue for ISR routine debug, the situation is: > 1: When kdb is entered from keyboard, probably the IRQ >is enabled when it enter kdb(). Then if I set bp at do_IRQ and leave >kdb, the debug may be re-entered as soon as kdba_restoreint(..) is >completed in kdb(). That will cause kdb to be hanged because of LEAVING >flag not cleared correctly.=20 > 2: Even when kdb() is entered from former debug event, >if I set bp at do_IRQ and leave, the debug may be re-entered within >local_bh_enable() due to its IRQ enabled within this function, thus same >problem existed like above. > > So what is your suggestion about this problem? If I don't make >mistake, probably we should move this 2 items to the end of function >kdb() and make a new release. I am tempted to say "don't do that". There are some places in the kernel where it is not safe to put breakpoints, because kdb uses those paths as well. Instead of putting a breakpoint at do_IRQ, which affects the keyboard that kdb is using, put the breakpoint at the start of the interrupt handler that you really care about. From linas@austin.ibm.com Thu Jul 17 14:18:14 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 17 Jul 2003 14:18:17 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.131]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6HLIDFl029786 for ; Thu, 17 Jul 2003 14:18:14 -0700 Received: from westrelay03.boulder.ibm.com (westrelay03.boulder.ibm.com [9.17.195.12]) by e33.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6HLI7j3248964 for ; Thu, 17 Jul 2003 17:18:07 -0400 Received: from austin.ibm.com (d03av03.boulder.ibm.com [9.17.193.83]) by westrelay03.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6HLHvTn024000 for ; Thu, 17 Jul 2003 15:17:57 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6HLI5fX052534 for ; Thu, 17 Jul 2003 16:18:05 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id QAA40202 for kdb@oss.sgi.com; Thu, 17 Jul 2003 16:18:05 -0500 Date: Thu, 17 Jul 2003 16:18:05 -0500 From: linas@austin.ibm.com To: kdb@oss.sgi.com Subject: kdb ps patch Message-ID: <20030717161805.A48376@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-archive-position: 425 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb Hi, If this mailing list is active, could someone let mw know ... Anyway, here's a patch, it allows running tasks to be listed on 64-but machines. If you know of a better place to send patches, let me know ... --linas Index: kdbsupport.c =================================================================== RCS file: /home/linas/cvsroot/linux24/kdb/Attic/kdbsupport.c,v retrieving revision 1.1.2.1 diff -u -r1.1.2.1 kdbsupport.c --- kdbsupport.c 15 Jul 2003 18:43:51 -0000 1.1.2.1 +++ kdbsupport.c 17 Jul 2003 19:03:30 -0000 @@ -672,9 +672,9 @@ * none. */ -#define UNRUNNABLE (1 << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ -#define RUNNING (1 << (8*sizeof(unsigned long) - 2)) -#define TRACED (1 << (8*sizeof(unsigned long) - 3)) +#define UNRUNNABLE (1UL << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ +#define RUNNING (1UL << (8*sizeof(unsigned long) - 2)) +#define TRACED (1UL << (8*sizeof(unsigned long) - 3)) unsigned long kdb_task_state_string(int argc, const char **argv, const char **envp) From kaos@sgi.com Fri Jul 18 08:12:15 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 08:12:34 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6IFCBFl003020 for ; Fri, 18 Jul 2003 08:12:13 -0700 Received: (qmail 17698 invoked from network); 18 Jul 2003 15:12:08 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 18 Jul 2003 15:12:08 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 28722D84FE; Sat, 19 Jul 2003 01:12:07 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 05FE9912F1 for ; Sat, 19 Jul 2003 01:12:06 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com Subject: Re: kdb ps patch In-reply-to: Your message of "Thu, 17 Jul 2003 16:18:05 EST." <20030717161805.A48376@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 19 Jul 2003 01:12:01 +1000 Message-ID: <4200.1058541121@ocs3.intra.ocs.com.au> X-archive-position: 426 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Thu, 17 Jul 2003 16:18:05 -0500, linas@austin.ibm.com wrote: >Anyway, here's a patch, it allows running tasks to be listed >on 64-but machines. > >Index: kdbsupport.c >=================================================================== >RCS file: /home/linas/cvsroot/linux24/kdb/Attic/kdbsupport.c,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 kdbsupport.c >--- kdbsupport.c 15 Jul 2003 18:43:51 -0000 1.1.2.1 >+++ kdbsupport.c 17 Jul 2003 19:03:30 -0000 >@@ -672,9 +672,9 @@ > * none. > */ > >-#define UNRUNNABLE (1 << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ >-#define RUNNING (1 << (8*sizeof(unsigned long) - 2)) >-#define TRACED (1 << (8*sizeof(unsigned long) - 3)) >+#define UNRUNNABLE (1UL << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ >+#define RUNNING (1UL << (8*sizeof(unsigned long) - 2)) >+#define TRACED (1UL << (8*sizeof(unsigned long) - 3)) > > unsigned long > kdb_task_state_string(int argc, const char **argv, const char **envp) You must be running off an old version of kdb. That was fixed around October 2002, in kdb v2.4. From willschm@us.ibm.com Fri Jul 18 08:45:54 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 08:46:02 -0700 (PDT) Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.104]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6IFjkFl004399 for ; Fri, 18 Jul 2003 08:45:54 -0700 Received: from northrelay02.pok.ibm.com (northrelay02.pok.ibm.com [9.56.224.150]) by e4.ny.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6IFjewO023730 for ; Fri, 18 Jul 2003 11:45:40 -0400 Received: from d27ml103.rchland.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay02.pok.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6IFjSqm228380; Fri, 18 Jul 2003 11:45:28 -0400 Subject: Re: kdb ps patch To: kdb@oss.sgi.com Cc: linas@austin.ibm.com X-Mailer: Lotus Notes Release 5.0.11 July 24, 2002 Message-ID: From: Will Schmidt Date: Fri, 18 Jul 2003 10:45:18 -0500 X-MIMETrack: Serialize by Router on d27ml103/27/M/IBM(Release 6.0.2CF1|June 9, 2003) at 07/18/2003 10:45:28 AM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 427 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: willschm@us.ibm.com Precedence: bulk X-list: kdb Yes, the ppc64 tree (that this problem came from) is backlevel; still running with the kdb-common v2.1/v2.3 code. -Will willschm@us.ibm.com Linux on PowerPC-64 Development IBM Rochester Keith Owens To: kdb@oss.sgi.com Sent by: cc: kdb-bounce@oss.sg Subject: Re: kdb ps patch i.com 07/18/2003 10:12 AM On Thu, 17 Jul 2003 16:18:05 -0500, linas@austin.ibm.com wrote: >Anyway, here's a patch, it allows running tasks to be listed >on 64-but machines. > >Index: kdbsupport.c >=================================================================== >RCS file: /home/linas/cvsroot/linux24/kdb/Attic/kdbsupport.c,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 kdbsupport.c >--- kdbsupport.c 15 Jul 2003 18:43:51 -0000 1.1.2.1 >+++ kdbsupport.c 17 Jul 2003 19:03:30 -0000 >@@ -672,9 +672,9 @@ > * none. > */ > >-#define UNRUNNABLE (1 << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ >-#define RUNNING (1 << (8*sizeof(unsigned long) - 2)) >-#define TRACED (1 << (8*sizeof(unsigned long) - 3)) >+#define UNRUNNABLE (1UL << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ >+#define RUNNING (1UL << (8*sizeof(unsigned long) - 2)) >+#define TRACED (1UL << (8*sizeof(unsigned long) - 3)) > > unsigned long > kdb_task_state_string(int argc, const char **argv, const char **envp) You must be running off an old version of kdb. That was fixed around October 2002, in kdb v2.4. From kaos@sgi.com Fri Jul 18 09:03:23 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 09:03:34 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6IG3KFl004948 for ; Fri, 18 Jul 2003 09:03:22 -0700 Received: (qmail 18580 invoked from network); 18 Jul 2003 16:03:19 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 18 Jul 2003 16:03:19 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 13963D84FE; Sat, 19 Jul 2003 02:03:17 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 10BA1912F1; Sat, 19 Jul 2003 02:03:17 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: Will Schmidt Cc: kdb@oss.sgi.com, linas@austin.ibm.com Subject: Re: kdb ps patch In-reply-to: Your message of "Fri, 18 Jul 2003 10:45:18 EST." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 19 Jul 2003 02:03:12 +1000 Message-ID: <6217.1058544192@ocs3.intra.ocs.com.au> X-archive-position: 428 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Fri, 18 Jul 2003 10:45:18 -0500, Will Schmidt wrote: >Yes, the ppc64 tree (that this problem came from) is backlevel; still >running with the kdb-common v2.1/v2.3 code. Why have the ppc64 people never submitted patches to the kdb list? Other architectures submit patches which makes it possible for me to update them as the common code changes, but not ppc64. The other architectures appear on oss.sgi.com, but kdb for ppc64 is a dark, deep secret. From willschm@us.ibm.com Fri Jul 18 09:39:36 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 09:39:47 -0700 (PDT) Received: from e1.ny.us.ibm.com (e1.ny.us.ibm.com [32.97.182.101]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6IGdTFl006197; Fri, 18 Jul 2003 09:39:36 -0700 Received: from northrelay04.pok.ibm.com (northrelay04.pok.ibm.com [9.56.224.206]) by e1.ny.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6IGdNKb192700; Fri, 18 Jul 2003 12:39:23 -0400 Received: from d27ml103.rchland.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by northrelay04.pok.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6IGdK7S027702; Fri, 18 Jul 2003 12:39:21 -0400 Subject: Re: kdb ps patch To: Keith Owens Cc: kdb@oss.sgi.com, kdb-bounce@oss.sgi.com, linas@austin.ibm.com X-Mailer: Lotus Notes Release 5.0.11 July 24, 2002 Message-ID: From: Will Schmidt Date: Fri, 18 Jul 2003 11:39:13 -0500 X-MIMETrack: Serialize by Router on d27ml103/27/M/IBM(Release 6.0.2CF1|June 9, 2003) at 07/18/2003 11:39:21 AM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-archive-position: 429 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: willschm@us.ibm.com Precedence: bulk X-list: kdb You've got these two patches already, ftp://oss.sgi.com/projects/kdb/download/v2.4/kdb-v2.4-2.5.67-ppc64.diff.bz2 ftp://oss.sgi.com/projects/kdb/download/v2.3/kdb-v2.3-2.4.21-ppc64.diff.bz2 those are as far forward as i've gotten. forward porting is on my list to do, but is a lower priority than the other work i've got. willschm@us.ibm.com Linux on PowerPC-64 Development IBM Rochester Keith Owens To: Will Schmidt/Rochester/IBM@IBMUS Sent by: cc: kdb@oss.sgi.com, linas@austin.ibm.com kdb-bounce@oss.sg Subject: Re: kdb ps patch i.com 07/18/2003 11:03 AM On Fri, 18 Jul 2003 10:45:18 -0500, Will Schmidt wrote: >Yes, the ppc64 tree (that this problem came from) is backlevel; still >running with the kdb-common v2.1/v2.3 code. Why have the ppc64 people never submitted patches to the kdb list? Other architectures submit patches which makes it possible for me to update them as the common code changes, but not ppc64. The other architectures appear on oss.sgi.com, but kdb for ppc64 is a dark, deep secret. From linas@austin.ibm.com Fri Jul 18 10:39:31 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 10:39:35 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.132]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6IHdUFl012250 for ; Fri, 18 Jul 2003 10:39:30 -0700 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e34.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6IHdMEh208710; Fri, 18 Jul 2003 13:39:22 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay02.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6IHdAA4045686; Fri, 18 Jul 2003 11:39:10 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6IHdFBO033756; Fri, 18 Jul 2003 12:39:15 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id MAA44112; Fri, 18 Jul 2003 12:39:14 -0500 Date: Fri, 18 Jul 2003 12:38:54 -0500 From: linas@austin.ibm.com To: Keith Owens Cc: kdb@oss.sgi.com, olh@suse.de, linuxppc64-dev@lists.linuxppc.org Subject: Re: kdb ps patch Message-ID: <20030718123854.A38734@forte.austin.ibm.com> References: <20030717161805.A48376@forte.austin.ibm.com> <3287.1058492998@kao2.melbourne.sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <3287.1058492998@kao2.melbourne.sgi.com>; from kaos@sgi.com on Fri, Jul 18, 2003 at 11:49:58AM +1000 X-archive-position: 430 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb Hi, OK, thanks. I'll see what we can fix at this end. BTW, KDB is great! It really makes debugging (which is all that I do now) a whole lot easier. I dread having to debug a crash on a system that doesn't have KDB on it. --linas On Fri, Jul 18, 2003 at 11:49:58AM +1000, Keith Owens wrote: > On Thu, 17 Jul 2003 16:18:05 -0500, > linas@austin.ibm.com wrote: > >Anyway, here's a patch, it allows running tasks to be listed > >on 64-but machines. > > > >Index: kdbsupport.c > >=================================================================== > >RCS file: /home/linas/cvsroot/linux24/kdb/Attic/kdbsupport.c,v > >retrieving revision 1.1.2.1 > >diff -u -r1.1.2.1 kdbsupport.c > >--- kdbsupport.c 15 Jul 2003 18:43:51 -0000 1.1.2.1 > >+++ kdbsupport.c 17 Jul 2003 19:03:30 -0000 > >@@ -672,9 +672,9 @@ > > * none. > > */ > > > >-#define UNRUNNABLE (1 << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ > >-#define RUNNING (1 << (8*sizeof(unsigned long) - 2)) > >-#define TRACED (1 << (8*sizeof(unsigned long) - 3)) > >+#define UNRUNNABLE (1UL << (8*sizeof(unsigned long) - 1)) /* unrunnable is < 0 */ > >+#define RUNNING (1UL << (8*sizeof(unsigned long) - 2)) > >+#define TRACED (1UL << (8*sizeof(unsigned long) - 3)) > > > > unsigned long > > kdb_task_state_string(int argc, const char **argv, const char **envp) > > You must be running off an old version of kdb. That was fixed around > October 2002, in kdb v2.4. > From linas@austin.ibm.com Fri Jul 18 10:58:09 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 10:58:19 -0700 (PDT) Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.130]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6IHw8Fl012729 for ; Fri, 18 Jul 2003 10:58:09 -0700 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e32.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6IHw2Uj231656; Fri, 18 Jul 2003 13:58:02 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay02.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6IHvaA4237144; Fri, 18 Jul 2003 11:57:36 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6IHvYBO050618; Fri, 18 Jul 2003 12:57:34 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id MAA42444; Fri, 18 Jul 2003 12:57:34 -0500 Date: Fri, 18 Jul 2003 12:57:33 -0500 From: linas@austin.ibm.com To: Will Schmidt Cc: Keith Owens , kdb@oss.sgi.com Subject: Re: kdb ps patch Message-ID: <20030718125733.C38734@forte.austin.ibm.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: ; from willschm@us.ibm.com on Fri, Jul 18, 2003 at 11:39:13AM -0500 X-archive-position: 431 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb On Fri, Jul 18, 2003 at 11:39:13AM -0500, Will Schmidt wrote: > > > ftp://oss.sgi.com/projects/kdb/download/v2.3/kdb-v2.3-2.4.21-ppc64.diff.bz2 > > those are as far forward as i've gotten. > forward porting is on my list to do, but is a lower priority than the other > work i've got. Will, Let me know if you'd like some help w/ this. I'm pretty busy with lots of things &etc. but, on the other hand, I spend a lot of time operating KDB so even small improvments there are worth it to me ... --linas From linas@austin.ibm.com Fri Jul 18 17:40:47 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 17:40:58 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.131]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J0ekFl029378 for ; Fri, 18 Jul 2003 17:40:47 -0700 Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e33.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6J0eej3307470; Fri, 18 Jul 2003 20:40:40 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay04.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6J0ecQN175170; Fri, 18 Jul 2003 18:40:39 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6J0ecBO032806; Fri, 18 Jul 2003 19:40:38 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id TAA41092; Fri, 18 Jul 2003 19:40:38 -0500 Date: Fri, 18 Jul 2003 19:40:37 -0500 From: linas@austin.ibm.com To: Keith Owens Cc: Will Schmidt , kdb@oss.sgi.com Subject: KDB enhancements Message-ID: <20030718194037.A48774@forte.austin.ibm.com> References: <6217.1058544192@ocs3.intra.ocs.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <6217.1058544192@ocs3.intra.ocs.com.au>; from kaos@sgi.com on Sat, Jul 19, 2003 at 02:03:12AM +1000 X-archive-position: 432 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb Hi Keith, I'm vaguely daydreaming about a few KDB enhancements, I was curious if you've thought about them: -- 'cat /proc/meminfo' Turns out one bug I was chasing was OOM on a machine with 32GB of RAM (!) and it took me days to even think of looking there. -- Support for examining structures symbolically. I've had to walk the buffer cache by hand in the past, I've walked task struct by hand yesterday, and they guy down the hall stares at network structs. I don't know if it would be better to handle a few of these as special-cases in some simple manner, or if some more complex but generic mechanism would be better ... --linas From sdake@mvista.com Fri Jul 18 17:55:40 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 17:55:49 -0700 (PDT) Received: from zipcode.az.mvista.com (fw-az.mvista.com [65.200.49.158]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J0tdFl029856 for ; Fri, 18 Jul 2003 17:55:40 -0700 Received: from persist.az.mvista.com (persist.az.mvista.com [10.50.1.87]) by zipcode.az.mvista.com (8.9.3/8.9.3) with ESMTP id SAA01158; Fri, 18 Jul 2003 18:09:51 -0700 Subject: Re: KDB enhancements From: Steven Dake Reply-To: sdake@mvista.com To: linas@austin.ibm.com Cc: Keith Owens , Will Schmidt , kdb@oss.sgi.com In-Reply-To: <20030718194037.A48774@forte.austin.ibm.com> References: <6217.1058544192@ocs3.intra.ocs.com.au> <20030718194037.A48774@forte.austin.ibm.com> Content-Type: text/plain Organization: MontaVista Software, Inc. Message-Id: <1058576130.20678.170.camel@persist.az.mvista.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 18 Jul 2003 17:55:30 -0700 Content-Transfer-Encoding: 7bit X-archive-position: 433 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: sdake@mvista.com Precedence: bulk X-list: kdb On Fri, 2003-07-18 at 17:40, linas@austin.ibm.com wrote: > Hi Keith, > > I'm vaguely daydreaming about a few KDB enhancements, I was curious if > you've thought about them: > > -- 'cat /proc/meminfo' Turns out one bug I was chasing was OOM on > a machine with 32GB of RAM (!) and it took me days to even think > of looking there. > > -- Support for examining structures symbolically. I've had to walk > the buffer cache by hand in the past, I've walked task struct > by hand yesterday, and they guy down the hall stares at network > structs. > While we are dreaming :) complete source level debugging would be very useful. I was thinking this would best be done over serial or ethernet with a kdb engine running in the target kernel. This would allow a debugger to use the kdb commands to symbolicly debug a running kernel. Much better then kgdb, which lacks many of the functionalities required by a good kernel debugger. > I don't know if it would be better to handle a few of these as > special-cases in some simple manner, or if some more complex but > generic mechanism would be better ... > > --linas > > > From kaos@sgi.com Fri Jul 18 18:08:48 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 18:08:59 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J18iFl030341 for ; Fri, 18 Jul 2003 18:08:46 -0700 Received: (qmail 23944 invoked from network); 19 Jul 2003 01:08:41 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 19 Jul 2003 01:08:41 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 30E65D84FE; Sat, 19 Jul 2003 11:08:22 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 2E089912F1; Sat, 19 Jul 2003 11:08:22 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: linas@austin.ibm.com Cc: Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements In-reply-to: Your message of "Fri, 18 Jul 2003 19:40:37 EST." <20030718194037.A48774@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 19 Jul 2003 11:08:17 +1000 Message-ID: <13552.1058576897@ocs3.intra.ocs.com.au> X-archive-position: 434 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Fri, 18 Jul 2003 19:40:37 -0500, linas@austin.ibm.com wrote: >I'm vaguely daydreaming about a few KDB enhancements, I was curious if >you've thought about them: > >-- 'cat /proc/meminfo' Turns out one bug I was chasing was OOM on > a machine with 32GB of RAM (!) and it took me days to even think > of looking there. 'sr m', same as sysrq-m. >-- Support for examining structures symbolically. I've had to walk > the buffer cache by hand in the past, I've walked task struct > by hand yesterday, and they guy down the hall stares at network > structs. > > I don't know if it would be better to handle a few of these as > special-cases in some simple manner, or if some more complex but > generic mechanism would be better ... I have considered a generic facility like gdb, based off stabs or dwarf but decided against it for now. Apart from the complexity of the code, the stabds/dwarf approach is no good for bit fields. kdb has various commands for dumping structures including vm data, see all the code in kdb/modules. Recent versions of kdb added a 'task' command for dumping and decoding struct task. Another good reason to upate ppc64 to kdb v4.3 :). From linas@austin.ibm.com Fri Jul 18 18:09:55 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 18:09:59 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.132]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J19sFl030383 for ; Fri, 18 Jul 2003 18:09:54 -0700 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e34.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6J19mEh231364 for ; Fri, 18 Jul 2003 21:09:48 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay02.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6J19bA4060928 for ; Fri, 18 Jul 2003 19:09:37 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6J19lfX028090; Fri, 18 Jul 2003 20:09:47 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id UAA40562; Fri, 18 Jul 2003 20:09:47 -0500 Date: Fri, 18 Jul 2003 20:09:41 -0500 From: linas@austin.ibm.com To: Steven Dake Cc: Keith Owens , Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements Message-ID: <20030718200941.A41118@forte.austin.ibm.com> References: <6217.1058544192@ocs3.intra.ocs.com.au> <20030718194037.A48774@forte.austin.ibm.com> <1058576130.20678.170.camel@persist.az.mvista.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <1058576130.20678.170.camel@persist.az.mvista.com>; from sdake@mvista.com on Fri, Jul 18, 2003 at 05:55:30PM -0700 X-archive-position: 435 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb On Fri, Jul 18, 2003 at 05:55:30PM -0700, Steven Dake wrote: > On Fri, 2003-07-18 at 17:40, linas@austin.ibm.com wrote: > > Hi Keith, > > > > I'm vaguely daydreaming about a few KDB enhancements, I was curious if > > you've thought about them: > > > > -- 'cat /proc/meminfo' Turns out one bug I was chasing was OOM on > > a machine with 32GB of RAM (!) and it took me days to even think > > of looking there. > > > > -- Support for examining structures symbolically. I've had to walk > > the buffer cache by hand in the past, I've walked task struct > > by hand yesterday, and they guy down the hall stares at network > > structs. > > > While we are dreaming :) complete source level debugging would be very > useful. I was thinking this would best be done over serial or ethernet > with a kdb engine running in the target kernel. This would allow a > debugger to use the kdb commands to symbolicly debug a running kernel. Yeah, I admit, inverting assembly back into source is tedious. FYI, I'm working at a level where I can justify spending a few days here and there, so my dreams are necessarily limited. > Much better then kgdb, which lacks many of the functionalities required > by a good kernel debugger. Uhh... well, kgdb does have all this stuff for crawling through stabs, and symbol tables and etc. So if source debug is really the requirement then I'd think that adding the missing features to kgdb would be the simpler route. Am I wrong? --linas From kaos@sgi.com Fri Jul 18 18:18:46 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 18:18:56 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J1IcFl030738 for ; Fri, 18 Jul 2003 18:18:39 -0700 Received: (qmail 24005 invoked from network); 19 Jul 2003 01:18:35 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 19 Jul 2003 01:18:35 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 336D1D84FE; Sat, 19 Jul 2003 11:18:14 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 30853912F1; Sat, 19 Jul 2003 11:18:14 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: sdake@mvista.com Cc: linas@austin.ibm.com, Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements In-reply-to: Your message of "18 Jul 2003 17:55:30 MST." <1058576130.20678.170.camel@persist.az.mvista.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 19 Jul 2003 11:18:09 +1000 Message-ID: <13814.1058577489@ocs3.intra.ocs.com.au> X-archive-position: 436 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On 18 Jul 2003 17:55:30 -0700, Steven Dake wrote: >While we are dreaming :) complete source level debugging would be very >useful. I was thinking this would best be done over serial or ethernet >with a kdb engine running in the target kernel. This would allow a >debugger to use the kdb commands to symbolicly debug a running kernel. We tried it once[1], using a gdb 4 stub that talked to kdb. We could never get it to talk to gdb properly, in particular when the kernel was already in kdb, gdb would not reliably connect to the stub. The code was put to one side, with the aim of looking at it again once gdb 5 was more widespread, gdb 5 has a better stub interface. Are there any gdb experts on this list who want to pick up this code and get it working? [1] https://external-lists.vasoftware.com/archives/linux-ia64/2002-April/003451.html /***********************************************************\ * Copyright (C) 2000 SGI * Released under the terms of GNU Public License v.2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Project: GDB-KDB interface * Module: GDB remote debugging protocol * File: skdb.c * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $Id: skdb.c,v 1.1 2000/11/08 23:42:49 max Exp max $ \***********************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define TELOPTS #define TELCMDS #include #define SKDB_MAX_REQSIZ (16384) /* Debug flags - options should match 1 << name */ char * dopt[] = {"all", "serial", "telnet", "remote", NULL}; unsigned int debug = 0; #define SKDB_DBG_SERIAL 2 #define SKDB_DBG_TELNET 4 #define SKDB_DBG_REMOTE 8 int pfork (int, char **); char * getgdbpkt (char * inqueue, char ** pkt); int putgdbpkt (int fd, char * data); char * kdb_request (int, const char *); unsigned long * breakaddrs = NULL; int breaks = 0; int telnetmode = 0; int isRunning = 1; /* This is the order in which gdb knows x86 regs. */ static const char * regnames[] = { "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", "eip", "eflags", "cs", "ss", "ds", "es", "fs", "gs", NULL}; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Function: getgdbpkt * Find something which looks, smells and sounds like a gdb * packet (i.e, it starts with $ and ends with #XX), check * the control sum and return the pointer to the end of * the packet to the caller. Pointer to the start of the packet * is returned via the 'pkt' parameter * Parameters: * inqueue - input buffer which may contain the packet * pkt - pointer * Returns: * pointer of the last charcter in the input buffer, which is not * in the packet to be processed, on success or NULL on error. If * packet has not been found, pkt is left unmolested. \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ char * getgdbpkt (char * inqueue, char ** pkt) { while (*inqueue != '$' && *inqueue != '\0' ) { inqueue++; } if ( *inqueue == '\0' ) { /* No $ - no packets, skip the whole lot */ return inqueue; } else { char * start = ++inqueue; while ( *inqueue != '#' && *inqueue != '\0' ) { inqueue++; } if ( *inqueue == '\0' ) { /* We've seen the start of the packet but not the end of it */ return start; } /* Check for the obsolete sequence id and reject the packet if * there is one */ if ( (inqueue - start) > 3 && isxdigit (start[0]) && isxdigit (start[1]) && (start[2] == ':')) { return (NULL); } else { /* End of the packet - calculate checksum */ char * p = start; unsigned int chksum = 0; char s[3] = {inqueue[1], inqueue[2], '\0'}; int ctrlsum = strtol (s, NULL, 16); while ( p != inqueue ) { chksum = (chksum + *p++ ) & 0xFFU; } if ( ctrlsum != chksum ) { fprintf (stderr, "\nskdb: Bad Checksum: %d != %d\n", ctrlsum, chksum); return (NULL); } if ( pkt != NULL ) { *pkt = start; } inqueue += 3; } } return (inqueue); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Function: putgdbpkt * Form a kosher gdb packet and send it down to gdb using * file descriptor provided * Parameters: * fd - file descriptor which gdb can be reached thru * data - pointer to the content of the packet to be sent * Returns: * number of bytes send to gdb on success or -1 on error \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int putgdbpkt (int fd, char * data) { char * pkt = malloc (strlen(data)+5); if ( pkt != NULL ) { unsigned int chksum = 0; int sz = 0; pkt[sz++] = '$'; while ( *data != '\0' ) { pkt[sz++] = *data; chksum = (chksum + *data++) & 0xFFU; } sprintf (pkt+sz, "#%02X", chksum); if ( write (fd, pkt, sz+3) != sz+3 ) { extern int errno; fprintf (stderr, "putgdbpkt: write (%d, ... , %d) - %s", fd, sz+3, strerror (errno)); return (-1); } free (pkt); return (sz); } return (-1); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Function: find_kdb_prompt * Telnetd will sent NULs for CR (see rfc1184 or * its successor), so we have to work around them * here. * Parameters: * reply - stuff we've got back from kdb * sz - how much have we got? * Returns: * Pointer to the start of the prompt on success or NULL * if there is no prompt. \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ char * find_kdb_prompt (char * reply, int sz ) { char * l; for ( l = reply; l < reply + sz; l += strlen (l)+1 ) { char * prompt = strstr (l, "kdb> "); if ( prompt != NULL ) { return (prompt); } } return (NULL); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Function: kdb_request * Send kdb interrupt key, send simple request, i.e one * kdb command, wait for the result, send go and return * the result. * Parameters: * fd - file descriptor to reach kdb * req - request * Returns: * pointer to the dynamically allocated region of memory * on success or NULL on error \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ char * kdb_request (int fd, const char * req) { char buf[SKDB_MAX_REQSIZ]; int bc = 0, seek = 1; fd_set fds; struct timeval tv; FD_ZERO (&fds); if ( isRunning ) { write (fd, "\1", 1); /* KDB attention key */ } else { write (fd, "\n\r", 2); } /* Wait for kdb prompt */ while ( seek ) { FD_SET (fd, &fds); tv.tv_sec = 15; tv.tv_usec = 0; if ( select (fd+1, &fds, NULL, NULL, &tv) > 0 ) { int nb = read (fd, buf+bc, SKDB_MAX_REQSIZ-bc-1); if ( nb > 0 && ((bc + nb) < SKDB_MAX_REQSIZ)) { bc += nb; buf[bc+1] = '\0'; if ( find_kdb_prompt (buf, bc) != NULL ) { seek = 0; bc = 0; isRunning = 0; } } else { fputs ("\nskdb: Request is too big\n", stderr); fflush (stderr); return (NULL); } } else { fputs ("\nskdb: Timed out while trying to get kdb attention\n", stderr); fflush (stderr); return (NULL); } } /* Check if we have smth to request or if it was just an interrupt */ if ( req[0] ) { /* Send request */ write (fd, req, strlen (req)); write (fd, "\n\r", 2); /* Read reply until we find a second prompt, unless it's a 'go' - * in this case we just return */ if ( strncmp (req, "go", 2) ) { seek = 1; while ( seek ) { FD_SET (fd, &fds); tv.tv_sec = 5; tv.tv_usec = 0; if ( select (fd+1, &fds, NULL, NULL, &tv) > 0 ) { int nb = read (fd, buf+bc, SKDB_MAX_REQSIZ-bc-1); if ( nb > 0 && ((bc + nb) < SKDB_MAX_REQSIZ) ) { char * pstart; bc += nb; buf[bc+1] = '\0'; if ( (pstart = find_kdb_prompt(buf, bc)) != NULL ) { char * nl; if ( telnetmode ) { char * nul; while ((nul=memchr (buf, '\0', bc)) != NULL) { memmove (nul, nul+1, buf+bc-nul-1); bc--; } } *pstart = '\0'; if ( (nl = strrchr (buf, '\n')) != NULL ) { seek = 0; *pstart = 'k'; bc = nl - buf; *nl = '\0'; } } } else { return (NULL); } } else { return (NULL); } } } else { isRunning = 1; return (strdup ("")); } } else { return (strdup ("")); } return (strdup (buf)); } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Function: gdb_process * Process one gdb packet. One gdb packet my result to zero, * one or no requests to kdb. * Parameters: * pm - file descriptor to talk to gdb * kdb - file descriptor to talk to kdb * pkt - gdb packet sense control sum \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void gdb_process (int pm, int kdb, char * pkt) { char * start = NULL, *end; if ( ((end = getgdbpkt (pkt, &start)) != NULL) && (start != NULL) ) { unsigned long bpaddr; int i; char reply[SKDB_MAX_REQSIZ] = ""; char * sep; write (pm, "+", 1); /* ACK the packet */ switch ( *start ) { case 'c': /* Continue - do nothing, just ACK the packet. The rest * will come from the kdb */ free (kdb_request (kdb, "go")); break; case 'D': /* GDB doesn't want to play no more but it still * wants a reply regardless of what is said in the * manual */ free (kdb_request (kdb, "go")); putgdbpkt (pm, "OK"); break; case 's': free (kdb_request (kdb, "ss")); putgdbpkt (pm, "S00"); break; case 'H': putgdbpkt (pm, "OK"); break; case 'm': /* Memory read */ if ( (sep = strchr (start+1, ',')) == NULL ) { strcpy (reply, "E01"); } else { char * aend; unsigned long addr = strtoul (start+1, &aend, 16); if ( aend != sep ) { strcpy (reply, "E01"); } else { int sz = atoi (sep+1); char * res; sprintf (reply, "mdr 0x%x %d", addr, sz); if ( (res = kdb_request (kdb, reply)) == NULL ) { putgdbpkt (pm, "E02"); } else { char * nl = strrchr (res, '\n'); if ( nl == NULL ) { putgdbpkt (pm, "E02"); } else { int i; for (i = strlen (nl)-1; i>0; i-- ) { if ( ! isxdigit (nl[i]) ) { break; } } if ( i ) { /* Wrong address */ putgdbpkt (pm, "E03"); } else { putgdbpkt (pm, nl+1); } } free (res); } } } break; case 'P': /* Set register */ if ( (sep = strchr (start+1, '=')) == NULL ) { strcpy (reply, "E01"); } else { char * aend; unsigned long rn = strtoul (start+1, &aend, 16); if ( aend != sep ) { strcpy (reply, "E01"); } else if ( rn > sizeof (regnames) / sizeof (regnames[0]) ) { strcpy (reply, "E04"); } else { int i; char * res; unsigned long rv = strtoul (sep+1, NULL, 16); sprintf (reply, "rm %%%s ", regnames[rn]); for ( i=0; i < sizeof (int); i++ ) { char x2[3]; sprintf (x2, "%02x", rv & 0xFFU); rv >>= 8; strcat (reply, x2); } if ( (res = kdb_request (kdb, reply)) == NULL ) { putgdbpkt (pm, "E02"); } else { if ( strstr (res, "diag:") != 0 ) { /* We don't expect anything back, so it's * an error */ putgdbpkt (pm, "E03"); } else { putgdbpkt (pm, "OK"); } free (res); } } } break; case 'g': if ( start[1] != '#' ) { putgdbpkt (pm, "E01"); } else { char * res = kdb_request (kdb, "rd"); if ( res == NULL ) { putgdbpkt (pm, "E02"); } else { int r; for ( r=0; regnames[r] != NULL; r++ ) { char * p = strstr (res, regnames[r]); if ( p != NULL && isspace (p[-1])){ int b = strlen(regnames[r])+2; unsigned long rv = strtoul (p+b, NULL, 0); for ( b=0; b < sizeof (int); b++ ) { char x2[3]; sprintf (x2, "%02x", (rv & 0xFFU)); strcat (reply, x2); rv >>= 8; } } else { strcat (reply, "xxxxxxxx"); } } putgdbpkt (pm, reply); free (res); } } break; case 'q': /* Query packet - needs further processing */ switch ( start[1] ) { case 'C': putgdbpkt (pm, "QC0"); break; case 'O': /* We don't use any special offsets, so whatever * is in the elf, should be fine. */ putgdbpkt (pm, "Text=00000000;Data=00000000;Bss=00000000;"); break; case 'R': /* Remote Command */ if ( (sep = strchr (start, ',')) == NULL ) { putgdbpkt (pm, "E01"); } else { int i; for ( i=0,sep++; sep[0] != '#' && sep < end; sep+=2,i++ ) { if ( isxdigit (sep[0]) && isxdigit (sep[1]) ) { char x2[3] = {sep[0], sep[1], '\0'}; unsigned long ch = strtoul (x2, NULL, 16); reply[i] = (ch & 0xFFU); } else { i = -1; break; } } if ( i < 0 ) { putgdbpkt (pm, "E02"); } else { const char * xchars = "0123456789ABCDEF"; char * res = kdb_request (kdb, reply); if ( res != NULL ) { for (i=0; res[i] && (i*2 < SKDB_MAX_REQSIZ); i++) { reply[i*2] = xchars[(res[i] >> 4) & 0xFU]; reply[i*2+1] = xchars[(res[i] & 0xFU)]; } reply[i*2] = '\0'; strcat (reply, "0A0D"); i += 2; if ( i*2 > 256 ) { /* Have to break the reply as gdb * cannot cope with the big packets */ char part[256]; int j; for ( j=0; j < (i*2)-254; j += 254 ) { part[0] = 'O'; memcpy (part+1, reply + j, 254); part[255] = '\0'; putgdbpkt (pm, part); } putgdbpkt (pm, reply+j); } else { putgdbpkt (pm, reply); } free (res); } else { putgdbpkt (pm, "E02"); } } } break; default: putgdbpkt (pm, "E33"); break; } break; case 'z': /* Clear a break/watch point */ bpaddr = strtoul (start+3, NULL, 16); for ( i=0; i < breaks; i++ ) { if ( breakaddrs[i] == bpaddr ) { char * res; sprintf (reply, "bc %d", i); if ( (res = kdb_request (kdb, reply)) != NULL ) { bpaddr = 0; putgdbpkt (pm, "OK"); free (res); } else { putgdbpkt (pm, "E05"); } break; } } if ( i >= breaks ) { putgdbpkt (pm, "E06"); } break; case 'Z': /* Breakpoint/watchpoint - Z,, */ bpaddr = strtoul (start+3, NULL, 16); switch ( start[1] ) { case '0': /* Software breakpoint */ for ( i=0; i < breaks; i++ ) { if ( breakaddrs[i] == bpaddr ) { putgdbpkt (pm, "OK"); break; } } if ( i >= breaks ) { char * res; sprintf (reply, "bp 0x%x", bpaddr); if ( (res = kdb_request (kdb, reply)) != NULL ) { char * bpnum; if ( (bpnum = strstr (res, "BP #")) == NULL ) { putgdbpkt (pm, "E03"); } else { int bp = strtol (bpnum+4, NULL, 0); if ( breaks <= bp) { unsigned long * nb; if ( (nb = realloc (breakaddrs, sizeof (int)*(bp+1))) != NULL ) { breakaddrs = nb; for ( i=breaks+1; i < bp; i++ ) { breakaddrs[i] = 0; } breaks = bp+1; breakaddrs[bp] = bpaddr; putgdbpkt (pm, "OK"); } else { putgdbpkt (pm, "E05"); } } free (res); } } else { putgdbpkt (pm, "E02"); } } break; case '1': /* Hardware breakpoint */ sprintf (reply, "bph 0x%8.8s", start+3); if ( kdb_request (kdb, reply) != NULL ) { putgdbpkt (pm, "OK"); } else { putgdbpkt (pm, "E02"); } break; default: putgdbpkt (pm, "E34"); break; } break; case '?': putgdbpkt (pm, "S05"); break; default: putgdbpkt (pm, "E35"); break; } } } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Function: pfork * Create a master/slave pty pair, fork and exec gdb with * -x fudged to point it to the slave pty in the parent * process space. Child will do the real work. * Parameters: * argc - number of gdb command line parameters * args - gdb's command line parameters * Returns: * file descriptor for master PTY on success or -1 on error \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int pfork (int argc, char ** args) { int pt; if ( (pt = open ("/dev/ptmx", O_RDWR)) >= 0 ) { if ( grantpt (pt) != -1 ) { if ( unlockpt (pt) != -1 ) { FILE * tf; char * tname = strdup (tmpnam (NULL)); pid_t child; if ( tname == NULL ) { puts ("Oops!"); return -1; } else if ( (tf = fopen (tname, "w")) == NULL ) { perror (tname); free (tname); return -1; } fprintf (tf, "shell rm %s\n" "set remotedebug %d\n" "set serialdebug %d\n" "target remote %s\n" "define lsmod\n" "set $mod = (struct module*)module_list\n" "while $mod != &kernel_module\n" "printf \"%%p\t%%s\\n\", (long)$mod, ($mod)->name\n" "set $mod = $mod->next\n" "end\nend\n", tname, ((debug & SKDB_DBG_REMOTE) != 0), ((debug & SKDB_DBG_SERIAL) != 0), ptsname(pt)); fflush (tf); if ( (child = fork ()) > 0 ) { int i; char **gargs = calloc (argc+5, sizeof (char *)); if ( gargs == NULL ) { kill (child, SIGTERM); exit (1); } else { gargs[0] = "gdb"; gargs[1] = "-q"; gargs[2] = "-x"; gargs[3] = tname; close (pt); for ( i=0; i < argc ; i++ ) { gargs[i+4] = args[i]; } gargs[i+4] = NULL; execvp ("gdb", gargs); kill (child, SIGTERM); exit (1); } /*NOTREACHED*/ } else if ( child < 0 ) { perror ("fork"); close (pt); pt = -1; } fclose (tf); free (tname); return (pt); } else { perror ("unlockpt"); } } else { perror ("grantpt"); } close (pt); } return (-1); } static void usage (char * pname) { printf ("USAGE: %s [-Dall,serial,telnet] [-k] [-l tty] -- [gdb-args]\n", pname); puts ("Options:"); puts ("-k target is already in kdb, don't break in"); puts ("-l tty tty:speed or host:port to get access to"); puts (" a target"); } int main (int argc, char * argv[]) { int c, pm, kdb; char * line = "/dev/ttyS0"; int speed = B38400; char * delim; struct stat st; if ( argc == 2 && argv[1][0] == '-' && argv[1][1] == '?' ) { usage (argv[0]); exit (0); } while ( (c = getopt (argc, argv, "D:kl:")) > 0 ) { switch ( c ) { case 'k': isRunning = 0; break; case 'l': line = optarg; break; case 'D': delim = optarg; do { char * nextcomma; int i; if ( (nextcomma = strchr (delim, ',')) == NULL ) { nextcomma = delim + strlen (delim); } for ( i=0; dopt[i] != NULL; i++ ) { if ( ! strncmp (delim, dopt[i], nextcomma-delim)) { if ( i ) { debug |= 1 << i; } else { debug = 0xffffffffUL; } break; } } if ( dopt[i] == NULL ) { fprintf (stderr, "Unknown debug option: %s\n", delim); exit (1); } delim = nextcomma+1; } while ( (delim - optarg) < strlen (optarg) ); break; default: usage (argv[0]); exit (1); } } if ( (delim = strchr (line, ':')) != NULL ) { *delim++ = '\0'; } /* Try to guess if we're dealing with real line or with a host name */ if ( (stat (line, &st) >= 0) && S_ISCHR (st.st_mode) ) { if ( (kdb = open (line, O_RDWR)) < 0 ) { perror (line); exit (1); } else { struct termios tio; if ( tcgetattr (kdb, & tio) < 0 ) { perror ("tcgetattr"); return (1); } else { tio.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG); tio.c_cflag &= ~(CBAUD | CSIZE | PARENB | CSTOPB | CRTSCTS ); tio.c_cflag |= B38400 | CS8 | CREAD | HUPCL; tio.c_iflag &= ~(BRKINT | ICRNL |INPCK | ISTRIP); tio.c_iflag |= IXON |IXOFF; tio.c_oflag &= ~OPOST; cfsetispeed (& tio, B38400); cfsetospeed (& tio, B38400); tio.c_cc[VMIN] = 1; tio.c_cc[VTIME] = 0; if ( tcsetattr (kdb, TCSANOW, & tio) < 0 ) { perror ("tcsetattr"); exit (1); } } } } else { /* Must be a host name - try to resolve it. Note, that host must * have a port number - defaulting to a telnet port isn't going to do * us much good here */ if ( delim == NULL ) { fputs ("Host specification requires a port number\n", stderr); exit (1); } else { static struct sockaddr_in sa; struct servent * sp; struct hostent * he; char **p; memset ( & sa, 0, sizeof (sa)); sa.sin_family = AF_INET; if ( (sp = getservbyname (delim, "tcp")) != NULL ) { sa.sin_port = htons (sp->s_port); } else { /* Lookup fails. Check if it's a number */ char * err = NULL; sa.sin_port = htons ((short int)strtol (delim, & err, 0)); if ( (err == NULL) || (*err != '\0') ) { fprintf (stderr, "Cannot find port number for port %s\n", delim); exit (1); } } if ( (he = gethostbyname (line)) == NULL ) { fprintf (stderr,"No address information for %s\n", line); exit (1); } else { memcpy (& sa.sin_addr.s_addr, * he->h_addr_list, sizeof (sa.sin_addr.s_addr)); } if ( (kdb = socket (AF_INET, SOCK_STREAM, 0)) < 0 ) { perror ("socket"); exit (1); } else { if ( connect (kdb, (struct sockaddr *)&sa, sizeof (sa)) < 0 ) { fprintf (stderr, "Cannot connect to %s - %s\n", line, strerror (errno)); exit (1); } else { /* Assume telnetd connection and try to negotiate: * reply WONT to any DOs, reply DONT to any WILL * except WILL ECHO. First non-escaped charachter stops * negotiation */ int negotiate = 1; int echo = 0; telnetmode = 1; while ( negotiate ) { fd_set fds; struct timeval tv; unsigned char negbuf[512]; int bc = 0; FD_ZERO (&fds); FD_SET (kdb, &fds); tv.tv_sec = 1; tv.tv_usec = 0; if ( select (kdb+1, &fds, NULL, NULL, &tv) > 0 ) { int nb = read (kdb, negbuf+bc, 511-bc); unsigned char rep[512], * prep = rep; int i; if ( nb > 0 && ((bc + nb) < 512)) { bc += nb; for (i=0; i < bc-2; i+= 3 ) { if ( negbuf[i] == IAC ) { switch ( negbuf[i+1] ) { case DO: if ( debug & SKDB_DBG_TELNET ) { printf ("RECV DO %s\n", telopts[negbuf[i+2]]); } prep[0] = IAC; prep[1] = WONT; prep[2] = negbuf[i+2]; prep += 3; break; case WILL: if ( debug & SKDB_DBG_TELNET ) { printf ("RECV WILL %s\n", telopts[negbuf[i+2]]); } prep[0] = IAC; prep[2] = negbuf[i+2]; if ( negbuf[i+2] != TELOPT_ECHO ) { prep[1] = DONT; } else { if ( echo ) { prep -= 3; } else { echo = 1; prep[1] = DO; } } prep += 3; break; } } else { negotiate = 0; break; } } if ( ! echo ) { prep[0] = IAC; prep[1] = DO; prep[2] = TELOPT_ECHO; prep += 3; echo = 1; } if ( debug & SKDB_DBG_TELNET ) { for ( i=0; i < prep - rep; i += 3 ) { printf ("SEND %s %s\n", TELCMD((rep[i+1])), TELOPT(rep[i+2])); } } write (kdb, rep, prep - rep); } else { fputs ("Connection closed by remote host\n", stderr); exit (1); } } else { /* Timeout - other end doesn't want * to negotiate no more */ negotiate = 0; } } } } } } if ( (pm = pfork (argc-optind, argv+optind)) >= 0 ) { int maxfd = (pm > kdb) ? pm : kdb; int bc = 0; char kdbpkt[SKDB_MAX_REQSIZ]; signal (SIGINT, SIG_IGN); while ( 1 ) { fd_set fds; FD_SET(pm, &fds); FD_SET(kdb, &fds); if (select (maxfd+1, &fds, NULL, NULL, NULL) < 0 ) { close (pm); break; } else { int i, sz; if ( FD_ISSET (pm, &fds) ) { char pkt[SKDB_MAX_REQSIZ]; if ( (sz = read (pm, pkt, SKDB_MAX_REQSIZ)) <= 0 ) { break; } pkt[sz] = '\0'; /* Sometimes gdb doesn't play by the rules and * doesn't sent packets but sends Ctrl-C instead, * which is naughty but it does it, so we check * for this case before we start processing good * packets */ if ( pkt[0] == '\3' ) { /* GDB sent us an interrupt */ kdb_request (kdb, ""); putgdbpkt (pm, "S02"); } else { gdb_process (pm, kdb, pkt); } } if ( FD_ISSET (kdb, &fds) ) { if ( (sz = read (kdb, kdbpkt+bc, SKDB_MAX_REQSIZ - bc)) >= 0 ) { char * prompt; bc += sz; kdbpkt[bc] = '\0'; if ( telnetmode ) { char * nul; while ((nul=memchr (kdbpkt, '\0', bc)) != NULL) { memmove (nul, nul+1, kdbpkt+bc-nul-1); bc--; } } if ( (prompt = strstr (kdbpkt, "kdb> ")) != NULL ) { isRunning = 0; if ( strstr (kdbpkt, "due to Keyboard Entry") != NULL ) putgdbpkt (pm, "S02"); else if ( strstr (kdbpkt, "due to Breakpoint") != NULL ) putgdbpkt (pm, "S05"); else putgdbpkt (pm, "S00"); bc -= prompt+5 - kdbpkt; memmove (kdbpkt, prompt+5, bc); } else { if ( (SKDB_MAX_REQSIZ - bc) < 5 ) { memmove (kdbpkt, kdbpkt+bc-5, 5); bc = 5; } } } } } } } close (pm); close (kdb); return (0); } From linas@austin.ibm.com Fri Jul 18 18:21:26 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 18:21:29 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.132]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J1LPFl030826 for ; Fri, 18 Jul 2003 18:21:25 -0700 Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e34.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6J1LJEh269848; Fri, 18 Jul 2003 21:21:19 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay04.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6J1LIQL200318; Fri, 18 Jul 2003 19:21:19 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6J1L7BO031192; Fri, 18 Jul 2003 20:21:07 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id UAA45484; Fri, 18 Jul 2003 20:21:07 -0500 Date: Fri, 18 Jul 2003 20:21:06 -0500 From: linas@austin.ibm.com To: Keith Owens Cc: Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements Message-ID: <20030718202106.C41118@forte.austin.ibm.com> References: <20030718194037.A48774@forte.austin.ibm.com> <13552.1058576897@ocs3.intra.ocs.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <13552.1058576897@ocs3.intra.ocs.com.au>; from kaos@sgi.com on Sat, Jul 19, 2003 at 11:08:17AM +1000 X-archive-position: 437 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb On Sat, Jul 19, 2003 at 11:08:17AM +1000, Keith Owens wrote: > On Fri, 18 Jul 2003 19:40:37 -0500, > linas@austin.ibm.com wrote: > >I'm vaguely daydreaming about a few KDB enhancements, I was curious if > >you've thought about them: > > > >-- 'cat /proc/meminfo' Turns out one bug I was chasing was OOM on > > a machine with 32GB of RAM (!) and it took me days to even think > > of looking there. > > 'sr m', same as sysrq-m. Let me rephrase that: 1) sr m is broken in my version, (Its silent) don't know why. Hmm ... sr anything is silent (but/and error-free). 2) there's other /proc structures that are human readable and are interesting to look at during crash, e.g. /proc/pci, some stuff in /proc/ppc64 > I have considered a generic facility like gdb, based off stabs or dwarf > but decided against it for now. Yeah, I've played with stabs, its a lot of work, time I don't have now. > kdb has various commands for dumping structures including vm data, see > all the code in kdb/modules. Recent versions of kdb added a 'task' > command for dumping and decoding struct task. Another good reason to > upate ppc64 to kdb v4.3 :). Hmm, I suspected as much, which is why I asked ... --linas From kaos@sgi.com Fri Jul 18 18:36:09 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 18:36:18 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J1a5Fl031260 for ; Fri, 18 Jul 2003 18:36:07 -0700 Received: (qmail 24205 invoked from network); 19 Jul 2003 01:36:03 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 19 Jul 2003 01:36:03 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 4468CD84FE; Sat, 19 Jul 2003 11:35:43 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 418D6912F1; Sat, 19 Jul 2003 11:35:43 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: linas@austin.ibm.com Cc: Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements In-reply-to: Your message of "Fri, 18 Jul 2003 20:21:06 EST." <20030718202106.C41118@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 19 Jul 2003 11:35:38 +1000 Message-ID: <14252.1058578538@ocs3.intra.ocs.com.au> X-archive-position: 438 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Fri, 18 Jul 2003 20:21:06 -0500, linas@austin.ibm.com wrote: >1) sr m is broken in my version, (Its silent) don't know why. > Hmm ... sr anything is silent (but/and error-free). Probably sysrq is disabled. Recent versions of kdb automatically enable sysrq when you use the kdb sr command. Another good reason to upgrade to kdb v4.3 (do I detect a trend here?). >2) there's other /proc structures that are human readable and are > interesting to look at during crash, e.g. /proc/pci, some stuff > in /proc/ppc64 If getting that data requires taking locks, then it is not safe for a low level kernel debugger, it can hang the debugger. I go to all sorts of lengths to extract data in kdb without tripping over locks that may already be held. From kaos@sgi.com Fri Jul 18 18:38:40 2003 Received: with ECARTIS (v1.0.0; list kdb); Fri, 18 Jul 2003 18:38:43 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6J1ccFl031334 for ; Fri, 18 Jul 2003 18:38:39 -0700 Received: (qmail 24215 invoked from network); 19 Jul 2003 01:38:35 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 19 Jul 2003 01:38:35 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 92909D84FE; Sat, 19 Jul 2003 11:38:17 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 8FAE3912F1; Sat, 19 Jul 2003 11:38:17 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: linas@austin.ibm.com Cc: Steven Dake , Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements In-reply-to: Your message of "Fri, 18 Jul 2003 20:09:41 EST." <20030718200941.A41118@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 19 Jul 2003 11:38:12 +1000 Message-ID: <14281.1058578692@ocs3.intra.ocs.com.au> X-archive-position: 439 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Fri, 18 Jul 2003 20:09:41 -0500, linas@austin.ibm.com wrote: >Uhh... well, kgdb does have all this stuff for crawling through stabs, >and symbol tables and etc. So if source debug is really the requirement >then I'd think that adding the missing features to kgdb would be the >simpler route. Am I wrong? See skdb.c in an earlier post. It works (for given values of "works") and lets you use gdb on a second machine into kdb instead of kgdb. The biggest problem was reliably connecting to a kernel that had already entered kdb. From kaos@sgi.com Sun Jul 20 01:14:02 2003 Received: with ECARTIS (v1.0.0; list kdb); Sun, 20 Jul 2003 01:14:09 -0700 (PDT) Received: from zok.sgi.com (zok.sgi.com [204.94.215.101]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6K8E1Fl028026 for ; Sun, 20 Jul 2003 01:14:02 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by zok.sgi.com (8.12.9/8.12.9/linux-outbound_gateway-1.1) with SMTP id h6K8Dtq0024785 for ; Sun, 20 Jul 2003 01:13:55 -0700 Received: from kao2.melbourne.sgi.com (kao2.melbourne.sgi.com [134.14.55.180]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA20393; Sun, 20 Jul 2003 18:13:53 +1000 Received: by kao2.melbourne.sgi.com (Postfix, from userid 16331) id 3EDE1D84FE; Sun, 20 Jul 2003 18:13:36 +1000 (EST) Received: from kao2.melbourne.sgi.com (localhost [127.0.0.1]) by kao2.melbourne.sgi.com (Postfix) with ESMTP id 3C1D9912F1; Sun, 20 Jul 2003 18:13:36 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: kdb@oss.sgi.com, linux-kernel@vger.kernel.org Subject: Re: Announce: kdb v4.3 is available for kernels 2.4.20, 2.4.21 In-reply-to: Your message of "Mon, 14 Jul 2003 15:21:00 +1000." <1441.1058160060@kao2.melbourne.sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 20 Jul 2003 18:13:31 +1000 Message-ID: <5237.1058688811@kao2.melbourne.sgi.com> X-archive-position: 440 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb ftp://oss.sgi.com/projects/kdb/download/v4.3/ Current versions are kdb-v4.3-2.4.21-common-8.bz2, kdb-v4.3-2.4.21-i386-5.bz2, kdb-v4.3-2.4.21-ia64-030702-2.bz2. Changelog extracts. common 2003-07-20 Keith Owens * Make kdb_serial_str a common constant, the same for all consoles. * Support SGI L1 console. * kdb v4.3-2.4.21-common-8. 2003-07-14 Keith Owens * Correct ll command. * kdb v4.3-2.4.21-common-7. 2003-07-08 Keith Owens * Export more kdb symbols. Vamsi Krishna S., IBM. * kdb v4.3-2.4.21-common-6. 2003-07-07 Keith Owens * Tweak 'waiting for cpus' message. * kdb v4.3-2.4.21-common-5. 2003-07-07 Keith Owens * 2.4.21-ia64-030702 patches common code that affects kdb. Workaround this nuisance. * kdb v4.3-2.4.21-common-4. 2003-06-24 Keith Owens * Add task and sigset commands. Mark Goodwin, SGI. * kdb v4.3-2.4.21-common-3. 2003-06-23 Keith Owens * Sync with XFS 2.4.21 tree. * kdb v4.3-2.4.21-common-2. i386 2003-07-20 Keith Owens * Remove compile warning on x86 commands. * kdb v4.3-2.4.21-i386-5. 2003-07-08 Keith Owens * Add new x86 commands - rdv, gdt, idt, ldt, ldtp, ptex. Vamsi Krishna S., IBM. * kdb v4.3-2.4.21-i386-4. 2003-07-01 Keith Owens * Convert kdba_find_return() to two passes to reduce false positives. * Correct jmp disp8 offset calculation for out of line lock code. * Use NMI for kdb IPI in clustered APIC mode. Sachin Sant, IBM. * kdb v4.3-2.4.21-i386-3. 2003-06-23 Keith Owens * Sync with XFS 2.4.21 tree. * kdb v4.3-2.4.21-i386-2. ia64 2003-07-20 Keith Owens * MCA rendezvous timeout affects kdb_wait_for_cpus_secs. * Support SGI L1 console. * kdb v4.3-2.4.21-ia64-030702-2. 2003-07-08 Keith Owens * print_symbol() in mca.c does something useful when kdb is installed. * Unwind and SAL changes removed from kdb, they are in the base kernel. * kdb v4.3-2.4.21-ia64-030702-1. From linas@austin.ibm.com Mon Jul 21 09:13:36 2003 Received: with ECARTIS (v1.0.0; list kdb); Mon, 21 Jul 2003 09:13:48 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.131]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6LGDZFl031290 for ; Mon, 21 Jul 2003 09:13:36 -0700 Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e33.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6LGDSj3275796 for ; Mon, 21 Jul 2003 12:13:28 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay04.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6LGDPll168452 for ; Mon, 21 Jul 2003 10:13:26 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6LGDNKw046088; Mon, 21 Jul 2003 11:13:23 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id LAA47366; Mon, 21 Jul 2003 11:13:23 -0500 Date: Mon, 21 Jul 2003 11:13:18 -0500 From: linas@austin.ibm.com To: Keith Owens Cc: Steven Dake , Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements Message-ID: <20030721111318.B44292@forte.austin.ibm.com> References: <20030718200941.A41118@forte.austin.ibm.com> <14281.1058578692@ocs3.intra.ocs.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <14281.1058578692@ocs3.intra.ocs.com.au>; from kaos@sgi.com on Sat, Jul 19, 2003 at 11:38:12AM +1000 X-archive-position: 441 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb On Sat, Jul 19, 2003 at 11:38:12AM +1000, Keith Owens wrote: > On Fri, 18 Jul 2003 20:09:41 -0500, > linas@austin.ibm.com wrote: > >Uhh... well, kgdb does have all this stuff for crawling through stabs, > >and symbol tables and etc. So if source debug is really the requirement > >then I'd think that adding the missing features to kgdb would be the > >simpler route. Am I wrong? > > See skdb.c in an earlier post. It works (for given values of "works") > and lets you use gdb on a second machine into kdb instead of kgdb. The > biggest problem was reliably connecting to a kernel that had already > entered kdb. Hmm. I presume some good handshaking protocol would solve the connection problem, right? What are the philosophical distinctions between kdb and kgdb? Alternately: why is it a better idea to add gdb to kdb instead of kdb features to kgdb? --linas From kaos@sgi.com Mon Jul 21 14:36:05 2003 Received: with ECARTIS (v1.0.0; list kdb); Mon, 21 Jul 2003 14:36:11 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6LLa1Fl023215 for ; Mon, 21 Jul 2003 14:36:03 -0700 Received: (qmail 29342 invoked from network); 21 Jul 2003 21:35:59 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 21 Jul 2003 21:35:59 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id DD943D84FE; Tue, 22 Jul 2003 07:35:40 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id DAC1E912F1; Tue, 22 Jul 2003 07:35:40 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: linas@austin.ibm.com Cc: kdb@oss.sgi.com Subject: Re: KDB enhancements In-reply-to: Your message of "Mon, 21 Jul 2003 11:13:18 EST." <20030721111318.B44292@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 22 Jul 2003 07:35:35 +1000 Message-ID: <13328.1058823335@ocs3.intra.ocs.com.au> X-archive-position: 442 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Mon, 21 Jul 2003 11:13:18 -0500, linas@austin.ibm.com wrote: >On Sat, Jul 19, 2003 at 11:38:12AM +1000, Keith Owens wrote: >> See skdb.c in an earlier post. It works (for given values of "works") >> and lets you use gdb on a second machine into kdb instead of kgdb. The >> biggest problem was reliably connecting to a kernel that had already >> entered kdb. > >Hmm. I presume some good handshaking protocol would solve the connection >problem, right? gdb 4 did not cope with kernels that had already entered the debugger and removed breakpoints. gdb thought that it was in control and did not like kdb beinbg in control. >What are the philosophical distinctions between kdb and kgdb? kgdb is gdb + a small kernel stub, with all the smarts in gdb. kgdb always requires a second machine, with a copy of the kernel objects. kdb is a full blown kernel debugger, gdb is an optional add on to get source level debugging. kdb can work in the same machine or from a second machine. >Alternately: why is it a better idea to add gdb to kdb instead >of kdb features to kgdb? Adding gdb to kdb gives source level debugging. kdb knows about all the special asm code in the kernel, gdb alone cannot backtrace through a lot of the kernel asm code. From linas@austin.ibm.com Mon Jul 21 15:17:12 2003 Received: with ECARTIS (v1.0.0; list kdb); Mon, 21 Jul 2003 15:17:16 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.131]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6LMHBFl027526 for ; Mon, 21 Jul 2003 15:17:12 -0700 Received: from westrelay05.boulder.ibm.com (westrelay05.boulder.ibm.com [9.17.193.33]) by e33.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6LMH5j3134786; Mon, 21 Jul 2003 18:17:05 -0400 Received: from austin.ibm.com (d03av03.boulder.ibm.com [9.17.193.83]) by westrelay05.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6LMH3dA073366; Mon, 21 Jul 2003 16:17:04 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6LMH2Yw039540; Mon, 21 Jul 2003 17:17:02 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id RAA39320; Mon, 21 Jul 2003 17:17:02 -0500 Date: Mon, 21 Jul 2003 17:17:02 -0500 From: linas@austin.ibm.com To: Keith Owens Cc: kdb@oss.sgi.com Subject: KDB pop stack? Message-ID: <20030721171702.A48304@forte.austin.ibm.com> References: <20030721111318.B44292@forte.austin.ibm.com> <13328.1058823335@ocs3.intra.ocs.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <13328.1058823335@ocs3.intra.ocs.com.au>; from kaos@sgi.com on Tue, Jul 22, 2003 at 07:35:35AM +1000 X-archive-position: 443 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb OK, thanks for the nice replies so far. Maybe the newest version has the following feature: ability to view registers as they 'would have been' if the stack were poped? I entered KDB because panic was called, I want to look at what the registers 'would have been' right before panic was called. What I currenly get seems to be 3-4 calls after the panic. I know they're in the stack there somewhere but being lazy ... --linas From kaos@sgi.com Mon Jul 21 15:46:07 2003 Received: with ECARTIS (v1.0.0; list kdb); Mon, 21 Jul 2003 15:46:11 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6LMk4Fl028853 for ; Mon, 21 Jul 2003 15:46:05 -0700 Received: (qmail 30126 invoked from network); 21 Jul 2003 22:46:02 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 21 Jul 2003 22:46:02 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id E29C4D84FE; Tue, 22 Jul 2003 08:45:42 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id DFAD5912F1; Tue, 22 Jul 2003 08:45:42 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: linas@austin.ibm.com Cc: kdb@oss.sgi.com Subject: Re: KDB pop stack? In-reply-to: Your message of "Mon, 21 Jul 2003 17:17:02 EST." <20030721171702.A48304@forte.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 22 Jul 2003 08:45:37 +1000 Message-ID: <14741.1058827537@ocs3.intra.ocs.com.au> X-archive-position: 444 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Mon, 21 Jul 2003 17:17:02 -0500, linas@austin.ibm.com wrote: >Maybe the newest version has the following feature: ability to >view registers as they 'would have been' if the stack were poped? Where are those registers stored? Working registers are overwritten. Preserved registers are saved somewhere on stack, but there is no defined place where they are stored. At least not on i386, ia64 has unwind data that says where preserved registers are saved, i386 is all ad-hoc storage with no way for kdb to tell where that storage is. From guangdeng.liao@intel.com Tue Jul 22 01:56:22 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 22 Jul 2003 01:56:33 -0700 (PDT) Received: from hermes.jf.intel.com (fmr05.intel.com [134.134.136.6]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6M8uLFl010958 for ; Tue, 22 Jul 2003 01:56:22 -0700 Received: from petasus.jf.intel.com (petasus.jf.intel.com [10.7.209.6]) by hermes.jf.intel.com (8.11.6p2/8.11.6/d: outer.mc,v 1.66 2003/05/22 21:17:36 rfjohns1 Exp $) with ESMTP id h6M8sAf22199 for ; Tue, 22 Jul 2003 08:54:10 GMT Received: from pdsmsxvs01.pd.intel.com (pdsmsxvs01.pd.intel.com [172.16.12.122]) by petasus.jf.intel.com (8.11.6p2/8.11.6/d: inner.mc,v 1.35 2003/05/22 21:18:01 rfjohns1 Exp $) with SMTP id h6M8pO220395 for ; Tue, 22 Jul 2003 08:51:24 GMT Received: from pdsmsx331.ccr.corp.intel.com ([172.16.12.58]) by pdsmsxvs01.pd.intel.com (NAVGW 2.5.2.11) with SMTP id M2003072216561518197 ; Tue, 22 Jul 2003 16:56:15 +0800 Received: from pdsmsx402.ccr.corp.intel.com ([172.16.12.50]) by pdsmsx331.ccr.corp.intel.com with Microsoft SMTPSVC(5.0.2195.5329); Tue, 22 Jul 2003 16:56:15 +0800 Subject: eature--Single Step of KDB on xscale is on work MIME-Version: 1.0 Content-Type: text/plain; charset="gb2312" Date: Tue, 22 Jul 2003 16:56:13 +0800 Message-ID: content-class: urn:content-classes:message X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: eature--Single Step of KDB on xscale is on work Thread-Index: AcNQLxoniT+lR+jHTxKbwkULRJBUVg== From: "LIAO, GUANGDENG" To: Cc: X-OriginalArrivalTime: 22 Jul 2003 08:56:15.0030 (UTC) FILETIME=[1B6CB560:01C3502F] Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id h6M8uLFl010958 X-archive-position: 445 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: guangdeng.liao@intel.com Precedence: bulk X-list: kdb HI all: For personal interest. I have tested the Feature¡ªSingle Step of KDB Patch on Xscale. And find it is good. Because of difference between Ia32 and Xscale Architecture. So I develop some new test suites to test it. As follows: .macro COND_INS_LOGICAL bit_cond,ins,ins_cond,category1,category2,rd1,rd2,rs,shifter_operator mrs r0,cpsr and r0, r0, #MASK_NZCV orr r0, r0, #\bit_cond msr cpsr,r0 .if \category1 add r1,r15,#12 ¡­¡­¡­¡­¡­¡­¡­. If you want to test Single step, I will happy to give your Test suites to test it --Danny From quintela@mandrakesoft.com Tue Jul 22 05:28:28 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 22 Jul 2003 05:28:41 -0700 (PDT) Received: from mail.trasno.org (cm19173.red.mundo-r.com [213.60.19.173]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6MCSCFl025459 for ; Tue, 22 Jul 2003 05:28:17 -0700 Received: by mail.trasno.org (Postfix, from userid 1001) id EE40C7C4; Tue, 22 Jul 2003 13:58:24 +0200 (CEST) To: linas@austin.ibm.com Cc: Keith Owens , Will Schmidt , kdb@oss.sgi.com Subject: Re: KDB enhancements X-Url: http://people.mandrakesoft.com/~quintela From: Juan Quintela In-Reply-To: <20030718202106.C41118@forte.austin.ibm.com> (linas@austin.ibm.com's message of "Fri, 18 Jul 2003 20:21:06 -0500") References: <20030718194037.A48774@forte.austin.ibm.com> <13552.1058576897@ocs3.intra.ocs.com.au> <20030718202106.C41118@forte.austin.ibm.com> Date: Tue, 22 Jul 2003 13:58:24 +0200 Message-ID: <86k7aapycf.fsf@trasno.mitica> User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-archive-position: 446 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: quintela@mandrakesoft.com Precedence: bulk X-list: kdb >>>>> "linas" == linas writes: Hi I am not sure if you already checked this: linas> 1) sr m is broken in my version, (Its silent) don't know why. linas> Hmm ... sr anything is silent (but/and error-free). look at the console loglevel, if you have a low on, sysrq output goes to syslog/dmesg, but not to the console. break 8 will do the trick. Later, Juan. -- In theory, practice and theory are the same, but in practice they are different -- Larry McVoy From linas@austin.ibm.com Tue Jul 22 17:06:22 2003 Received: with ECARTIS (v1.0.0; list kdb); Tue, 22 Jul 2003 17:06:27 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.131]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6N061Fl015673 for ; Tue, 22 Jul 2003 17:06:22 -0700 Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e33.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6N05sj3206266; Tue, 22 Jul 2003 20:05:54 -0400 Received: from austin.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay04.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6N05snK139712; Tue, 22 Jul 2003 18:05:54 -0600 Received: from forte.austin.ibm.com (forte.austin.ibm.com [9.53.85.27]) by austin.ibm.com (8.12.9/8.12.9) with ESMTP id h6N05rYw043746; Tue, 22 Jul 2003 19:05:53 -0500 Received: (from linas@localhost) by forte.austin.ibm.com (AIX4.3/8.9.3/8.9.3-client1.01) id TAA48410; Tue, 22 Jul 2003 19:05:53 -0500 Date: Tue, 22 Jul 2003 19:05:52 -0500 From: linas@austin.ibm.com To: Keith Owens Cc: kdb@oss.sgi.com Subject: Re: KDB pop stack? Message-ID: <20030722190552.B38330@forte.austin.ibm.com> References: <20030721171702.A48304@forte.austin.ibm.com> <14741.1058827537@ocs3.intra.ocs.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <14741.1058827537@ocs3.intra.ocs.com.au>; from kaos@sgi.com on Tue, Jul 22, 2003 at 08:45:37AM +1000 X-archive-position: 447 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: linas@austin.ibm.com Precedence: bulk X-list: kdb On Tue, Jul 22, 2003 at 08:45:37AM +1000, Keith Owens wrote: > On Mon, 21 Jul 2003 17:17:02 -0500, > linas@austin.ibm.com wrote: > >Maybe the newest version has the following feature: ability to > >view registers as they 'would have been' if the stack were poped? > > Where are those registers stored? Working registers are overwritten. > Preserved registers are saved somewhere on stack, but there is no > defined place where they are stored. At least not on i386, ia64 has > unwind data that says where preserved registers are saved, i386 is all > ad-hoc storage with no way for kdb to tell where that storage is. Well, yes, I didn't say it was 'easy'. I'm working with ppc64, and the save of the non-volatile registers happens in function prologs/epilogs. The dirty/ugly method would be to disassemble these, and do some guessing. I don't know what 'unwind data' is: I assume its some extra debugging info that gcc stores somewhere, indicating which regs got clobbered? Or is this some kinda ia64 instructon or convention? Yeah, if its *.S files, and the coder didn't manually arrange for the unwind data, then you SOL. gdb has a pop stack command, I don't know how it works ... A hypothetical kdb pop-stack-show-regs command doesn't need to get the working/volatile regs right. Looking at thier contents wouldn't provide any useful debugging info anyway. --linas From mohanlaljangir@hotmail.com Thu Jul 24 21:44:55 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 24 Jul 2003 21:45:01 -0700 (PDT) Received: from hotmail.com (law11-oe30.law11.hotmail.com [64.4.16.87]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6P4isFl030911 for ; Thu, 24 Jul 2003 21:44:55 -0700 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Thu, 24 Jul 2003 21:44:49 -0700 Received: from 203.200.20.226 by law11-oe30.law11.hotmail.com with DAV; Fri, 25 Jul 2003 04:44:49 +0000 X-Originating-IP: [203.200.20.226] X-Originating-Email: [mohanlaljangir@hotmail.com] From: "mohanlal jangir" To: Subject: kdb queries !! Date: Fri, 25 Jul 2003 10:08:57 +0530 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Message-ID: X-OriginalArrivalTime: 25 Jul 2003 04:44:49.0479 (UTC) FILETIME=[7AF98D70:01C35267] X-archive-position: 448 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: mohanlaljangir@hotmail.com Precedence: bulk X-list: kdb I have been working with gdb and kgdb for a long time but have absolutely no idea about kdb. I have some questions regarding kdb. 1. I read somewhere that kdb can allow single stepping for kernel source on same machine. How does kdb do this? If kernel is stopped then who will take care of kdb? 2. How to install kdb on my Linux i386 system and how to use it? Is there any HOWTOs for kdb. Regards Mohanlal From kaos@sgi.com Thu Jul 24 22:09:55 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 24 Jul 2003 22:10:02 -0700 (PDT) Received: from zok.sgi.com (zok.SGI.COM [204.94.215.101]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6P59sFl031703 for ; Thu, 24 Jul 2003 22:09:54 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by zok.sgi.com (8.12.9/8.12.9/linux-outbound_gateway-1.1) with SMTP id h6P59lq0014854 for ; Thu, 24 Jul 2003 22:09:48 -0700 Received: from kao2.melbourne.sgi.com (kao2.melbourne.sgi.com [134.14.55.180]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA29045; Fri, 25 Jul 2003 15:09:44 +1000 Received: by kao2.melbourne.sgi.com (Postfix, from userid 16331) id 80940D84FE; Fri, 25 Jul 2003 15:09:43 +1000 (EST) Received: from kao2.melbourne.sgi.com (localhost [127.0.0.1]) by kao2.melbourne.sgi.com (Postfix) with ESMTP id 7FEC691358; Fri, 25 Jul 2003 15:09:43 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: "mohanlal jangir" Cc: kdb@oss.sgi.com Subject: Re: kdb queries !! In-reply-to: Your message of "Fri, 25 Jul 2003 10:08:57 +0530." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 25 Jul 2003 15:09:38 +1000 Message-ID: <6320.1059109778@kao2.melbourne.sgi.com> X-archive-position: 449 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Fri, 25 Jul 2003 10:08:57 +0530, "mohanlal jangir" wrote: >I have been working with gdb and kgdb for a long time but have absolutely no >idea about kdb. I have some questions regarding kdb. > >1. I read somewhere that kdb can allow single stepping for kernel source on >same machine. How does kdb do this? If kernel is stopped then who will take >care of kdb? Read the source and man pages. >2. How to install kdb on my Linux i386 system and how to use it? Is there >any HOWTOs for kdb. ftp://oss.sgi.com/projects/kdb/download/v4.3/README. See also Documentation/kdb in the common patch. From transnet@gmx.de Sat Jul 26 11:13:41 2003 Received: with ECARTIS (v1.0.0; list kdb); Sat, 26 Jul 2003 11:13:46 -0700 (PDT) Received: from mail.gmx.net (pop.gmx.de [213.165.64.20]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6QIDdFl027773 for ; Sat, 26 Jul 2003 11:13:41 -0700 Message-Id: <200307261813.h6QIDdFl027773@oss.sgi.com> Received: (qmail 32430 invoked by uid 65534); 26 Jul 2003 18:13:33 -0000 Received: from pD9E82448.dip.t-dialin.net (HELO there) (217.232.36.72) by mail.gmx.net (mp023) with SMTP; 26 Jul 2003 20:13:33 +0200 Content-Type: text/plain; charset="iso-8859-1" From: "transnet@gmx.de" To: kdb@oss.sgi.com Subject: go keyboard hang Date: Sat, 26 Jul 2003 22:15:45 +0200 X-Mailer: KMail [version 1.3.2] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-archive-position: 450 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: transnet@gmx.de Precedence: bulk X-list: kdb Hi, my system: 450mhz, Dell Optiplex GX1, Debian Woody I am newbie to kgb and I have a Problem. After I compiled the 2.4.19 Kernel with the patches, kdb-v2.4-2.4.19-common-3, kdb-v2.4-2.4.19-i386-2, I have the problem of the keyboardhang after the go-command, like it is described in the FAQ. But how can I make kdb run now? Thanks Thomas Feldmann From kaos@sgi.com Sat Jul 26 18:51:59 2003 Received: with ECARTIS (v1.0.0; list kdb); Sat, 26 Jul 2003 18:52:06 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6R1puFl015311 for ; Sat, 26 Jul 2003 18:51:58 -0700 Received: (qmail 11065 invoked from network); 27 Jul 2003 01:51:52 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 27 Jul 2003 01:51:52 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 4BB07D84FE; Sun, 27 Jul 2003 11:51:49 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 48E2591358; Sun, 27 Jul 2003 11:51:49 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: "transnet@gmx.de" Cc: kdb@oss.sgi.com Subject: Re: go keyboard hang In-reply-to: Your message of "Sat, 26 Jul 2003 22:15:45 +0200." <200307261813.h6QIDdFl027773@oss.sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 27 Jul 2003 11:51:44 +1000 Message-ID: <1644.1059270704@ocs3.intra.ocs.com.au> X-archive-position: 451 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Sat, 26 Jul 2003 22:15:45 +0200, "transnet@gmx.de" wrote: >Hi, >my system: 450mhz, Dell Optiplex GX1, Debian Woody > >I am newbie to kgb and I have a Problem. After I compiled the 2.4.19 Kernel >with the patches, kdb-v2.4-2.4.19-common-3, kdb-v2.4-2.4.19-i386-2, I have >the problem of the keyboardhang after the go-command, like it is described in >the FAQ. This was fixed on 2003-02-03 * Add kdba_local_arch_setup/kdba_local_arch_cleanup to correct keyboard freeze. Ashish Kalra. * kdb v3.0-2.4.20-common-1. 2.4.19 is too old to support. You can either upgrade to a 2.4.21 kernel and use the latest kdb patches or you can extract the fix from the latest kdb patches and try adding the fix to the 2.4.19 kdb patches yourself. From kstansel@us.ibm.com Thu Jul 31 10:01:35 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 31 Jul 2003 10:01:40 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.131]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6VH1YFl007739 for ; Thu, 31 Jul 2003 10:01:35 -0700 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e33.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h6VH1Rj3291252 for ; Thu, 31 Jul 2003 13:01:27 -0400 Received: from d03nm691.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay02.boulder.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h6VH1Ql2157942 for ; Thu, 31 Jul 2003 11:01:27 -0600 To: kdb@oss.sgi.com MIME-Version: 1.0 Subject: amd64 X-Mailer: Lotus Notes Release 6.0 September 26, 2002 Message-ID: From: Kevin Stansell Date: Thu, 31 Jul 2003 13:01:22 -0400 X-MIMETrack: Serialize by Router on D03NM691/03/M/IBM(Release 6.0.1 [IBM]|June 10, 2003) at 07/31/2003 11:01:26, Serialize complete at 07/31/2003 11:01:26 Content-Type: text/plain; charset="US-ASCII" X-archive-position: 452 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kstansel@us.ibm.com Precedence: bulk X-list: kdb Is there planned support for kdb working with Opteron architecture? Thanks. From kaos@sgi.com Thu Jul 31 11:46:27 2003 Received: with ECARTIS (v1.0.0; list kdb); Thu, 31 Jul 2003 11:46:35 -0700 (PDT) Received: from mail.ocs.com.au (mail.ocs.com.au [203.34.97.2]) by oss.sgi.com (8.12.9/8.12.9) with SMTP id h6VIkOFl016224 for ; Thu, 31 Jul 2003 11:46:26 -0700 Received: (qmail 23568 invoked from network); 31 Jul 2003 18:46:21 -0000 Received: from ocs3.intra.ocs.com.au (192.168.255.3) by mail.ocs.com.au with SMTP; 31 Jul 2003 18:46:21 -0000 Received: by ocs3.intra.ocs.com.au (Postfix, from userid 16331) id 90A6AC21FC; Fri, 1 Aug 2003 04:46:20 +1000 (EST) Received: from ocs3.intra.ocs.com.au (localhost [127.0.0.1]) by ocs3.intra.ocs.com.au (Postfix) with ESMTP id 8DB2114009E; Fri, 1 Aug 2003 04:46:20 +1000 (EST) X-Mailer: exmh version 2.5 01/15/2001 with nmh-1.0.4 From: Keith Owens To: Kevin Stansell Cc: kdb@oss.sgi.com Subject: Re: amd64 In-reply-to: Your message of "Thu, 31 Jul 2003 13:01:22 -0400." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 01 Aug 2003 04:46:19 +1000 Message-ID: <7897.1059677179@ocs3.intra.ocs.com.au> X-archive-position: 453 X-ecartis-version: Ecartis v1.0.0 Sender: kdb-bounce@oss.sgi.com Errors-to: kdb-bounce@oss.sgi.com X-original-sender: kaos@sgi.com Precedence: bulk X-list: kdb On Thu, 31 Jul 2003 13:01:22 -0400, Kevin Stansell wrote: >Is there planned support for kdb working with Opteron architecture? Ask the x86_64 maintainers. I have not been sent any x86_64 patches for kdb.