Re: [LSF/MM TOPIC] Improving CMA

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

 



Hello Laura,

On Mon, Nov 24, 2014 at 05:54:14PM -0800, Laura Abbott wrote:
> There have been a number of patch series posted designed to improve various
> aspects of CMA. A sampling:
> 
> https://lkml.org/lkml/2014/10/15/623
> http://marc.info/?l=linux-mm&m=141571797202006&w=2
> https://lkml.org/lkml/2014/6/26/549
> 
> As far as I can tell, these are all trying to fix real problems with CMA but
> none of them have moved forward very much from what I can tell. The goal of
> this session would be to come out with an agreement on what are the biggest
> problems with CMA and the best ways to solve them.

Thanks for the proposal.
Yes, CMA has broken for a long time.

1. Memory allocation for CMA area -> Broken
2. Memory reclaim for CMA area -> Broken
3. CMA allocation latency -> Broken
4. CMA allocation success guarantee -> Broken.

I believe there is no real product to use vanilla CMA in mainline
without any hack.

Recently, there are some efforts to fix 1 but patchset I have seen hurt
allocator's hot path which is really not what I want. Instead, I suggested
to use movalbe zone. It would help 1 and 2 problem and make mm code simple
so I think it's worth to try before making mm code more bloat with CMA hooks.
https://lkml.org/lkml/2014/11/4/55

However, we don't have a nice idea to solve 3 and 4 still.
There were some trying to migrate CMA page out when someone try to pin
CMA page via GUP but it's not a perfect solution. We should take care of
indirect object dependency(ex, obj A gets obj B, obj B gets obj C)
so page located in obj C will not release until obj B release and
obj B doesn't relase until obj A released). It means we should
take care of get_page as well as GUP. It's terrible.

Recently, I and SeongJae posted GCMA(Guaranteed CMA) which is a idea
to solve above all problems. https://lkml.org/lkml/2014/10/15/623
But it apparently has tradeoff. So, our goal is to recommend GCMA
if you want to make sure fast allocation success. Or, use CMA
if you have fallback scheme of failure of allocation, if you
are okay to allocation latency(a few seconds) sometime, if you
should use really big contiguous memory.

Anyway, I have an interest on this topic and want to attend.

Thanks.

> 
> Thanks,
> Laura
> 
> -- 
> Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




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