# HG changeset patch # User stuefe # Date 1568267820 -7200 # Node ID 5aeb07390c74f76183136a7fe391120c620769de # Parent a5f523f2ff9179d63ab47d0fec7e20cb4ffb332d Fixes for Windows x64 diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/chunkManager.hpp --- a/src/hotspot/share/memory/metaspace/chunkManager.hpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/chunkManager.hpp Thu Sep 12 07:57:00 2019 +0200 @@ -34,7 +34,7 @@ namespace metaspace { class VirtualSpaceList; -class cm_stats_t; +struct cm_stats_t; // class ChunkManager // diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/commitMask.cpp --- a/src/hotspot/share/memory/metaspace/commitMask.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/commitMask.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -29,6 +29,7 @@ #include "memory/metaspace/commitMask.hpp" #include "memory/metaspace/metaspaceCommon.hpp" +#include "memory/metaspace/settings.hpp" #include "runtime/stubRoutines.hpp" #include "utilities/align.hpp" @@ -61,10 +62,6 @@ assert_is_aligned(_base, _words_per_bit * BytesPerWord); assert_is_aligned(_word_size, _words_per_bit); - if (slow) { - assert(CanUseSafeFetch32, "We need SafeFetch for this test."); - } - if (do_touch_test) { for (idx_t i = 0; i < size(); i ++) { const MetaWord* const p = _base + (i * _words_per_bit); @@ -77,7 +74,7 @@ // Note: results may differ between platforms. On Linux, this should be true since // we uncommit memory by setting protection to PROT_NONE. We may have to look if // this works as expected on other platforms. - if (CanUseSafeFetch32() && TEST_UNCOMMITTED_REGION) { + if (TEST_UNCOMMITTED_REGION && CanUseSafeFetch32()) { assert(os::is_readable_pointer(p) == false, "index %u, pointer " PTR_FORMAT ", should not be accessible.", (unsigned)i, p2i(p)); diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/metachunk.hpp --- a/src/hotspot/share/memory/metaspace/metachunk.hpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/metachunk.hpp Thu Sep 12 07:57:00 2019 +0200 @@ -391,11 +391,11 @@ // Returns size, in words, of committed space of all chunks in all list. // Note: walks lists. size_t total_committed_word_size() const { - size_t l = 0; + size_t sum = 0; for (chklvl_t l = chklvl::LOWEST_CHUNK_LEVEL; l <= chklvl::HIGHEST_CHUNK_LEVEL; l ++) { - l += list_for_level(l)->committed_word_size(); + sum += list_for_level(l)->committed_word_size(); } - return l; + return sum; } DEBUG_ONLY(void verify(bool slow) const;) diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/rootChunkArea.cpp --- a/src/hotspot/share/memory/metaspace/rootChunkArea.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/rootChunkArea.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -541,7 +541,7 @@ // a given memory range. Memory range must be a multiple of root chunk size. RootChunkAreaLUT::RootChunkAreaLUT(const MetaWord* base, size_t word_size) : _base(base), - _num(word_size / chklvl::MAX_CHUNK_WORD_SIZE), + _num((int)(word_size / chklvl::MAX_CHUNK_WORD_SIZE)), _arr(NULL) { assert_is_aligned(word_size, chklvl::MAX_CHUNK_WORD_SIZE); diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/rootChunkArea.hpp --- a/src/hotspot/share/memory/metaspace/rootChunkArea.hpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/rootChunkArea.hpp Thu Sep 12 07:57:00 2019 +0200 @@ -155,7 +155,7 @@ // area this address falls into. int index_by_address(const MetaWord* p) const { DEBUG_ONLY(check_pointer(p);) - int idx = (p - base()) / chklvl::MAX_CHUNK_WORD_SIZE; + int idx = (int)((p - base()) / chklvl::MAX_CHUNK_WORD_SIZE); assert(idx >= 0 && idx < _num, "Sanity"); return idx; } diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/settings.cpp --- a/src/hotspot/share/memory/metaspace/settings.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/settings.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -31,6 +31,7 @@ #include "logging/logStream.hpp" #include "memory/metaspace/chunkLevel.hpp" +#include "memory/metaspace/settings.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/debug.hpp" diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/spaceManager.hpp --- a/src/hotspot/share/memory/metaspace/spaceManager.hpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/spaceManager.hpp Thu Sep 12 07:57:00 2019 +0200 @@ -39,7 +39,7 @@ namespace metaspace { -class sm_stats_t; +struct sm_stats_t; // The SpaceManager: // - keeps a list of chunks-in-use by the class loader, as well as a current chunk used diff -r a5f523f2ff91 -r 5aeb07390c74 src/hotspot/share/memory/metaspace/virtualSpaceList.cpp --- a/src/hotspot/share/memory/metaspace/virtualSpaceList.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/virtualSpaceList.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -168,7 +168,7 @@ if (_first_node == vsn) { _first_node = next_vsn; } - DEBUG_ONLY(vsn = (VirtualSpaceNode*)0xdeadbeef;) + DEBUG_ONLY(vsn = (VirtualSpaceNode*)((uintptr_t)(0xdeadbeef));) if (prev_vsn != NULL) { prev_vsn->set_next(next_vsn); } diff -r a5f523f2ff91 -r 5aeb07390c74 test/hotspot/gtest/metaspace/metaspaceTestsCommon.cpp --- a/test/hotspot/gtest/metaspace/metaspaceTestsCommon.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/test/hotspot/gtest/metaspace/metaspaceTestsCommon.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -29,6 +29,9 @@ #include "utilities/globalDefinitions.hpp" +#ifdef _WIN32 +#include +#endif void calc_random_range(size_t outer_range_len, range_t* out, size_t alignment) { diff -r a5f523f2ff91 -r 5aeb07390c74 test/hotspot/gtest/metaspace/metaspaceTestsCommon.hpp --- a/test/hotspot/gtest/metaspace/metaspaceTestsCommon.hpp Wed Sep 11 17:36:28 2019 +0200 +++ b/test/hotspot/gtest/metaspace/metaspaceTestsCommon.hpp Thu Sep 12 07:57:00 2019 +0200 @@ -83,18 +83,18 @@ // A little mockup to mimick and test the CommitMask in various tests class TestMap { - const int _len; + const size_t _len; char* _arr; public: - TestMap(int len) : _len(len), _arr(NULL) { + TestMap(size_t len) : _len(len), _arr(NULL) { _arr = NEW_C_HEAP_ARRAY(char, len, mtInternal); memset(_arr, 0, _len); } ~TestMap() { FREE_C_HEAP_ARRAY(char, _arr); } - int get_num_set(int from, int to) const { + int get_num_set(size_t from, size_t to) const { int result = 0; - for(int i = from; i < to; i ++) { + for(size_t i = from; i < to; i ++) { if (_arr[i] > 0) { result ++; } @@ -102,13 +102,13 @@ return result; } - int get_num_set() const { return get_num_set(0, _len); } + size_t get_num_set() const { return get_num_set(0, _len); } - void set_range(int from, int to) { + void set_range(size_t from, size_t to) { memset(_arr + from, 1, to - from); } - void clear_range(int from, int to) { + void clear_range(size_t from, size_t to) { memset(_arr + from, 0, to - from); } diff -r a5f523f2ff91 -r 5aeb07390c74 test/hotspot/gtest/metaspace/test_commitmask.cpp --- a/test/hotspot/gtest/metaspace/test_commitmask.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/test/hotspot/gtest/metaspace/test_commitmask.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -24,7 +24,9 @@ #include "precompiled.hpp" -#include "metaspace/metaspaceTestsCommon.hpp" +#include "runtime/os.hpp" + +#include "metaspaceTestsCommon.hpp" static int get_random(int limit) { return os::random() % limit; } @@ -43,8 +45,8 @@ // Return a random sub range within [_base.._base + word_size), // aligned to granule size const MetaWord* calc_random_subrange(size_t* p_word_size) { - size_t l1 = get_random(_word_size); - size_t l2 = get_random(_word_size); + size_t l1 = get_random((int)_word_size); + size_t l2 = get_random((int)_word_size); if (l1 > l2) { size_t l = l1; l1 = l2; diff -r a5f523f2ff91 -r 5aeb07390c74 test/hotspot/gtest/metaspace/test_spacemanager.cpp --- a/test/hotspot/gtest/metaspace/test_spacemanager.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/test/hotspot/gtest/metaspace/test_spacemanager.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -117,7 +117,7 @@ size_t words_allocated() const { return _words_allocated; } - size_t num_allocations() const { return _num_allocations; } + int num_allocations() const { return _num_allocations; } int index() const { return _index; } @@ -573,7 +573,7 @@ static RandSizeGenerator rgen_1K_no_outliers(1, 128); // generates sizes between 1 and 256 words, small chance of large outliers -static RandSizeGenerator rgen_1K_some_huge_outliers(1, 256, 0.05, MAX_CHUNK_WORD_SIZE / 64, MAX_CHUNK_WORD_SIZE / 2); +static RandSizeGenerator rgen_1K_some_huge_outliers(1, 256, 0.05f, MAX_CHUNK_WORD_SIZE / 64, MAX_CHUNK_WORD_SIZE / 2); // generates medium sized sizes static RandSizeGenerator rgen_32K_no_outliers(128, 0x4000); diff -r a5f523f2ff91 -r 5aeb07390c74 test/hotspot/gtest/metaspace/test_virtualspacenode.cpp --- a/test/hotspot/gtest/metaspace/test_virtualspacenode.cpp Wed Sep 11 17:36:28 2019 +0200 +++ b/test/hotspot/gtest/metaspace/test_virtualspacenode.cpp Thu Sep 12 07:57:00 2019 +0200 @@ -410,7 +410,7 @@ // To capture split-off chunks. Note: it is okay to use this here as a temp object. MetachunkListCluster freelist; - const int granules_per_root_chunk = c->word_size() / Settings::commit_granule_words(); + const int granules_per_root_chunk = (int)(c->word_size() / Settings::commit_granule_words()); for (int granules_to_commit = 0; granules_to_commit < granules_per_root_chunk; granules_to_commit ++) {