From owner-cvs-src@FreeBSD.ORG Mon Oct 3 16:45:53 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EA0EE16A41F; Mon, 3 Oct 2005 16:45:53 +0000 (GMT) (envelope-from nate@root.org) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 498E143D5C; Mon, 3 Oct 2005 16:45:52 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.5.50] (ppp-71-139-110-53.dsl.snfc21.pacbell.net [71.139.110.53]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j93Gjuo5030789 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 3 Oct 2005 09:45:57 -0700 Message-ID: <43416038.6020701@root.org> Date: Mon, 03 Oct 2005 09:45:44 -0700 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Robert Watson References: <200510022257.j92MvV4N007297@repoman.freebsd.org> <20051003094732.H71864@fledge.watson.org> In-Reply-To: <20051003094732.H71864@fledge.watson.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, Olivier Houchard , cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ddb db_command.c db_output.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Oct 2005 16:45:54 -0000 Robert Watson wrote: > On Sun, 2 Oct 2005, Olivier Houchard wrote: > >> cognet 2005-10-02 22:57:31 UTC >> >> FreeBSD src repository >> >> Modified files: >> sys/ddb db_command.c db_output.c >> Log: >> - Call db_setup_paging() for traceall. >> - Make it so one can't call db_setup_paging() if it has already been >> called >> before. traceall needs this, or else the db_setup_paging() call from >> db_trace_thread() will reset the printed line number, and override its >> argument. >> This is not perfect for traceall, because even if one presses 'q' >> while in >> the middle of printing a backtrace it will finish printing the backtrace >> before exiting, as db_trace_thread() won't be notified it should >> stop, but >> it is hard to do better without reworking the pager interface a lot >> more. > > > Thanks! > > Is there any chance I can interest you in an idea phk, I, and a few > others have been kicking around for a bit relating to smart small dumps? > Specifically, we were discussing the idea of allowing a dumping mode in > which rather than dumping all of kernel memory, we dump specifically the > common and useful output from ddb, such as ps, show locked vnods, show > alllocks, traceall, show allpcpu, and so on, basically in text format, > to the dump partition. Then the results can be pulled off easily in a > format that is appropriate for e-mailing or submitting via a PR, even > without a full debugging kernel, etc. Among other things, these dumps > would be much, much smaller than a memory dump, meaning they could be > kept around like log files (/var/log/crash.log.0, ...), be e-mailed to > the sysadmin, etc. It would require some new magic in DDB and the > dumping code, but almost all of the logic to generate the information > from DDB could be reused, perhaps via an alternative pager or debug > output device :-). That's fine as a hack-around, but I hope that doesn't distract effort from sparse kernel dumps. If you throw out non-anonymous pages, buffer cache, etc., you end up with a very small image to begin with. Add in gzip compression and it wouldn't be much larger than your uncompressed logs. Then you can run whatever info tools you want against the core since no actual data is lost. -- Nate