Changeset 428 for trunk/kernel/kern/cluster.h
- Timestamp:
- Jan 29, 2018, 6:08:07 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/kern/cluster.h
r416 r428 96 96 typedef struct cluster_s 97 97 { 98 spinlock_t kcm_lock; /*! local, protect creation of KCM allocators*/98 spinlock_t kcm_lock; /*! local, protect creation of KCM allocators */ 99 99 100 100 // global parameters 101 uint32_t paddr_width; /*! numer of bits in physical address */ 102 uint32_t x_width; /*! number of bits to code x_size (can be 0) */ 103 uint32_t y_width; /*! number of bits to code y_size (can be 0) */ 104 uint32_t x_size; /*! number of clusters in a row (can be 1) */ 105 uint32_t y_size; /*! number of clusters in a column (can be 1) */ 106 cxy_t io_cxy; /*! io cluster identifier */ 107 uint32_t dqdt_root_level; /*! index of root node in dqdt_tbl[] */ 101 uint32_t paddr_width; /*! numer of bits in physical address */ 102 uint32_t x_width; /*! number of bits to code x_size (can be 0) */ 103 uint32_t y_width; /*! number of bits to code y_size (can be 0) */ 104 uint32_t x_size; /*! number of clusters in a row (can be 1) */ 105 uint32_t y_size; /*! number of clusters in a column (can be 1) */ 106 cxy_t io_cxy; /*! io cluster identifier */ 107 uint32_t dqdt_root_level; /*! index of root node in dqdt_tbl[] */ 108 uint32_t nb_txt_channels; /*! number of TXT channels */ 109 uint32_t nb_nic_channels; /*! number of NIC channels */ 110 uint32_t nb_ioc_channels; /*! number of IOC channels */ 111 uint32_t nb_fbf_channels; /*! number of FBF channels */ 108 112 109 113 // local parameters 110 uint32_t cores_nr; /*! actual number of cores in cluster*/111 uint32_t ram_size; /*! physical memory size*/112 uint32_t ram_base; /*! physical memory base (local address)*/114 uint32_t cores_nr; /*! actual number of cores in cluster */ 115 uint32_t ram_size; /*! physical memory size */ 116 uint32_t ram_base; /*! physical memory base (local address) */ 113 117 114 118 core_t core_tbl[CONFIG_MAX_LOCAL_CORES]; /*! embedded cores */ 115 119 116 list_entry_t dev_root; /*! root of list of devices in cluster*/120 list_entry_t dev_root; /*! root of list of devices in cluster */ 117 121 118 122 // memory allocators 119 ppm_t ppm; /*! embedded kernel page manager */ 120 khm_t khm; /*! embedded kernel heap manager */ 121 kcm_t kcm; /*! embedded kernel cache manager (for KCMs) */ 123 ppm_t ppm; /*! embedded kernel page manager */ 124 khm_t khm; /*! embedded kernel heap manager */ 125 kcm_t kcm; /*! embedded kernel cache manager (for KCMs) */ 126 122 127 kcm_t * kcm_tbl[KMEM_TYPES_NR]; /*! pointers on allocated KCMs */ 123 128 124 129 // RPC 125 remote_fifo_t rpc_fifo; /*! RPC fifo (one per cluster)*/126 uint32_t rpc_threads; /*! current number of RPC threads in cluster*/130 remote_fifo_t rpc_fifo; /*! RPC fifo (one per cluster) */ 131 uint32_t rpc_threads; /*! current number of RPC threads in cluster */ 127 132 128 133 // DQDT 129 int32_t pages_var; /*! pages number increment from last DQQT update*/130 int32_t threads_var; /*! threads number increment from last DQDT update*/134 int32_t pages_var; /*! pages number increment from last DQQT updt */ 135 int32_t threads_var; /*! threads number increment from last DQDT updt */ 131 136 132 137 dqdt_node_t dqdt_tbl[CONFIG_DQDT_LEVELS_NR]; /*! embedded DQDT nodes in cluster */ … … 196 201 * This function allocates a new PID in local cluster, that becomes the process owner. 197 202 * It registers the process descriptor extended pointer in the local processs manager 198 * pref_tbl[] array. This function is called by the process_make_fork() function, 203 * pref_tbl[] array. The process descriptor itself is not modified. 204 * This function is called by the process_make_fork() function, 199 205 * by the process_make_exec() function, and by the process_init_create() function. 200 206 ****************************************************************************************** … … 255 261 void cluster_process_copies_unlink( struct process_s * process ); 256 262 263 /********************************************************************************************* 264 * This function displays on the kernel terminal TXT0 all user processes registered 265 * in the cluster defined by the <cxy> argument. 266 * It can be called by a thread running in any cluster, because is use remote accesses 267 * to scan the xlist of registered processes. 268 ********************************************************************************************* 269 * @ cxy : cluster identifier. 270 ********************************************************************************************/ 271 void cluster_processes_display( cxy_t cxy ); 272 257 273 258 274 … … 262 278 263 279 /****************************************************************************************** 264 * This function increments the "cores_in_kernel" variable in cluster descriptor.265 *****************************************************************************************/266 void cluster_core_kernel_enter();267 268 /******************************************************************************************269 * This function decrements the "cores_in_kernel" variable in cluster descriptor.270 *****************************************************************************************/271 void cluster_core_kernel_exit();272 273 /******************************************************************************************274 280 * This function returns the core local index that has the lowest usage in local cluster. 275 281 *****************************************************************************************/
Note: See TracChangeset
for help on using the changeset viewer.