Hi Philipp,

-----Original Message-----
> Check first if a page is dumpable before printing the process. Otherwise
> there is the chance that num_dumped % per == 0 at the beginning of the
> block of undampable pages. In that case num_dumped isn't updated before
> the next dumpable page and thus print_process is called for every page
> in that block.
> 
> This is especially annoying when the block is after the last dumpable
> page and thus num_dumped == info->num_dumpable. In that case
> print_process will bypass its check to only print the process once every
> second and thus flood the console with unnecessary prints. This can lead
> to a severe decrease in performance especially when the console is in
> line mode.

Good catch and improvement, will merge this.

Thanks,
Kazu

> 
> Signed-off-by: Philipp Rudo <pr...@redhat.com>
> ---
>  makedumpfile.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/makedumpfile.c b/makedumpfile.c
> index 14556db..2ef3458 100644
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -8884,16 +8884,16 @@ write_kdump_pages_cyclic(struct cache_data 
> *cd_header, struct cache_data *cd_pag
> 
>       for (pfn = start_pfn; pfn < end_pfn; pfn++) {
> 
> -             if ((num_dumped % per) == 0)
> -                     print_progress(PROGRESS_COPY, num_dumped, 
> info->num_dumpable, &ts_start);
> -
>               /*
>                * Check the excluded page.
>                */
>               if (!is_dumpable(info->bitmap2, pfn, cycle))
>                       continue;
> 
> +             if ((num_dumped % per) == 0)
> +                     print_progress(PROGRESS_COPY, num_dumped, 
> info->num_dumpable, &ts_start);
>               num_dumped++;
> +
>               if (!read_pfn(pfn, buf))
>                       goto out;
> 
> --
> 2.35.1

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to