< prev index next >

src/hotspot/share/gc/shared/gcThreadLocalData.hpp

Print this page




  23 
  24 #ifndef SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
  25 #define SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
  26 
  27 #include "utilities/globalDefinitions.hpp"
  28 
  29 // Thread local data area for GC-specific information. Each GC
  30 // is free to decide the internal structure and contents of this
  31 // area. It is represented as a 64-bit aligned opaque blob to
  32 // avoid circular dependencies between Thread and all GCs. For
  33 // the same reason, the size of the data area is hard coded to
  34 // provide enough space for all current GCs. Adjust the size if
  35 // needed, but avoid making it excessively large as it adds to
  36 // the memory overhead of creating a thread.
  37 //
  38 // Use Thread::gc_data<T>() to access the data, where T is the
  39 // GC-specific type describing the structure of the data. GCs
  40 // should consider placing frequently accessed fields first in
  41 // T, so that field offsets relative to Thread are small, which
  42 // often allows for a more compact instruction encoding.
  43 typedef uint64_t GCThreadLocalData[19]; // 152 bytes
  44 
  45 #endif // SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP


  23 
  24 #ifndef SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
  25 #define SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
  26 
  27 #include "utilities/globalDefinitions.hpp"
  28 
  29 // Thread local data area for GC-specific information. Each GC
  30 // is free to decide the internal structure and contents of this
  31 // area. It is represented as a 64-bit aligned opaque blob to
  32 // avoid circular dependencies between Thread and all GCs. For
  33 // the same reason, the size of the data area is hard coded to
  34 // provide enough space for all current GCs. Adjust the size if
  35 // needed, but avoid making it excessively large as it adds to
  36 // the memory overhead of creating a thread.
  37 //
  38 // Use Thread::gc_data<T>() to access the data, where T is the
  39 // GC-specific type describing the structure of the data. GCs
  40 // should consider placing frequently accessed fields first in
  41 // T, so that field offsets relative to Thread are small, which
  42 // often allows for a more compact instruction encoding.
  43 typedef uint64_t GCThreadLocalData[18]; // 144 bytes
  44 
  45 #endif // SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
< prev index next >