Messages in this thread | | | Date | Tue, 25 Apr 2006 10:05:27 +0100 (IST) | From | Mel Gorman <> | Subject | Re: [PATCH 0/7] [RFC] Sizing zones and holes in an architecture independent manner V4 |
| |
On Tue, 25 Apr 2006, KAMEZAWA Hiroyuki wrote:
> On Mon, 24 Apr 2006 21:20:09 +0100 (IST) > Mel Gorman <mel@csn.ul.ie> wrote: > >> This is V4 of the patchset to size zones and memory holes in an >> architecture-independent manner. >> > > Could you add some documentation about 'how to use' your generic funcs ? > I think more archs can use your generic routine if well documented. > > All initialization path can be written in following way ? > == > for_all_memory_region() > add_active_range(nid, start, end) > free_area_init_nodes(max_dma, max_dma32, max_low_pfn, max_pfn); > ==
Yes, that is accurate. I can write in some documentation.
> > And following functions are really needed ?
Most of them, yes. Without them, the arch-specific could would need to be able to iterate through the list of active regions which would lead to more similar-looking code.
> ==
> +extern void remove_all_active_ranges(void);
Used by x86_64 when it finds the SRAT table is bad and needs to rediscover active regions in another way. Spontaneous reboots were possible without it.
> +extern void get_pfn_range_for_nid(unsigned int nid, > + unsigned long *start_pfn, unsigned long *end_pfn);
Currently only used by power when initialising the boot allocator. There were no obvious canditates for use elsewhere.
> +extern unsigned long find_min_pfn_with_active_regions(void);
This does not need to be in a header.
> +extern unsigned long find_max_pfn_with_active_regions(void);
Could be dropped, only required by x86_64.
> +extern int early_pfn_to_nid(unsigned long pfn);
Removed two copies of similar functions from power and x86. I thought I could replace the IA64 one as well, but the code was unusual enough there that I decided not to.
> +extern void free_bootmem_with_active_regions(int nid, > + unsigned long max_low_pfn);
Removes similar-looking code from power and x86_64.
> +extern void sparse_memory_present_with_active_regions(int nid);
This is only used by power.
> +extern unsigned long absent_pages_in_range(unsigned long start_pfn, > + unsigned long end_pfn); >
Removes similar looking code from x86_64. For all other architectures, it does the job of the existing functions that calculate zholes_size[].
-- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |