Changes between Initial Version and Version 2 of Ticket #58


Ignore:
Timestamp:
Oct 31, 2010, 5:34:02 PM (14 years ago)
Author:
Nicolas Pouillon
Comment:

s/validity/reachability/ s/superset/subset/

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #58 – Description

    initial v2  
    88   * memory_allocator API
    99
    10 `mem_alloc` only takes a validity constraint, which is the access scope. Optimization scope is not in the API and is implicit. If region are activated, a `memory_allocator` is chosen depending on the scope and the current CPU. Hack was added to get a foreign scope context: mem_alloc_cpu, making an indirection through a CLS.
     10`mem_alloc` only takes a reachability constraint, which is the access scope. Optimization scope is not in the API and is implicit. If region are activated, a `memory_allocator` is chosen depending on the scope and the current CPU. Hack was added to get a foreign scope context: mem_alloc_cpu, making an indirection through a CLS.
    1111
    1212Here we see the scope serves two purposes:
    13  * A validity constraint ("the allocated memory should be accessible from X")
     13 * A reachability constraint ("the allocated memory should be accessible from X")
    1414 * A proximity (optimization) constraint (implicit, or CLS-based)
    1515This is broken
     
    1818
    1919mem_alloc API should take two parameters:
    20  * A validity constraint
     20 * A reachability constraint
    2121  * "The allocated memory *may* be accessed from X"
    2222 * A proxymity scope
     
    3232  * user tasks data
    3333  * (most variables)
    34  * DMA: This is a superset of SYS, telling devices should be able to DMA there
     34 * DMA: This is a subset of SYS, telling devices should be able to DMA there
    3535  * Not all memory map supports DMA
    3636  * Some processors reserve zones for DMA (with different cacheability)
     
    6262        size_t size,
    6363        void *priv,
    64         enum mem_validity_s valid,
     64        enum mem_reachability_s valid,
    6565        void **addr);
    6666    void *priv;
    6767};
    6868
    69 enum mem_validity_s
     69enum mem_reachability_s
    7070{
    7171    MEM_VALID_SYS,
     
    7878    size_t size,
    7979    struct mem_proximity_s *prox,
    80     enum mem_validity_s valid,
     80    enum mem_reachability_s valid,
    8181    void **addr);
    8282
     
    105105    void **addr);
    106106}}}
    107