如何编译安装liburcu?

编译安装

1 基础知识

1.1 RCU的概念

– RCU即英文read-copy-update的简写
– RCU是2002年10月添加到Linux内核的同步机制
– RCU允许对内核进行同时的读取与更新(相对于传统互斥锁机制的改进)
– RCU实现可伸缩的机制
– RCU通过维护对象的多个版本来确保读取的一致性(确保所有预先存在的读取关键部分完成之前不会被释放)
– RCU定义并使用高效且可扩展的机制来发布和读取对象的新版本和推迟收集旧版本

1.2 liburcu的简介

– 基于LGPLv2.1的用户空间RCU库
– 此库数据同步库提供可随内核数量伸缩的读取端访问

2 最佳实践

2.1 准备编译环境

yum -y install gcc gcc-c++ make expat-devel
yum -y install autoconf automake libtool

2.2 编译前的准备

2.2.1 下载软件包

cd ~
wget https://github.com/urcu/userspace-rcu/archive/v0.7.16.tar.gz -O userspace-rcu-0.7.16.tar.gz

如果需要其他版本,请从以下链接下载,
https://github.com/urcu/userspace-rcu/releases

2.2.2 解压软件包

cd ~
tar -xf userspace-rcu-0.7.16.tar.gz

2.3 编译并安装

2.3.1 准备编译环境

cd ~/userspace-rcu-0.7.16/
./bootstrap

2.3.2 预编译安装包

cd ~/userspace-rcu-0.7.16/
./configure

2.3.3 编译并安装

cd ~/userspace-rcu-0.7.16/
make
make install

2.4 注册库文件

2.4.1 确定所有库文件的路径

find /usr/ -name \*liburcu-bp.so\*

可见如下提示,

/usr/lib64/liburcu-bp.so.6
/usr/lib64/liburcu-bp.so.6.0.0
/usr/local/lib/liburcu-bp.so.1.0.0
/usr/local/lib/liburcu-bp.so.1
/usr/local/lib/liburcu-bp.so

2.4.2 确认库文件是否已经注册

ldconfig -v | grep liburcu-bp.so

命令显示如下,

        liburcu-bp.so.6 -> liburcu-bp.so.6.0.0

由以上命令可知“/usr/local/lib/”目录下的lib文件尚未注册

2.4.3 注册该库文件,

echo '/usr/local/lib' > /etc/ld.so.conf.d/userspace-rcu.conf

再次运行命令确定当前已经注册的lib文件版本,

ldconfig -v | grep liburcu-bp.so

命令显示如下,

        liburcu-bp.so.1 -> liburcu-bp.so.1.0.0
        liburcu-bp.so.6 -> liburcu-bp.so.6.0.0

参阅文档
===================

rcu的介绍
————
https://lwn.net/Articles/262464/

rcu库的软件介绍
———-
https://liburcu.org/

软件的下载
————
https://github.com/urcu/userspace-rcu/releases

没有评论

发表评论

编译安装
如何编译安装ifstat?

1 前言 一个问题,一篇文章,一出故事。 生产上的老旧服务器RHEL 5没有ifstat的rpm包, …

编译安装
如何安装GNU编译器gcc和g++?

1 基础知识 1.1 GNU Compiler Collection的简介 – GCC原 …

Sendmail
如何编译安装Sendmail?

1 Sendmail的简介 – Sendmail是一种重要的邮件传输代理程序(MTA即M …