----- Original Message ----- > Hi Dave, > > One question: > > #define FILL_PML4() { \ > if (!(pc->flags & RUNTIME) || ACTIVE()) { \ > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > I am confused that crash checks the flags in the FILL_PML4() macro, but > not check that in other macros, such as FILL_PGD(). Good question -- I don't have a really good answer... I think it's a legacy of an earlier time, but as I recall, the !RUNTIME check was simply to ensure that it had been initialized at least once during session initialization. I don't recall the reasoning behind the ACTIVE() check, other than the fact that while it could never change in a dumpfile, conceivably it may change during an active session in future kernels? However, I believe that once FILL_PML4() is called in x86_64_init_kernel_pgd(), it really never needs to be called again. So it pretty much makes the checks redundantly for the sake of absolute surety. Dave > > Could you tell me why we need to do this check? > > if (!IS_LAST_PML4_READ(vt->kernel_pgd[0])) \ > readmem(vt->kernel_pgd[0], KVADDR, > machdep->machspec->pml4, \ > PAGESIZE(), "init_level4_pgt", FAULT_ON_ERROR); \ > machdep->machspec->last_pml4_read = > (ulong)(vt->kernel_pgd[0]); \ > } \ > } > > Thanks, > dou > > > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility