Hi Kazu, This seems to be an extrememly rare condition, but in any case, your patch is the correct thing to do. However, I do have two dumpfiles where the change causes the warning message to be displayed unnecessarily, which was only meant to be displayed if the mem_map cache is *not* virtually-mapped. But the single check for !(vt->flags & V_MEM_MAP) is not always sufficient, so it should also check for !(machdep->flags & VMEMMAP) like so: --- a/memory.c 2019-09-17 14:20:24.586069004 -0400 +++ b/memory.c 2019-09-17 14:36:36.765286602 -0400 @@ -6348,13 +6348,13 @@ fill_mem_map_cache(ulong pp, ulong ppend if (cnt > size) cnt = size; - if (!readmem(addr, KVADDR, bufptr, size, + if (!readmem(addr, KVADDR, bufptr, cnt, "virtual page struct cache", RETURN_ON_ERROR|QUIET)) { - BZERO(bufptr, size); - if (!(vt->flags & V_MEM_MAP) && ((addr+size) < ppend)) + BZERO(bufptr, cnt); + if (!((vt->flags & V_MEM_MAP) || (machdep->flags & VMEMMAP)) && ((addr+cnt) < ppend)) error(WARNING, "mem_map[] from %lx to %lx not accessible\n", - addr, addr+size); + addr, addr+cnt); } addr += cnt; You OK with that? Thanks, Dave ----- Original Message ----- > Hi Kazu, > > I will be out of the office until Monday September 16th. I will check > out your patch when I get back. > > Thanks, > Dave > > > ----- Original Message ----- > > > > fill_mem_map_cache() intends to read page-size-or-less size if it cannot > > read the whole cache size, but it seems it doesn't correctly, and shows > > just zero for existing data. > > > > crash> kmem -p 1000 > > PAGE PHYSICAL MAPPING INDEX CNT FLAGS > > ffffea0000000040 1000 0 0 0 0 > > crash> rd ffffea0000000040 > > ffffea0000000040: 000fffff00000400 ........ > > > > I think the size below should be cnt, and confirmed that the patch works > > well with a dump by makedumpfile -e option. > > > > Signed-off-by: Kazuhito Hagio <k-hagio@xxxxxxxxxxxxx> > > --- > > memory.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/memory.c b/memory.c > > index ac7e73679405..4584673ed0ae 100644 > > --- a/memory.c > > +++ b/memory.c > > @@ -6348,13 +6348,13 @@ fill_mem_map_cache(ulong pp, ulong ppend, char > > *page_cache) > > if (cnt > size) > > cnt = size; > > > > - if (!readmem(addr, KVADDR, bufptr, size, > > + if (!readmem(addr, KVADDR, bufptr, cnt, > > "virtual page struct cache", RETURN_ON_ERROR|QUIET)) { > > - BZERO(bufptr, size); > > - if (!(vt->flags & V_MEM_MAP) && ((addr+size) < > > ppend)) > > + BZERO(bufptr, cnt); > > + if (!(vt->flags & V_MEM_MAP) && ((addr+cnt) < > > ppend)) > > error(WARNING, > > "mem_map[] from %lx to %lx not > > accessible\n", > > - addr, addr+size); > > + addr, addr+cnt); > > } > > > > addr += cnt; > > -- > > 2.18.1 > > > > -- > Crash-utility mailing list > Crash-utility@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/crash-utility > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility