Alex Shi <seakeel@xxxxxxxxx> 于2021年8月4日周三 上午10:36写道: > > On Sun, Aug 1, 2021 at 8:25 PM Yanteng Si <siyanteng@xxxxxxxxxxx> wrote: > > > > Translate Documentation/infiniband/user_verbs.rst into Chinese. > > > > Signed-off-by: Yanteng Si <siyanteng@xxxxxxxxxxx> > > --- > > .../translations/zh_CN/infiniband/index.rst | 3 +- > > .../zh_CN/infiniband/user_verbs.rst | 72 +++++++++++++++++++ > > 2 files changed, 73 insertions(+), 2 deletions(-) > > create mode 100644 Documentation/translations/zh_CN/infiniband/user_verbs.rst > > > > diff --git a/Documentation/translations/zh_CN/infiniband/index.rst b/Documentation/translations/zh_CN/infiniband/index.rst > > index 55645171a675..5634cc48379f 100644 > > --- a/Documentation/translations/zh_CN/infiniband/index.rst > > +++ b/Documentation/translations/zh_CN/infiniband/index.rst > > @@ -28,10 +28,9 @@ infiniband > > sysfs > > tag_matching > > user_mad > > + user_verbs > > > > -TODOLIST: > > > > - user_verbs > > > > .. only:: subproject and html > > > > diff --git a/Documentation/translations/zh_CN/infiniband/user_verbs.rst b/Documentation/translations/zh_CN/infiniband/user_verbs.rst > > new file mode 100644 > > index 000000000000..ba5db85ae722 > > --- /dev/null > > +++ b/Documentation/translations/zh_CN/infiniband/user_verbs.rst > > @@ -0,0 +1,72 @@ > > +.. include:: ../disclaimer-zh_CN.rst > > + > > +:Original: Documentation/infiniband/user_verbs.rst > > + > > +:翻译: > > + > > + 司延腾 Yanteng Si <siyanteng@xxxxxxxxxxx> > > + > > +:校译: > > + > > + 王普宇 Puyu Wang <realpuyuwang@xxxxxxxxx> > > + 时奎亮 Alex Shi <alexs@xxxxxxxxxx> > > + > > +.. _cn_infiniband_user_verbs: > > + > > +================= > > +用户空间verbs访问 > > +================= > > + > > + ib_uverbs模块,通过启用CONFIG_INFINIBAND_USER_VERBS构建,使用户空间 > > + 通过“verbs”直接访问IB硬件,如InfiniBand架构规范第11章所述。 > > + > > + 要使用verbs,需要libibverbs库,可从https://github.com/linux-rdma/rdma-core。; > > + libibverbs包含一个独立于设备的API,用于使用ib_uverbs接口。libibverbs > > + 还需要为你的InfiniBand硬件提供适当的独立于设备的内核和用户空间驱动。例如, > > + 要使用Mellanox HCA,你需要安装ib_mthca内核模块和libmthca用户空间驱动。 > > + > > +用户-内核通信 > > +============= > > + > > + 用户空间通过/dev/infiniband/uverbsN字符设备与内核进行慢速路径、资源管理 > > + 操作的通信。快速路径操作通常是通过直接写入硬件寄存器mmap()到用户空间来完成 > > + 的,没有系统调用或上下文切换到内核。 > > + > > + 命令是通过在这些设备文件上的write()s发送给内核的。ABI在 > > + drivers/infiniband/include/ib_user_verbs.h中定义。需要内核响应的命令的结 > > + 构包含一个64位字段,用来传递一个指向输出缓冲区的指针。状态作为write()系统调 > > + 用的返回值被返回到用户空间。 > > + > > +资源管理 > > +======== > > + > > + 由于所有IB资源的创建和销毁都是通过文件描述符传递的命令完成的,所以内核可以跟 > > + 踪哪些资源被附加到一个给定的用户空间上下文。ib_uverbs模块维护着idr表,用来在 > > + 内核指针和不透明的用户空间句柄之间进行转换,这样内核指针就不会暴露给用户空间, > > + 而用户空间也无法欺骗内核去跟踪一个假的指针。 > > + > > + 这也允许内核在一个进程退出时进行清理,并防止一个进程触及另一个进程的资源。 > > + > > +内存引脚 > > memory pinning, means 内存内容被固定, 不能删除或者释放等, 所以, pinning should be > translated as 固定 as your tranlation in following contexts. > > with this change > > Reviewed-by: Alex Shi <alexs@xxxxxxxxxx> > OK! Thank you for your review! Thanks, Yanteng