< prev index next >

src/share/vm/memory/metaspaceShared.hpp

Print this page
rev 10921 : 8150044: Generate classlists at build-time
Reviewed-by: alanb
Contributed-by: claes.redestad@oracle.com, erik.joelsson@oracle.com


  26 #define SHARE_VM_MEMORY_METASPACESHARED_HPP
  27 
  28 #include "classfile/compactHashtable.hpp"
  29 #include "memory/allocation.hpp"
  30 #include "memory/memRegion.hpp"
  31 #include "memory/virtualspace.hpp"
  32 #include "utilities/exceptions.hpp"
  33 #include "utilities/macros.hpp"
  34 
  35 #define DEFAULT_VTBL_LIST_SIZE          (17)  // number of entries in the shared space vtable list.
  36 #define DEFAULT_VTBL_VIRTUALS_COUNT     (200) // maximum number of virtual functions
  37 // If virtual functions are added to Metadata,
  38 // this number needs to be increased.  Also,
  39 // SharedMiscCodeSize will need to be increased.
  40 // The following 2 sizes were based on
  41 // MetaspaceShared::generate_vtable_methods()
  42 #define DEFAULT_VTBL_METHOD_SIZE        (16)  // conservative size of the mov1 and jmp instructions
  43 // for the x64 platform
  44 #define DEFAULT_VTBL_COMMON_CODE_SIZE   (1*K) // conservative size of the "common_code" for the x64 platform
  45 
  46 #define DEFAULT_SHARED_READ_WRITE_SIZE  (NOT_LP64(12*M) LP64_ONLY(16*M))
  47 #define MIN_SHARED_READ_WRITE_SIZE      (NOT_LP64(7*M) LP64_ONLY(12*M))
  48 
  49 #define DEFAULT_SHARED_READ_ONLY_SIZE   (NOT_LP64(12*M) LP64_ONLY(16*M))
  50 #define MIN_SHARED_READ_ONLY_SIZE       (NOT_LP64(8*M) LP64_ONLY(9*M))
  51 
  52 // the MIN_SHARED_MISC_DATA_SIZE and MIN_SHARED_MISC_CODE_SIZE estimates are based on
  53 // the sizes required for dumping the archive using the default classlist. The sizes
  54 // are multiplied by 1.5 for a safety margin.
  55 
  56 #define DEFAULT_SHARED_MISC_DATA_SIZE   (NOT_LP64(2*M) LP64_ONLY(4*M))
  57 #define MIN_SHARED_MISC_DATA_SIZE       (NOT_LP64(1*M) LP64_ONLY(1200*K))
  58 
  59 #define DEFAULT_SHARED_MISC_CODE_SIZE   (120*K)
  60 #define MIN_SHARED_MISC_CODE_SIZE       (NOT_LP64(63*K) LP64_ONLY(69*K))
  61 #define DEFAULT_COMBINED_SIZE           (DEFAULT_SHARED_READ_WRITE_SIZE+DEFAULT_SHARED_READ_ONLY_SIZE+DEFAULT_SHARED_MISC_DATA_SIZE+DEFAULT_SHARED_MISC_CODE_SIZE)
  62 
  63 // the max size is the MAX size (ie. 0x7FFFFFFF) - the total size of
  64 // the other 3 sections - page size (to avoid overflow in case the final
  65 // size will get aligned up on page size)
  66 #define SHARED_PAGE                     ((size_t)os::vm_page_size())
  67 #define MAX_SHARED_DELTA                (0x7FFFFFFF)
  68 #define MAX_SHARED_READ_WRITE_SIZE      (MAX_SHARED_DELTA-(MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE)
  69 #define MAX_SHARED_READ_ONLY_SIZE       (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE)




  26 #define SHARE_VM_MEMORY_METASPACESHARED_HPP
  27 
  28 #include "classfile/compactHashtable.hpp"
  29 #include "memory/allocation.hpp"
  30 #include "memory/memRegion.hpp"
  31 #include "memory/virtualspace.hpp"
  32 #include "utilities/exceptions.hpp"
  33 #include "utilities/macros.hpp"
  34 
  35 #define DEFAULT_VTBL_LIST_SIZE          (17)  // number of entries in the shared space vtable list.
  36 #define DEFAULT_VTBL_VIRTUALS_COUNT     (200) // maximum number of virtual functions
  37 // If virtual functions are added to Metadata,
  38 // this number needs to be increased.  Also,
  39 // SharedMiscCodeSize will need to be increased.
  40 // The following 2 sizes were based on
  41 // MetaspaceShared::generate_vtable_methods()
  42 #define DEFAULT_VTBL_METHOD_SIZE        (16)  // conservative size of the mov1 and jmp instructions
  43 // for the x64 platform
  44 #define DEFAULT_VTBL_COMMON_CODE_SIZE   (1*K) // conservative size of the "common_code" for the x64 platform
  45 
  46 #define DEFAULT_SHARED_READ_WRITE_SIZE  (NOT_LP64(8*M) LP64_ONLY(10*M))
  47 #define MIN_SHARED_READ_WRITE_SIZE      (NOT_LP64(7*M) LP64_ONLY(10*M))
  48 
  49 #define DEFAULT_SHARED_READ_ONLY_SIZE   (NOT_LP64(8*M) LP64_ONLY(10*M))
  50 #define MIN_SHARED_READ_ONLY_SIZE       (NOT_LP64(8*M) LP64_ONLY(9*M))
  51 
  52 // the MIN_SHARED_MISC_DATA_SIZE and MIN_SHARED_MISC_CODE_SIZE estimates are based on
  53 // the sizes required for dumping the archive using the default classlist. The sizes
  54 // are multiplied by 1.5 for a safety margin.
  55 
  56 #define DEFAULT_SHARED_MISC_DATA_SIZE   (NOT_LP64(2*M) LP64_ONLY(4*M))
  57 #define MIN_SHARED_MISC_DATA_SIZE       (NOT_LP64(1*M) LP64_ONLY(1200*K))
  58 
  59 #define DEFAULT_SHARED_MISC_CODE_SIZE   (120*K)
  60 #define MIN_SHARED_MISC_CODE_SIZE       (NOT_LP64(63*K) LP64_ONLY(69*K))
  61 #define DEFAULT_COMBINED_SIZE           (DEFAULT_SHARED_READ_WRITE_SIZE+DEFAULT_SHARED_READ_ONLY_SIZE+DEFAULT_SHARED_MISC_DATA_SIZE+DEFAULT_SHARED_MISC_CODE_SIZE)
  62 
  63 // the max size is the MAX size (ie. 0x7FFFFFFF) - the total size of
  64 // the other 3 sections - page size (to avoid overflow in case the final
  65 // size will get aligned up on page size)
  66 #define SHARED_PAGE                     ((size_t)os::vm_page_size())
  67 #define MAX_SHARED_DELTA                (0x7FFFFFFF)
  68 #define MAX_SHARED_READ_WRITE_SIZE      (MAX_SHARED_DELTA-(MIN_SHARED_READ_ONLY_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE)
  69 #define MAX_SHARED_READ_ONLY_SIZE       (MAX_SHARED_DELTA-(MIN_SHARED_READ_WRITE_SIZE+MIN_SHARED_MISC_DATA_SIZE+MIN_SHARED_MISC_CODE_SIZE)-SHARED_PAGE)


< prev index next >