Giter Site home page Giter Site logo

mpool's People

Contributors

beckerg avatar bhaveshvasandani avatar hse-devops avatar nabeelmmd avatar smoyergh avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mpool's Issues

mpool on ARM

i saw the requirements said x86. so no ARM support correct? if so, where does the limitation exist?

Occasional Lingering Open Mpool When SIGKILL-ing Process

not every time... but every few dozen times that i pkill -KILL processname my mpool gets stuck.

so when i try to destroy it I get resource busy (even though the process is 100% dead)...

root@clr-fc2a36cf35a645a0a1e17af84fb1eab8~ # mpool destroy hotmpool
mpool: Unable to destroy mpool hotmpool (mpool/mpctl.c:142: Device or resource busy)

have you ever seen this before? is there any way I can force destroy it in these circumstances besides rebooting the machine?

also makes me a bit worried that if the application was killed by the OS in production that the mpool would be unrecoverable without a reboot... or at the very least terminal-ing into the machine.

i can collect any data you need so that next time it happens i can share them.

upstream hope/timeline?

Any hope/timeline to get the kernel module upstreamed? Cursory google didn't turn up relevant threads.

Silently Fails on 5.13

since upgrading to 5.13, puts with HSE report success with an error code of 0, but upon trying to get, the key is reported as not existing.

how shall i begin debugging this?

there was a new warning when building the kernel module since upgrading (because i guess Clear Linux's GCC package was updated in the process too) which i overcame quick and dirty but texting replacing -Werror to "". but i highly doubt that has anything to do with this. but just fyi.

./include/asm-generic/bitops/find.h: In function ‘find_last_bit’:
./include/linux/bits.h:25:36: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]
   25 |                 __is_constexpr((l) > (h)), (l) > (h), 0)))
      |                                    ^
./include/linux/build_bug.h:16:62: note: in definition of macro ‘BUILD_BUG_ON_ZERO’
   16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
      |                                                              ^
./include/linux/bits.h:25:17: note: in expansion of macro ‘__is_constexpr’
   25 |                 __is_constexpr((l) > (h)), (l) > (h), 0)))
      |                 ^~~~~~~~~~~~~~
./include/linux/bits.h:38:10: note: in expansion of macro ‘GENMASK_INPUT_CHECK’
   38 |         (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
      |          ^~~~~~~~~~~~~~~~~~~
./include/asm-generic/bitops/find.h:162:45: note: in expansion of macro ‘GENMASK’
  162 |                 unsigned long val = *addr & GENMASK(size - 1, 0);
      | 

the folder scripts has a CMakeLists empty

hello,

the scripts folder has a CMakeLists empty,

I have tried this following but it miss the tingting syntactic and the file isn't enough typed :

cmake_minimum_required( VERSION 3.6 )

cmake_policy( SET CMP0046 NEW )
cmake-policy( SET CMP0053 NEW )

project ( scripts C )
set( PROJECT_VERSION            "${BUILD_PKG_VERSION}")
set( PROJECT_HOMEPAGE_URL       "https://github.com/hse-project/mpool/tree/master/scripts" )
set( CMAKE_PROJECT_VERSION      "${PROJECT_VERSION}" )
set( CMAKE_PROJECT_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL}" )

message( STATUS "Configuring project ${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_HOMEPAGE_URL} ${BUILD_PKG_TAG} commo>

set( CMAKE_C_STANDART 99 )
set( CMAKE_INSTALL_PREFIX /usr )

include(deb)
include(modules-load.d)
include(sysctl.d)
include(tmpfiles.d)
include(cmake)
include(dev)
include(rpm)
include(systemd)
include(udev)

set( SCRIPTS_DEB_INSTALL_PREFIX         ${PROJECT_BINARY_DIR}/deb)
set( SCRIPTS_MODULES-LOAD.D_PREFIX      ${PROJECT_BINARY_DIR}/modules-load.d)
set( SCRIPTS_SYSCTL.D_PREFIX            ${PROJECT_BINARY_DIR}/sysctl.d)
set( SCRIPTS_TMPFILES.D_PREFIX          ${PROJECT_BINARY_DIR}/tmpfiles.d)
set( SCRIPTS_CMAKE_DIR                  ${PROJECT_SOURCE_DIR}/cmake)
set( SCRIPTS_DEV_PREFIX                 ${PROJECT_BINARY_DIR}/dev)
set( SCRIPTS_RPM_PREFIX                 ${PROJECT_BINARY_DIR}/rpm)
set( SCRIPTS_SYSTEMD_PREFIX             ${PROJECT_BINARY_DIR}/systemd)
set( SCRIPTS_udev_PREFIX                ${PROJECT_BINARY_DIR}/udev)

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${MPOOL_STAGE_INSTALL_PREFIX}/bin)

add_compile_options(
    ${BUILD_CFLAGS} -g3 -std=gnu99 -Wall -Werror
    -Wlogical-op -Wno-missing-field-initializers -Wuninitialized -Wmaybe-uninitialized
    -Wextra -Wno-conversion -Wno-sign-conversion -Wno-sign-compare -Wno-unused-parameter
    )


file( WRITE ${CMAKE_BINARY_DIR}/CTestCustom.cmake.in )

configure_file( ${CMAKE_BINARY_DIR}CTestCustom.cmake.in
        ${RPM_BINARY_DIR}mpool-devel.spec.in 
        ${RPM_BINARY_DIR}mpool-test.spec.in 
        ${RPM_BINARY_DIR}mpool.spec.in
)

when I run the cmake .. in build directory I have following :


[root@localhost scripts]# ls
CMkeLists.txt  build  deb  modules-load.d  sysctl.d  tmpfiles.d
bin            cmake  dev  rpm             systemd   udev
[root@localhost scripts]# cd build
[root@localhost build]# cmake ..
[root@localhhe source directory "/etc/openmpi-4.1.1/mpool/scripts" does not appear to contain CMakeList,s.txt.
Specify --help for usage, or press the help button on the CMake GUI.

in the mpool build directorie the cmake .. answer following :

 [root@localhost build]# cmake ..
-- Configuring project mpool   common...
CMake Error at CMakeLists.txt:25 (include):
  include could not find load file:

    /etc/openmpi-4.1.1/mpool/scripts/


-- Enabling valgrind support
-- Configuring mpool in /etc/openmpi-4.1.1/mpool/src/mpool
-- Configuring mpool in /etc/openmpi-4.1.1/mpool/src/mptest
-- Configuring ui /etc/openmpi-4.1.1/mpool/src/cli
-- Configuring mcache_api in /etc/openmpi-4.1.1/mpool/test/test_apps/mcache_api
-- Configuring mpiotest in /etc/openmpi-4.1.1/mpool/test/test_apps/mpiotest
-- Configuring ui /etc/openmpi-4.1.1/mpool/test/test_apps/mpft
-- Configuring mpool samples in /etc/openmpi-4.1.1/mpool/samples
CMake Error at CMakeLists.txt:231 (include):
  include could not find load file:

    /etc/openmpi-4.1.1/mpool/etc/openmpi-4.1.1/mpool/scripts/CMakeLists.txt


CMake Error: File /etc/openmpi-4.1.1/mpool/etc/openmpi-4.1.1/mpool/scripts/cmake/CTestCustom.cmake.in does not exist.
CMake Error at CMakeLists.txt:237 (configure_file):
  configure_file Problem configuring file


-- Compiler flags:
 --   INCLUDE_DIRECTORIES     /etc/openmpi-4.1.1/mpool/build/ext_install/include;/etc/openmpi-4.1.1/mpool/build/stage/include
--   COMPILE_DEFINITIONS     
--   COMPILE_OPTIONS         -g3;-std=gnu99;-Wall;-Werror;-Wlogical-op;-Wno-missing-field-initializers;-Wuninitialized;-Wmaybe-uniniti1. alized;-Wextra;-Wno-conversion;-Wno-sign-conversion;-Wno-sign-compare;-Wno-unused-parameter;-Wimplic6it-fallthrough=0;-fPIC
--   LINK_DIRECTORIES        
--   LINK_LIBRARIES          
--   LINK_OPTIONS            
-- Configuring incomplete, errors occurred!
See also "/etc/openmpi-4.1.1/mpool/build/CMakeFiles/CMakeOutput.log".

Thank you in advance to help myself fully run scripts of cmake compiling,

Regards.

Azaretdodo.

Add more API documentation

Hi HSE Team,
Thanks for releasing this code.

The Wiki / API Reference page says "See the mpool API documentation in the mpool.h header file." That file contains functions for operating on various data structures and objects. How about adding some explanations of those data structures and how to use them? This would make the code more useful.

  • mpool
    • params
    • properties
    • device properties
  • mclass
  • mlog
    • This needs extra careful explanation of the structure of mlog objects.
    • What does it mean to skip bytes inside it?
    • Does mpool_mlog_erase() actually zero the bytes or just send a "trim" command to the SSD?
  • objid, OID
  • mdc
    • mdc_capacity
    • properties
    • compaction
  • mblock
    • properties
  • mpool_mcache_map
  • Details of how to properly use asynchronous modes of certain functions. Explain how to detect completion and errors.
  • Explain the proper way to handle errors from the API.
  • State the runtimes of functions. For example, say whether or not mpool_mlog_len() reads the whole object.

Best,
Michael

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.