标签: isis2

我怎样才能说服mkbundle加入MonoPosixHelper?

我正在使用mkbundle并尝试创建一个使用Isis2的小程序IdaTester的嵌入式版本.该系统反过来使用Mono中依赖MonoPosixHelper的功能

我的问题是mkbundle无法识别依赖项,我最终得到一个仍然需要动态链接〜/ bin/lib/libMonoPosixHelper.so的可执行文件,当我将此可执行文件移动到我不能运行的系统时会导致问题有Mono安装.实际上,捆绑包缺少应该静态链接的东西之一.

我的可执行文件确实有效,但前提是我确保只在具有"正确位置"动态库的机器上运行它.这违背了嵌入式可执行文件的目的......我希望能够将这个程序作为一种服务器交给他们,他们可以把它放在任何地方并作为二进制文件启动,显然如果他们需要安装库来实现这一点,服务器并不是完全独立的!

我看到如何强制mkbundle包含程序所依赖的任何dll文件,但是MonoPosixHelper不作为dll存在; 这是一个仅限Linux的库,仅作为共享库存在.有没有人知道一种"强制"捆绑静态嵌入它的方法?

如果这有帮助,我的小编译脚本如下:

mcs -debug+ IdaTester.cs Isis.cs -r:System.dll -r:Microsoft.CSharp.dll -r:Mono.Posix.dll
mkbundle --static -o IdaTester IdaTester.exe --deps
Run Code Online (Sandbox Code Playgroud)

然后我运行IdaTester; 这适用于可以找到libMonoPosixHelper库的平台,但是如果在尚未安装libMonoPosixHelper的平台上运行时尝试动态加载该库,则会在运行时失败...

.net c# mono mkbundle isis2

5
推荐指数
1
解决办法
1032
查看次数

对于单个缓存行,单边 RDMA 读取是原子的吗?

我的小组(一个名为 Isis2 的项目)正在试验 RDMA。我们对缺乏单方面 RDMA 读取的原子性保证的文档感到困惑。在过去的一个半小时里,我一直在寻找有关这方面的任何信息,但无济于事。这包括仔细阅读 rdmamojo.com 上的博客,该博客以回答每个 RDMA 问题而闻名......

在我们关注的情况下,我们希望编写器对始终适合单个缓存行的对象进行原子写入。假设这发生在机器 A 上。然后我们计划在机器 B 上有一个单边原子 RDMA 读取器,它可以从 A 读取大块内存,跨越许多这些对象(但同样,没有对象会被非原子地写入,并且所有内容都将适合某个单个缓存行)。因此 B 读取 X、Y 和 Z,并且这些对象中的每一个都位于 A 上的一个缓存行中,并使用原子写入进行写入。

因此,原子写入将是本地的,但 RDMA 读取将从远程机器到达,并且在没有本地 CPU 参与的情况下完成。

尽管是在远程机器上启动的,我们的单边读取是否与原子本地读取“语义等效”?(我怀疑是这样:否则,单边 RDMA 读取对于曾经修改过的数据将毫无用处......)。“规则”记录在哪里?

caching rdma isis2

5
推荐指数
1
解决办法
495
查看次数

标签 统计

isis2 ×2

.net ×1

c# ×1

caching ×1

mkbundle ×1

mono ×1

rdma ×1