BSDCan2014 - Final

BSDCan 2014
The Technical BSD Conference

John-Mark Gurney
Day Talks - Day 1 - Fri May 16 - 2014-05-16
Room Montpetit 207
Start time 13:30
Duration 01:00
ID 471
Event type Lecture
Track Security
Language used for presentation English

Optimizing GELI Performance

reducing encryption overhead

Features, like encryption, need to have minimal overhead for them to be widely adopted. If the performance is to slow, few people will use it. The first iteration of AES-XTS using AES-NI in FreeBSD was not much faster than the software version of it. The talk will describe why the AES-XTS algorithm was slow and what was done to improve it. It will cover topics from intrinsics, adding them to gcc and advantages of using them over assembly to how to use HWPC that are included in most modern processors to evaluate performance to identify performance bottle necks.

Optimizing code first starts with measuring the performance, but it also requires you to understand the parts of the system so that you can decide if increasing performance is possible.

It will cover: 1) Cipher modes and their performance impact 2) Processor performance, understanding pipelining, throughput and latency 3) Other SSE instructions used for XTS tweak factor calculations 4) Intrinsics and their use with GCC and CLANG 5) Using pmcstat and kcachegrind for understand performance. 6) Possible future work to increase the performance beyond what it is today.