----- Original Message -----
...
>
> As far as the gcore extension module, that is maintained by Daisuke Hatayama,
> and he make all decisions w/respect to that codebase. I've cc'd this
response
> to him.
Thanks Zhao for your patch set.
Thanks for ccing me, Dave.
I agree that ZRAM support is useful as your explanation. On the other
hand, it is not only for crash gcore command, but also for crash utility. I think
it more natural than the current implementation of your patch set that you
implement a ZRAM support in crash utility and then do it in crash gcore command.
If the ZRAM support were transparent to readmem() interface, there would be no need
to implement crash gcore command at all. If not, there would be need to add a new code
for the ZRAM support just corresponding to the following stanza in
0001-gcore-add-support-zram-swap.patch:
@@ -225,6 +417,18 @@ void gcore_coredump(void)
strerror(errno));
} else {
pagefaultf("page fault at %lx\n", addr);
+ if (paddr != 0) {
+ pte_val = paddr;
+ if(try_zram_decompress(pte_val, (unsigned char
*)buffer) == PAGE_SIZE)
+ {
+ error(WARNING, "zram decompress
successed\n");
+ if (fwrite(buffer, PAGE_SIZE, 1,
gcore->fp) != 1)
+ error(FATAL, "%s: write:
%s\n", gcore->corename, strerror(errno));
+ continue;
+ }
+
+ }
I'm not clear on how zram is linked into the user-space mapping. For user space that
has been swapped out to a zram swap device, I presume it's the same as is, but it
references the zram swap device. But for other user-space mappings (non-swapped),
what does the "vm -p" display for user space virtual address pages that are
backed
by zram? And for that matter, what does "vtop <address>" show?
Thanks,
Dave