> +#ifdef CONFIG_DEBUG_FS > +static int tdx_shared_memory_show(struct seq_file *m, void *p) > +{ > + unsigned long addr, end; > + unsigned long found = 0; > + > + addr = PAGE_OFFSET; > + end = PAGE_OFFSET + get_max_mapped(); > + > + while (addr < end) { > + unsigned long size; > + unsigned int level; > + pte_t *pte; > + > + pte = lookup_address(addr, &level); > + size = page_level_size(level); > + > + if (pte && pte_decrypted(*pte)) > + found += size / PAGE_SIZE; > + > + addr += size; This could be a long loop, perhaps add cond_resched() here? > + } > + > + seq_printf(m, "Number of unshared pages in kernel page tables: %16lu\n", > + found); > + seq_printf(m, "Number of pages accounted as unshared: %16ld\n", > + atomic_long_read(&nr_shared)); > + return 0; > +} > + _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec