From: "Hatayama, Daisuke" <[email protected]>
Subject: RE: [PATCH v2] makedumpfile: request the kernel do page scans
Date: Thu, 22 Nov 2012 01:43:39 +0000

[...]

>> +/*
>> + * limit the size of the pfn list to this many pfn_element structures
>> + */
>> +#define MAX_PFN_LIST 10000
>> +
>> +/*
>> + * one element in the pfn_list
>> + */
>> +struct pfn_element {
>> +    unsigned long pfn;
>> +    unsigned long order;
>> +};
>> +
>> +/*
>> + * a request for finding pfn's that can be excluded from the dump
>> + * they may be pages of particular types or free pages
>> + */
>> +struct pfn_list_request {
>> +    int request;            /* PL_REQUEST_FREE PL_REQUEST_EXCLUDE or
>> */
>> +                            /* PL_REQUEST_MEMMAP */
>> +    int debug;
>> +    unsigned long paddr;    /* mem_map address for
>> PL_REQUEST_EXCLUDE */
>> +    unsigned long pfn_start;/* pfn represented by paddr */
>> +    unsigned long pgdat_paddr; /* for PL_REQUEST_FREE */
>> +    unsigned long pgdat_vaddr; /* for PL_REQUEST_FREE */
>> +    int node;               /* for PL_REQUEST_FREE */
>> +    int exclude_bits;       /* for PL_REQUEST_EXCLUDE */
>> +    int count;              /* for PL_REQUEST_EXCLUDE */
>> +    void *reply_ptr;        /* address of user's pfn_reply, for reply
>> */
> 
> How about passing bitmap instead of lists and making kernel side unset bits
> corresponding to unnecessary pages? It's less coping and constant.
> 

Again, there's also small memory issue. makedumpfile v1.5.1 calculates
cyclic buffer size automatically from MemFree in /proc/meminfo. It's
40% of MemFree. There are two bitmaps so 80% is used in total.

Now, if passing bitmap as usual, copy_from_user() would be used. But
then, kernel space needs to prepare buffer of the cyclic buffer
size. It's 120% in total.

Alternatively, my idea is to export bitmap from kernel-space, and from
makedumpfile, mmap it, read it and then updates it each time one cycle
ends.

Thanks.
HATAYAMA, Daisuke

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to