32、基于硬件监视器的高效上下文敏感CFI执行

基于硬件监视器的高效上下文敏感CFI执行

1. 评估基准

在对C/C++应用程序进行评估时,使用了SPEC2006基准套件的‘test’工作负载来计算基于PT的µCFI的运行时开销。不过,对于gcc、dealII、povray、omnetpp和xalancbmk等程序,由于PT在硬件层面会丢失数据包,在µCFI监视器中表现为段错误,所以未能获得相关结果。此外,在评估框架中,soplex也会导致µCFI监视器出现段错误。而perlbench由于频繁使用fork系统调用,会对单核造成更大压力,不能准确反映µCFI执行的跟踪处理性能影响,因此未纳入评估。对于gobmk,将dniwog输入作为一个单独的数据点,因为其数据包数量远高于其他数据点。

在Rocket处理器上评估基于PHMon的µCFI时,选用了能成功运行基于PT的µCFI的12个基准测试中的8个。但由于使用LLVM 7.0进行RISC - V交叉编译时出现错误,无法运行lbm、namd和gobmk;由于FPGA内存有限,无法运行mcf和perlbench;sjeng因规模太大,通过将其源代码中控制哈希表大小的TTSize值减小到3000后,才得以运行基于PHMon的µCFI。为进行公平评估,还在图6中报告了使用TTSize = 3000时基于PT的µCFI对sjeng的开销。

2. 评估结果
2.1 代码插桩开销

通过比较基线程序和为µCFI执行插桩后的程序的执行时间,测量了基准测试的插桩开销。结果表明,代码插桩(图5中的Instru),包括将c - data和ICT目标传输到µCFI监视器的RISC - V后端传递,平均仅产生1.7%的低性能开销。不过,对于生成更多数据包的基准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值