Re: [PATCH 2/3] arm: Add config option for HOLES_IN_ZONE

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

 



On 4/2/2010 2:56 AM, Mel Gorman wrote:
Have you managed to trigger this problem? I am assuming you are not
referring to page migration as such but more likely when pages shuffle
between lists in move_freepages(). To trigger a problem there, I think
you would have to have a memory layout that had an
max-order-unaligned-hole in the middle of a zone. Is that happening?

Yes, that is exactly what's happening. I communed with you some time ago regarding this problem. I see crashes in move_freepages_block() without this patch.

If so, another possibility you may want to consider (if you haven't
already) is to ensure in free_memmap() that if holes are being punched
in the middle of a zone that they are only max-order aligned. This would
avoid corruption problems without taking a performance hit.

I did consider this. The only problem here is that for each unaligned memory hole, we waste some more amount of memory (8, 16, or 24KB) assuming 1 MB aligned end addresses and MAX_ORDER == 11. That doesn't sound that bad, but there's always the chance that somebody has a lot of holes in their memory map. I suppose it's not truly 'wasted' in the sense that it's necessary for correctness; and I agree that it may be better than taking a run-time performance hit.

As you suggested, it's not easy to quantify what sort of performance hit we're taking. Without solid data, it might be safer to go your suggested route of freeing only legitimate memmap entries. I will test on my end that this does indeed keep the allocator happy (eg. no crashes) and does not cause any bad observable side effects.

I guess the only questions for linux-arm-kernel is whether they would be okay with freeing a little less memmap in the case of unaligned bank end addresses, and whether they think this warrants an info message to the user during bootup that they should consider aligning them to save a little memory.

Thanks,
Michael
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux