- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel.hfa (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.hfa
rc18bf9e r8bee858 35 35 // I/O 36 36 struct cluster; 37 struct $io_context;38 struct $io_arbiter;37 struct io_context$; 38 struct io_arbiter$; 39 39 40 40 struct io_context_params { … … 83 83 84 84 // Wrapper around kernel threads 85 struct __attribute__((aligned( 128))) processor {85 struct __attribute__((aligned(64))) processor { 86 86 // Cluster from which to get threads 87 87 struct cluster * cltr; … … 113 113 114 114 struct { 115 $io_context* ctx;115 io_context$ * ctx; 116 116 unsigned target; 117 117 volatile bool pending; … … 171 171 172 172 // Intrusives lanes which are used by the ready queue 173 struct __attribute__((aligned(128))) __intrusive_lane_t;173 union __attribute__((aligned(64))) __intrusive_lane_t; 174 174 void ?{}(__intrusive_lane_t & this); 175 175 void ^?{}(__intrusive_lane_t & this); 176 176 177 177 // Aligned timestamps which are used by the ready queue and io subsystem 178 struct __attribute__((aligned(128))) __timestamp_t { 179 volatile unsigned long long tv; 180 volatile unsigned long long ma; 181 }; 182 183 static inline void ?{}(__timestamp_t & this) { this.tv = 0; this.ma = 0; } 178 union __attribute__((aligned(64))) __timestamp_t { 179 struct { 180 volatile unsigned long long tv; 181 volatile unsigned long long ma; 182 } t; 183 char __padding[192]; 184 }; 185 186 static inline void ?{}(__timestamp_t & this) { this.t.tv = 0; this.t.ma = 0; } 184 187 static inline void ^?{}(__timestamp_t &) {} 185 188 … … 212 215 //----------------------------------------------------------------------------- 213 216 // Cluster 214 struct __attribute__((aligned( 128))) cluster {217 struct __attribute__((aligned(64))) cluster { 215 218 struct { 216 219 struct { … … 227 230 struct { 228 231 // Array of $io_ 229 $io_context** data;232 io_context$ ** data; 230 233 231 234 // Time since subqueues were processed … … 264 267 265 268 struct { 266 $io_arbiter* arbiter;269 io_arbiter$ * arbiter; 267 270 io_context_params params; 268 271 } io;
Note:
See TracChangeset
for help on using the changeset viewer.