Git Product home page Git Product logo

Comments (18)

yangx-jy avatar yangx-jy commented on August 15, 2024

Hi @mengxinayan

src2man command comes from txt2man package, did you use the newer txt2man(version >= 1.7.0)?
See the description of INSTALL.md:

txt2man == 1.7.0 (please see https://github.com/pmem/rpma/blob/master/utils/docker/images/install-txt2man.sh to install the verified revision)

Best Regards,
Xiao Yang

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Thanks you. @yangx-jy

I tried install txt2man 1.7.1, then examples can run successfully. However rpma can't work when txt2man == 1.7.0.

from rpma.

yangx-jy avatar yangx-jy commented on August 15, 2024

I tried install txt2man 1.7.1, then examples can run successfully. However rpma can't work when txt2man == 1.7.0.

Hi @mengxinayan

It's strange, current rpma can do automated compilation sucessfully by txt2man 1.7.0:

https://github.com/pmem/rpma/blob/master/utils/docker/images/install-txt2man.sh

Besides, txt2man 1.7.0 is also good to me.

Best Regards,
Xiao Yang

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Hi, @yangx-jy

Yeah, I also don't know why. Firstly I tried run shell script you mentioned, but it failed to make as before. So I tried to git clone and make & install txt2man on master (==1.7.1), examples can be ran successfully.

By the way, what is the difference between librpmem and librpma? Which is better to quick start for beginner? I noticed that librpmem has no update about four months.

from rpma.

yangx-jy avatar yangx-jy commented on August 15, 2024

Hi, @yangx-jy

Yeah, I also don't know why. Firstly I tried run shell script you mentioned, but it failed to make as before. So I tried to git clone and make & install txt2man on master (==1.7.1), examples can be ran successfully.

Could you attach some detailed info (e.g. step and output)?

By the way, what is the difference between librpmem and librpma? Which is better to quick start for beginner? I noticed that librpmem has no update about four months.

Both of them support accessing remote persistent memory, librpma is an alternative solution to librpmem because it is simpler and needs minimum dependencies.

Note: librpma is still an experimental library.

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Could you attach some detailed info (e.g. step and output)?

No problem, when I install rpma on the other client, I will put the step and output in this issues.

Both of them support accessing remote persistent memory, librpma is an alternative solution to librpmem because it is simpler and needs minimum dependencies.
Note: librpma is still an experimental library.

Thanks for your answer. How do you think accessing Optane by RDMA basic libraries such as ibverbs, etc. Is it a good way to use?

from rpma.

yangx-jy avatar yangx-jy commented on August 15, 2024

Thanks for your answer. How do you think accessing Optane by RDMA basic libraries such as ibverbs, etc. Is it a good way to use?

No, it is not a good idea.

Accessing remote persistent memory (PMEM) based on traditional RDMA has some issues, please see the following whitepaper:
https://software.intel.com/content/www/us/en/develop/articles/persistent-memory-replication-over-traditional-rdma-part-1-understanding-remote-persistent.html

Note:
Traditional RDMA is designed to support remote DRAM instead of PMEM access. We have to extend RDMA if you want to access remote PMEM by RDMA APIs.

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Hi @yangx-jy . Sorry for late reply.

The detailed information as follows (I run all commands under root user):

My Linux distribution is Ubuntu 20.04, because the system language is Chinese, and I did not translate the output information to English):

root@hostname:~/rpma-0.9.0/utils/docker/images# cd utils/docker/images/
root@hostname:~/rpma-0.9.0/utils/docker/images# ls
0001-fix-generating-gcov-files-and-turn-off-verbose-log.patch  Dockerfile.ubuntu-19.10  install-txt2man.sh
build-image.sh                                                 download-scripts.sh      push-image.sh
Dockerfile.fedora-31                                           install-cmocka.sh        README.md
root@hostname:~/rpma-0.9.0/utils/docker/images# ./install-txt2man.sh
正克隆到 'txt2man'...
remote: Enumerating objects: 234, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 234 (delta 8), reused 12 (delta 4), pack-reused 211
接收对象中: 100% (234/234), 69.47 KiB | 143.00 KiB/s, 完成.
处理 delta 中: 100% (145/145), 完成.
注意:正在切换到 'txt2man-1.7.0'。

您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以在切换
回一个分支时,丢弃在此状态下所做的提交而不对分支造成影响。

如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在 switch 命令
中添加参数 -c 来实现(现在或稍后)。例如:

  git switch -c <新分支名>

或者撤销此操作:

  git switch -

通过将配置变量 advice.detachedHead 设置为 false 来关闭此建议

HEAD 目前位于 0cc2c2c chore: release of txt2man-1.7.0
make: 对“all”无需做任何事。
mkdir -p /usr/bin /usr/share/man/man1
cp src2man bookman txt2man /usr/bin/
cp src2man.1 txt2man.1 bookman.1 /usr/share/man/man1
root@hostname:~/rpma-0.9.0/utils/docker/images# cd ../../../
root@hostname:~/rpma-0.9.0# mkdir build
root@hostname:~/rpma-0.9.0# cd build/
root@hostname:~/rpma-0.9.0/build# cmake ..
-- The C compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Perl: /usr/bin/perl (found version "5.30.0")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
cat: .version: 没有那个文件或目录
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'libibverbs'
--   Found libibverbs, version 1.10.30.0
-- Checking for module 'librdmacm'
--   Found librdmacm, version 1.3.30.0
-- Performing Test ON_DEMAND_PAGING_SUPPORTED
-- Performing Test ON_DEMAND_PAGING_SUPPORTED - Success
-- On-Demand Paging (ODP) in libibverbs supported - Success
-- Performing Test C_HAS__DON_DEMAND_PAGING_SUPPORTED_1
-- Performing Test C_HAS__DON_DEMAND_PAGING_SUPPORTED_1 - Success
-- Performing Test RDMA_GETADDRINFO_NEW_SIGNATURE
-- Performing Test RDMA_GETADDRINFO_NEW_SIGNATURE - Success
-- Using a new signature of rdma_getaddrinfo()
-- Performing Test C_HAS__Wpointer_arith
-- Performing Test C_HAS__Wpointer_arith - Success
-- Performing Test C_HAS__Wunused_macros
-- Performing Test C_HAS__Wunused_macros - Success
-- Performing Test C_HAS__Wsign_conversion
-- Performing Test C_HAS__Wsign_conversion - Success
-- Performing Test C_HAS__Wsign_compare
-- Performing Test C_HAS__Wsign_compare - Success
-- Performing Test C_HAS__Wunreachable_code_return
-- Performing Test C_HAS__Wunreachable_code_return - Failed
-- Performing Test C_HAS__Wmissing_variable_declarations
-- Performing Test C_HAS__Wmissing_variable_declarations - Failed
-- Performing Test C_HAS__fno_common
-- Performing Test C_HAS__fno_common - Success
-- Performing Test C_HAS__std_gnu99
-- Performing Test C_HAS__std_gnu99 - Success
-- Performing Test C_HAS__ggdb
-- Performing Test C_HAS__ggdb - Success
-- Performing Test C_HAS__DDEBUG
-- Performing Test C_HAS__DDEBUG - Success
-- Performing Test C_HAS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_2
-- Performing Test C_HAS__U_FORTIFY_SOURCE__D_FORTIFY_SOURCE_2 - Success
-- Performing Test C_HAS__Wall
-- Performing Test C_HAS__Wall - Success
-- Checking for module 'cmocka'
--   Found cmocka, version 1.1.5
CMake Warning at tests/cmake/ctest_helpers.cmake:51 (message):
  libunwind-dev/devel not found.  Stack traces from tests will not be
  reliable
Call Stack (most recent call first):
  tests/CMakeLists.txt:17 (find_packages)


-- Performing Test C_HAS__U_FORTIFY_SOURCE
-- Performing Test C_HAS__U_FORTIFY_SOURCE - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /root/2020/rpma-0.9.0/build
root@hostname:~/rpma-0.9.0/build# make -j
Scanning dependencies of target checkers
Scanning dependencies of target doc
Scanning dependencies of target test_backtrace
Scanning dependencies of target doc_snippets_template-snippet
Scanning dependencies of target rpma
[  0%] Built target checkers
[  0%] Building C object examples/CMakeFiles/doc_snippets_template-snippet.dir/doc_snippets/template-snippet.c.o
[  1%] Building C object tests/CMakeFiles/test_backtrace.dir/test_backtrace.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/conn.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/conn_cfg.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/conn_req.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/ep.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/flush.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/info.c.o
[  1%] Building C object src/CMakeFiles/rpma.dir/librpma.c.o
src2man: errors found in the "/root/2020/rpma-0.9.0/src/common.h" file:
[  1%] Linking C static library libtest_backtrace.a
[  2%] Building C object src/CMakeFiles/rpma.dir/log.c.o
[  2%] Building C object src/CMakeFiles/rpma.dir/log_default.c.o
[  2%] Built target doc_snippets_template-snippet
[  2%] Building C object src/CMakeFiles/rpma.dir/mr.c.o
awk: 命令行:64: 警告: 正则表达式中的转义序列“\;”不是有效的操作符
make[2]: *** [doc/CMakeFiles/doc.dir/build.make:57:doc/CMakeFiles/doc] 错误 1
make[1]: *** [CMakeFiles/Makefile2:3151:doc/CMakeFiles/doc.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
[  2%] Building C object src/CMakeFiles/rpma.dir/peer.c.o
[  2%] Building C object src/CMakeFiles/rpma.dir/peer_cfg.c.o
[  2%] Built target test_backtrace
[  2%] Building C object src/CMakeFiles/rpma.dir/private_data.c.o
[  3%] Building C object src/CMakeFiles/rpma.dir/rpma.c.o
[  3%] Building C object src/CMakeFiles/rpma.dir/rpma_err.c.o
[  3%] Linking C shared library librpma.so
[  3%] Built target rpma
make: *** [Makefile:141:all] 错误 2

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Thanks for your explanation for website you provided why for rpma. @yangx-jy

from rpma.

grom72 avatar grom72 commented on August 15, 2024

Hi @mengxinayan ,
you ask about librpma librpmem relation.
I strongly suggest focusing on librpma, where you could see many examples showing different aspects of RPMem.
librpmem is left only to support the old mechanism of synchronous PMem replication based on random access.
We abandon this concept as it brings huge performance penalty.

from rpma.

janekmi avatar janekmi commented on August 15, 2024

Hi @mengxinayan

I'm sorry you have been blocked by the issue. But we are lacking a reproduction on another Ubuntu 20.04 e.g. txt2man 1.7.0 used across all our CI:https://github.com/pmem/rpma/runs/2798685748?check_suite_focus=true so we need to understand deeper what are the conditions required for the issue to reproduce.

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Hi, @grom72,
Thanks for your explanation. By the way, how can I learn RPMA quickly for development? By examples?

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Hi, @janekmi,

Thanks for your test. I do still not know why this happens and have no idea for finding specific conditions, but I am glad to provide any other information if you need it.

from rpma.

yangx-jy avatar yangx-jy commented on August 15, 2024

@mengxinayan

I cannot reproduce the issue on my ubuntu20.4 as well. Could you check if your src2man script contains pdate()?

root@ubuntu20# grep pdate /usr/bin/src2man
  pdate() { date -u -j -f '@%s' "$@"; }
  pdate() { date -u -d "$@"; }
  date=$(LC_ALL=C pdate "@$SOURCE_DATE_EPOCH" +'%d %B %Y')

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Hi, @yangx-jy ,

I run grep pdate /usr/bin/src2man this command on my client machine, the result as follows:

root@client-02:~/2020# grep pdate /usr/bin/src2man
  pdate() { date -u -j -f '@%s' "$@"; }
  pdate() { date -u -d "$@"; }
  date=$(LC_ALL=C pdate "@$SOURCE_DATE_EPOCH" +'%d %B %Y')

It is the same as you show.

from rpma.

grom72 avatar grom72 commented on August 15, 2024

Hi @mengxinayan

Hi, @grom72,
Thanks for your explanation. By the way, how can I learn RPMA quickly for development? By examples?

The best way is to follow examples.

from rpma.

mengxinayan avatar mengxinayan commented on August 15, 2024

Hi, @grom72 . Thank you.

from rpma.

grom72 avatar grom72 commented on August 15, 2024

Hi, @mengxinayan , @janekmi,
Do we have anything to do with this issue? Or can we close it?

from rpma.

Related Issues (20)

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.