Takao Indoh wrote: > Hi Bob, Dave, > > On Wed, 08 Nov 2006 16:08:08 -0500, Dave Anderson wrote: > > >Bob Montgomery wrote: > > > >> I've been experimenting with the makedumpfile utility for kdump on ia64. > >> One of my experiments was to verify that a page that should have been > >> missing indeed was missing. I used crash 4.0-3.8 to look for a user > >> page that should have been omitted from the dump. > >> > >> crash> x/xg 0xe0000040fc00c000 > >> 0xe0000040fc00c000: 0x0000000000000000 > >> > >> On a full dump from makedumpfile as well as on a straight copy of > >> vmcore, crash reports this: > >> > >> crash> x/xg 0xe0000040fc00c000 > >> 0xe0000040fc00c000: 0x00010102464c457f > >> > >> The dumpfiles created by makedumpfile appear to crash as diskdump files, > >> and crash appears to excuse missing pages and report 0x0 contents here: > >> > >> diskdump.c:read_diskdump, line 454: > >> > >> if (!page_is_dumpable(pfn)) { > >> memset(bufptr, 0, cnt); > >> return cnt; > >> > >> Shouldn't there be some indication that a requested page is missing as > >> opposed to being legitimately full of zeros? > >> > >> Bob Montgomery > > > >Hi Bob, > > > >That decision was made by the diskdump developers > >when I accepted their diskdump-specific work into the > >crash utility. > > > >As I recall, I kind of agreed with you at the time, but there > >was some compelling reason that they had that argued for > >passing a zero-filled page -- although I don't recall what it > >was? > > > >I don't believe it had anything to do with user pages, > >but in the case of some of the other kernel pages that can > >be left out of the dump, passing back a zero-filled page > >was a cleaner way to handle whatever the problem was. > > > >Anyway, I've long since forgotten why they wanted it > >that way... > > > >Perhaps the diskdump guys on this list can refresh my > >memory? > > My memory is also unclear... > As far as my dim memory goes, I decided the following policy when I > wrote this code. > > 1) If the page is not found because of invalid address(e.g. address > points memory hole), read_diskdump should return error. > 2) If the page is not found because of partial dump, read_diskdump > should return zero-filled page. > > Perhaps I decided the 2nd policy because of simplicity of implementation. > Bob points out that crash should do something instead of passing > zero-filled page (e.g. showing message) in the 2nd case, right? > If I recall, displaying an error message at the point of the zero-filled page return could happen in an inopportune time, messing up the output of something? In other words, the code that read the zero-filled page was expecting some type of known data, and when it received a zero, it quietly and gracefully continued. I think... What you could do is set up makedumpfile to restrict pages to its maximum capability, and instead of returning a zero-filled page in read_diskdump(), insert an "error(FATAL,...)" call there. It would be interesting to note whether (1) the system comes up, and (2) whether it effects commands that otherwise would work. Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility