框架能够提供丰富的语义以满足多种用户、平台的需求。SYNCORD的关键构成以及一个工作流程样例如上图所示:1) 用户编写自定义锁代码并指定要定制的锁实例;2) SynCord基于eBPF编译用户的锁代码;3) 验证编译后的字节码的基本属性以保障正确性;4) 如果验证失败,SynCord会通知用户;5) 否则会将字节码加载到内核中并生成相应的补丁;6)最后将补丁打入内核,这样就可以通过预定义的钩子节点调用用户定制的锁代码了。在实现方面,SYNCORD在现有成熟的eBPF框架以及Kpatch工具基础上进行了扩展,支持了对用户自定义所代码的验证以及对内核锁实例的细粒度补丁。为了评测SYNCORD在不同锁应用场景中的效果,作者使用SYNCORD框架针对这些场景实现了相应优化并与前序工作的性能进行了对比。以非对称多核处理器(AMP)场景为例,作者基于前序工作LibASL的设计(LibASL是由IPADS实验室发表于PPOPP'22的锁优化工作)在SYNCORD中实现了相应优化。测试结果如下图所示,使用SYNCORD框架的实现在多种场景下的性能达到了与LibASL原有实现接近的水平。本文由以下作者共同完成:张懿雯,上海交通大学IPADS实验室准硕士一年级王子轩,上海交通大学IPADS实验室准博士一年级陈家浩,上海交通大学IPADS实验室博士二年级冯二虎,上海交通大学IPADS实验室博士二年级韩明聪,上海交通大学IPADS实验室博士二年级李鼎基,上海交通大学IPADS实验室博士二年级宋小牛,上海交通大学IPADS实验室博士三年级
还没有评论,来说两句吧...