[PATCH v2] makedumpfile: request the kernel do page scans

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

 



From: "Hatayama, Daisuke" <d.hatayama@xxxxxxxxxxxxxx>
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



[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