hewlettpackard / gull Goto Github PK
View Code? Open in Web Editor NEWa multi-node fabric-attached memory manager that provides simple abstractions for accessing and allocating NVM from fabric-attached memory
License: Other
a multi-node fabric-attached memory manager that provides simple abstractions for accessing and allocating NVM from fabric-attached memory
License: Other
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc: In constructor ‘nvmm::internal::DCLCRWLock::DCLCRWLock()’:
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc:59:30: warning: conversion from ‘long unsigned int’ to ‘int’ may change value [-Wconversion]
countersLength = numCoresDCLC_COUNTERS_RATIO;
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc:62:49: warning: conversion from ‘long unsigned int’ to ‘int’ may change value [-Wconversion]
for (int idx = 0; idx < countersLength; idx += DCLC_COUNTERS_RATIO) {
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc: In constructor ‘nvmm::internal::DCLCRWLock::DCLCRWLock(int)’:
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc:74:31: warning: conversion from ‘long unsigned int’ to ‘int’ may change value [-Wconversion]
countersLength = num_coresDCLC_COUNTERS_RATIO;
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc:77:49: warning: conversion from ‘long unsigned int’ to ‘int’ may change value [-Wconversion]
for (int idx = 0; idx < countersLength; idx += DCLC_COUNTERS_RATIO) {
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc: In member function ‘void nvmm::internal::DCLCRWLock::exclusiveLock()’:
/home/abdulla/centos8/newboost/gull/src/shelf_usage/dclcrwlock.cc:154:49: warning: conversion from ‘long unsigned int’ to ‘int’ may change value [-Wconversion]
for (int idx = 0; idx < countersLength; idx += DCLC_COUNTERS_RATIO) {
In file included from /home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc:47:
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.h: In constructor ‘nvmm::EpochZoneHeap::EpochZoneHeap(nvmm::PoolId)’:
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.h:168:10: warning: ‘nvmm::EpochZoneHeap::no_bgthread_’ will be initialized after [-Wreorder]
bool no_bgthread_;
^~~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.h:144:14: warning: ‘uint64_t nvmm::EpochZoneHeap::fast_alloc_’ [-Wreorder]
uint64_t fast_alloc_;
^~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc:120:1: warning: when initialized here [-Wreorder]
EpochZoneHeap::EpochZoneHeap(PoolId pool_id)
^~~~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc: In member function ‘virtual void nvmm::EpochZoneHeap::Free(nvmm::EpochOp&, nvmm::Offset)’:
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc:961:1: warning: assuming signed overflow does not occur when reducing constant in comparison [-Wstrict-overflow]
}
^
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc: In member function ‘bool nvmm::Pool::Verify()’:
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc:213:16: warning: enum constant in boolean context [-Wint-in-bool-contex ]
return POOL_NOT_FOUND;
^~~~~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc:217:16: warning: enum constant in boolean context [-Wint-in-bool-contex ]
return POOL_OPENED;
^~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc:244:20: warning: enum constant in boolean context [-Wint-in-bool-contex ]
return POOL_INVALID_META_FILE;
^~~~~~~~~~~~~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc: In member function ‘bool nvmm::Pool::FindNextShelf(nvmm::ShelfIndex&, nvmm::ShelfIndex, nvmm::ShelfIndex)’:
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc:732:16: warning: enum constant in boolean context [-Wint-in-bool-contex ]
return POOL_CLOSED;
^~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc: In member function ‘bool nvmm::Pool::CheckShelf(nvmm::ShelfIndex)’:
/home/abdulla/centos8/newboost/gull/src/shelf_mgmt/pool.cc:757:16: warning: enum constant in boolean context [-Wint-in-bool-contex ]
return POOL_CLOSED;
^~~~~~~~~~~
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc: At global scope:
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc:1453:1: warning: macro "LFS_BOOK_SIZE" is not used [-Wunused-macros]
} // namespace nvmm
^
/home/abdulla/centos8/newboost/gull/src/allocator/epoch_zone_heap.cc:1453:1: warning: macro "ASSERT_IS_CLOSED" is not used [-Wunused-macros]
In some machines, it is noticed that tests : EpochZoneHeap.DelayedFree and EpochZoneHeap.DelayedFreeResize fails.
The failure is test case issue as the time we wait for the block to get delayed freed is not enough.
It results in failures as :
9/11 Test # 9: test_epoch_zone_heap .............***Failed 29.88 sec
and
9/11 Test # 9: test_epoch_zone_heap .............***Exception: SegFault 11.97 sec
Please check the logs :
build/Testing/Temporary/LastTest.log to verify if the failures are in the above test cases.
Workaround : increase the sleep time in above mentioned test cases.
Shelf names are prefixed with usernames using which it is created.
username@sles-1:~/work/3.0.0_pre/OpenFAM/build> ls /dev/shm/vol/
username_NVMM_EPOCH username_NVMM_ROOT username_NVMM_Shelf_0_17 username_NVMM_Shelf_17_0_1 username_NVMM_Shelf_17_1_1
Instead of username it would be better if the shelfs are named as fam or something like that.
When the NVMM directory is already available and there is no permission for the directories, NVMM exits without throwing any error. Improve the error handling in NVMM in throw the error to user rather than failing silently.
The following line of include is throwing a fatal error during the installation of nvmm. Could someone suggest a fix for this.
nvmm/src/common/log.cc:31:10: fatal error: boost/utility/empty_deleter.hpp: No such file or directory
31 #include <boost/utility/empty_deleter.hpp>
Issue to track ubuntu 20.04 support
NVMM build fails with new versions of boost. It seems empty_deleter.hpp is deprecated and need to be replaced with null_deleter.hpp.
[ 7%] Building CXX object src/CMakeFiles/nvmm.dir/common/log.cc.o
/home/abdulla/work/os_support/OpenFAM/third-party/nvmm/src/common/log.cc:31:10: fatal error: boost/utility/empty_deleter.hpp: No such file or directory
31 | #include <boost/utility/empty_deleter.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [src/CMakeFiles/nvmm.dir/build.make:141: src/CMakeFiles/nvmm.dir/common/log.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:506: src/CMakeFiles/nvmm.dir/all] Error 2
make: *** [Makefile:95: all] Error 2
If the heap is not closed before process exit, it causes crashes BackgroundWorker Thread crash during exit. This crash is harmless to code logic, as the crash is in exit code path.
Crash signature :
#0 nvmm::internal::DCLCRWLock::thread2idx (this=this@entry=0x40) at /home/shome/kvs_test/nvmm/src/shelf_usage/dclcrwlock.cc:100
#1 0x00007ffff7698e09 in nvmm::internal::DCLCRWLock::sharedLock (this=this@entry=0x40) at /home/shome/kvs_test/nvmm/src/shelf_usage/dclcrwlock.cc:109
#2 0x00007ffff76991e9 in nvmm::EpochManagerImpl::enter_critical (this=0x0) at /home/shome/kvs_test/nvmm/src/shelf_usage/epoch_manager_impl.cc:124
#3 0x00007ffff769dbc6 in nvmm::EpochZoneHeap::BackgroundWorker (this=0x670ae0) at /home/shome/kvs_test/nvmm/src/allocator/epoch_zone_heap.cc:551
#4 0x00007ffff5f24070 in ?? () from /lib64/libstdc++.so.6
#5 0x00007ffff617ddc5 in start_thread () from /lib64/libpthread.so.0
#6 0x00007ffff568bced in clone () from /lib64/libc.so.6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.