◆ mc_lock
This per-node RW-locks protect mc_list and memchunk_cache entries
◆ mc_list
| struct _starpu_mem_chunk_list _starpu_node::mc_list |
Potentially in use memory chunks. The beginning of the list is clean (home node has a copy of the data, or the data is being transferred there), the remainder of the list may not be clean.
◆ mc_dirty_head
| struct _starpu_mem_chunk* _starpu_node::mc_dirty_head |
This is a shortcut inside the mc_list to the first potentially dirty MC. All MC before this are clean, MC before this only may be clean.
◆ mc_nb
| unsigned _starpu_node::mc_nb |
Number of elements in mc_list, number of elements in the clean part of mc_list plus the non-automatically allocated elements (which are thus always considered as clean)
◆ mc_clean_nb
| unsigned _starpu_node::mc_clean_nb |
◆ mc_cache
| struct mc_cache_entry* _starpu_node::mc_cache |
◆ mc_cache_nb
| int _starpu_node::mc_cache_nb |
◆ mc_cache_size
| starpu_ssize_t _starpu_node::mc_cache_size |
◆ tidying
| unsigned _starpu_node::tidying |
Whether some thread is currently tidying this node
◆ reclaiming
| unsigned _starpu_node::reclaiming |
Whether some thread is currently reclaiming memory for this node
◆ prefetch_out_of_memory
| volatile int _starpu_node::prefetch_out_of_memory |
This records that we tried to prefetch data but went out of memory, so will probably fail again to prefetch data, thus not trace each and every attempt.
◆ evictable
| unsigned _starpu_node::evictable |
Whether this memory node can evict data to another node
◆ data_requests
requests that have not been treated at all
◆ prefetch_requests
◆ idle_requests
◆ data_requests_list_mutex
| starpu_pthread_mutex_t _starpu_node::data_requests_list_mutex[STARPU_MAXNODES][2] |
◆ data_requests_pending
requests that are not terminated (eg. async transfers)
◆ data_requests_npending
◆ data_requests_pending_list_mutex
| starpu_pthread_mutex_t _starpu_node::data_requests_pending_list_mutex[STARPU_MAXNODES][2] |
◆ malloc_on_node_default_flags
| int _starpu_node::malloc_on_node_default_flags |
◆ chunks
| struct _starpu_chunk_list _starpu_node::chunks |
One list of chunks per node
◆ nfreechunks
| int _starpu_node::nfreechunks |
Number of completely free chunks
◆ chunk_mutex
| starpu_pthread_mutex_t _starpu_node::chunk_mutex |
This protects chunks and nfreechunks
◆ global_size
| size_t _starpu_node::global_size |
◆ used_size
| size_t _starpu_node::used_size |
◆ waiting_size
| size_t _starpu_node::waiting_size |
◆ lock_nodes
| starpu_pthread_mutex_t _starpu_node::lock_nodes |
◆ cond_nodes
| starpu_pthread_cond_t _starpu_node::cond_nodes |
◆ padding
| char _starpu_node::padding[STARPU_CACHELINE_SIZE] |
Keep this last, to make sure to separate node data in separate cache lines.
The documentation for this struct was generated from the following file: