bdev/compress: update some defines for QAT

There's a small drive-by in here also, use the max iovec define
from the reduce header instead of manually making sure its the same
here.

The change in the size of the MBUF pool is to accommodate the new
QAT driver being faster (?) than the old such that we could run out
of MBUFS with a fio test using 6 threads.  On the + side, when we did
the queueing code in the compression operation worked good.

Also related to QAT and experimenting with fio compression ratios, QAT
can fairly often return an error on compression that we were treating
as an error for printing, change it to a NOTCELOG instead of an error.

Change-Id: Id842064b7d659f7ad7f9d785ffffdc6b827f6989
Signed-off-by: paul luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/463369
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
paul luse 2019-07-26 18:24:15 -04:00 committed by Darek Stojaczyk
parent 34146a7a52
commit 5de38f9543

View File

@ -54,14 +54,14 @@
#define NUM_MAX_XFORMS 2 #define NUM_MAX_XFORMS 2
#define NUM_MAX_INFLIGHT_OPS 128 #define NUM_MAX_INFLIGHT_OPS 128
#define DEFAULT_WINDOW_SIZE 15 #define DEFAULT_WINDOW_SIZE 15
#define MAX_MBUFS_PER_OP 16 #define MAX_MBUFS_PER_OP REDUCE_MAX_IOVECS
#define CHUNK_SIZE (1024 * 16) #define CHUNK_SIZE (1024 * 16)
#define COMP_BDEV_NAME "compress" #define COMP_BDEV_NAME "compress"
#define BACKING_IO_SZ (4 * 1024) #define BACKING_IO_SZ (4 * 1024)
#define ISAL_PMD "compress_isal" #define ISAL_PMD "compress_isal"
#define QAT_PMD "compress_qat" #define QAT_PMD "compress_qat"
#define NUM_MBUFS 512 #define NUM_MBUFS 1024
#define POOL_CACHE_SIZE 256 #define POOL_CACHE_SIZE 256
static enum compress_pmd g_opts; static enum compress_pmd g_opts;
@ -590,7 +590,8 @@ comp_dev_poller(void *args)
/* tell reduce this is done and what the bytecount was */ /* tell reduce this is done and what the bytecount was */
reduce_args->cb_fn(reduce_args->cb_arg, deq_ops[i]->produced); reduce_args->cb_fn(reduce_args->cb_arg, deq_ops[i]->produced);
} else { } else {
SPDK_ERRLOG("deque status %u\n", deq_ops[i]->status); SPDK_NOTICELOG("FYI storing data uncompressed due to deque status %u\n",
deq_ops[i]->status);
/* Reduce will simply store uncompressed on neg errno value. */ /* Reduce will simply store uncompressed on neg errno value. */
reduce_args->cb_fn(reduce_args->cb_arg, -EINVAL); reduce_args->cb_fn(reduce_args->cb_arg, -EINVAL);