> +#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
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to