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)
|