makedumpfile: question about memory hole

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Kumagai-san,

I have a question about memory hole.

For example, create_1st_bitmap() calculates memory holes in the part
below:

int
create_1st_bitmap(void)
{
...
        /*
         * If page is on memory hole, set bit on the 1st-bitmap.
         */
        pfn_bitmap1 = 0;
        for (i = 0; get_pt_load(i, &phys_start, &phys_end, NULL, NULL); i++) {

                print_progress(PROGRESS_HOLES, i, num_pt_loads);

                pfn_start = paddr_to_pfn(phys_start);
                pfn_end   = paddr_to_pfn(phys_end);

                if (!is_in_segs(pfn_to_paddr(pfn_start)))
                        pfn_start++;
                for (pfn = pfn_start; pfn < pfn_end; pfn++) {
                        set_bit_on_1st_bitmap(pfn);
                        pfn_bitmap1++;
                }
        }
        pfn_memhole = info->max_mapnr - pfn_bitmap1;

What I don't understand well is that the part here:

                pfn_start = paddr_to_pfn(phys_start);
                pfn_end   = paddr_to_pfn(phys_end);

                if (!is_in_segs(pfn_to_paddr(pfn_start)))
                        pfn_start++;

phys_start and pfn_to_paddr(pfn_start) should belong to the same page
frame, so I suspect the pfn_start should be included in vmcore.

Looking into kexec-tool side, I don't see additional modification made
to phys_start after it's parsed from /proc/iomem or counterpart on EFI
interface. Is there any assumption about memory holes behind kernel?

Thanks.
HATAYAMA, Daisuke




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux