Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/kernel.hfa

    rc18bf9e r8bee858  
    3535// I/O
    3636struct cluster;
    37 struct $io_context;
    38 struct $io_arbiter;
     37struct io_context$;
     38struct io_arbiter$;
    3939
    4040struct io_context_params {
     
    8383
    8484// Wrapper around kernel threads
    85 struct __attribute__((aligned(128))) processor {
     85struct __attribute__((aligned(64))) processor {
    8686        // Cluster from which to get threads
    8787        struct cluster * cltr;
     
    113113
    114114        struct {
    115                 $io_context * ctx;
     115                io_context$ * ctx;
    116116                unsigned target;
    117117                volatile bool pending;
     
    171171
    172172// Intrusives lanes which are used by the ready queue
    173 struct __attribute__((aligned(128))) __intrusive_lane_t;
     173union __attribute__((aligned(64))) __intrusive_lane_t;
    174174void  ?{}(__intrusive_lane_t & this);
    175175void ^?{}(__intrusive_lane_t & this);
    176176
    177177// 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; }
     178union __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
     186static inline void  ?{}(__timestamp_t & this) { this.t.tv = 0; this.t.ma = 0; }
    184187static inline void ^?{}(__timestamp_t &) {}
    185188
     
    212215//-----------------------------------------------------------------------------
    213216// Cluster
    214 struct __attribute__((aligned(128))) cluster {
     217struct __attribute__((aligned(64))) cluster {
    215218        struct {
    216219                struct {
     
    227230                struct {
    228231                        // Array of $io_
    229                         $io_context ** data;
     232                        io_context$ ** data;
    230233
    231234                        // Time since subqueues were processed
     
    264267
    265268        struct {
    266                 $io_arbiter * arbiter;
     269                io_arbiter$ * arbiter;
    267270                io_context_params params;
    268271        } io;
Note: See TracChangeset for help on using the changeset viewer.