Giter Site home page Giter Site logo

hewlettpackard / gull Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 8.0 1.86 MB

a multi-node fabric-attached memory manager that provides simple abstractions for accessing and allocating NVM from fabric-attached memory

License: Other

CMake 2.08% C++ 92.48% C 5.44%

gull's People

Contributors

chinmay-ghosh avatar cynara-justine avatar gautham-bhat-k avatar mashoodk avatar soumya-pn avatar ssinghal53 avatar vrashiponnappa avatar yzhang-hpe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gull's Issues

Solve compilation warnings

/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_cores
DCLC_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]

DelayedFree tests failing

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.

Fix shelf name not to have user prefix which built it

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.

StartNVMM exits without any error message

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.

Getting a fatal error while installation

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>

Build fails with new versions of boost

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

BackgroundWorker Crash

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.