• Nicolas Pitre's avatar
    ARM: MCPM: move the algorithmic complexity to the core code · d3a87544
    Nicolas Pitre authored
    All backends are reimplementing a variation of the same CPU reference
    count handling. They are also responsible for driving the MCPM special
    low-level locking. This is needless duplication, involving algorithmic
    requirements that are not necessarily obvious to the uninitiated.
    And from past code review experience, those were all initially
    implemented badly.
    
    After 3 years, it is time to refactor as much common code to the core
    MCPM facility to make the backends as simple as possible.  To avoid a
    flag day, the new scheme is introduced in parallel to the existing
    backend interface.  When all backends are converted over, the
    compatibility interface could be removed.
    
    The new MCPM backend interface implements simpler methods addressing
    very platform specific tasks performed under lock protection while
    keeping the algorithmic complexity and race avoidance local to the
    core code.
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    Tested-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
    d3a87544
mcpm.h 12.6 KB