examples/vhost_crypto: fix zero copy
authorFan Zhang <roy.fan.zhang@intel.com>
Wed, 14 Nov 2018 11:16:42 +0000 (11:16 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Nov 2018 15:13:30 +0000 (16:13 +0100)
commite1d90eaa83ffd73b72086cd5695f486fe0a71289
treec1fe829c8f69e71f7b43fa1fdc96dac4233f2975
parent7efd5202f7fecc3f995cbf214cdae834e7a7494f
examples/vhost_crypto: fix zero copy

This patch fixes the zero copy enable problem for vhost crypto
sample application.

For some Crypto PMDs such as AESNI-MB and AESNI-GCM the data to
be processed will be made a copy in the same buffer but next to the
data. For example, to encrypt 64 bytes data the PMD will copy this
data from offset 64 to offset 123. This requires the application
provides the buffer with at least double of the data size.

However there is no way for VMs to know this limitation. When
zero-copy is enabled in Vhost the PMD may overwrite the buffer
next to the VM data to be processed, and further cause problems
such as Segmentation Fault or even worse, crashes the VM.

To fix the problem the user should avoid enabling the zero copy
for these Crypto PMDs. This patch adds the checking of the PMD
names to see if zero copy can be applied.

Fixes: 709521f4c2cd ("examples/vhost_crypto: support multi-core")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
examples/vhost_crypto/main.c