Messages in this thread | | | Date | Fri, 27 Aug 2004 09:05:10 +0900 | From | Hiroyuki KAMEZAWA <> | Subject | Re: [Lhms-devel] Re: [RFC] buddy allocator without bitmap [3/4] |
| |
Dave Hansen wrote:
>>+ if (zone->nr_mem_map > 1) { >>+ /* >>+ * there may be hole in zone's memmap && >>+ * hole is not aligned in this order. >>+ * currently, I think CONFIG_VIRTUAL_MEM_MAP >>+ * case is only case to reach here. >>+ * Is there any other case ? >>+ */ >>+ /* >>+ * Is there better call than pfn_valid ? >>+ */ >>+ if (!pfn_valid(zone->zone_start_pfn >>+ + (page_idx ^ (1 << order)))) >>+ break; >>+ } > > > Nice try. How about putting the ia64 code in a macro or header function > that you can #ifdef out on all the other architectures? We used to be > able to see that entire while loop on one screen. That's a bit harder > now. > Currently, I think zone->nr_mem_map itself is very vague. I'm now looking for another way to remove this part entirely.
I think mem_section approarch may be helpful to remove this part, but to implement full feature of CONFIG_NONLINEAR, I'll need lots of different kind of patches. (If mem_map is guaranteed to be contiguous in one mem_section)
1. Now, I think some small parts, some essence of mem_section which makes pfn_valid() faster may be good.
And another way,
2. A method which enables page -> page's max_order calculation may be good and consistent way in this no-bitmap approach.
But this problem would be my week-end homework :).
--Kame
-- --the clue is these footmarks leading to the door.-- KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
- 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/
| |