OpenMPDK / KVSSD

KV SSD host software including APIs and drivers
Other
230 stars 55 forks source link

Unable to run Benchmark application #49

Closed Jsgrooss closed 4 years ago

Jsgrooss commented 4 years ago

Location (Korea, USA, China, India, etc.) Put your location for prompt support. Denmark

Describe the bug A clear and concise description of what the bug is. When trying to run the KV Benchmark application the following happens:

Using "bench_config.ini" config file
with iterator 0 - mode 0
node 0: 1 3 5 0 0 0 0 0 
pop -- dev 0000:01:00.0, numaid 0, core: 1 
bench --- dev 0000:01:00.0, numaid 0, core: 1 
ratio is 50:50:0:0
 === benchmark configuration ===
DB module: KVS
random seed: 1616169051
filename: 0000:01:00.0#  (initialize)
# documents (i.e. working set size): 100
# threads: reader 0, iterator 0, writer 1, deleter 0
# auto-compaction threads: 4
block cache size: 16.00 GB
key length: Fixed size(16) / body length: Fixed size(2048)
batch distribution: Uniform
benchmark duration: 5 seconds
read batch size: point Uniform(1,1), range Uniform(500,1500)
write batch size: Uniform(1,1)
inside batch distribution: Uniform (-1 ~ +1, total 2)
write ratio: 50 % (synchronous)
insertion order: sequential fill
master core = 5, mask = 20
 EAL: Detected 8 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /run/user/1001/dpdk/spdk2827/mp_socket
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: Cannot obtain physical addresses: No such file or directory. Only vfio will function.
EAL: Couldn't get fd on hugepage file
EAL: FATAL: Cannot init memory

EAL: Cannot init memory

Failed to initialize DPDK
kv_driver.c:: 221:: _kv_env_init:: spdk_env_init failed
device init done
init udd
EAL: Couldn't get fd on hugepage file
nvme.c: 302:nvme_driver_init: *ERROR*: primary process failed to reserve memory
kv_driver.c:: 411:: kv_nvme_init:: SPDK NVMe Probe failed, ret = -1
Failed to open device: KVS_ERR_DEV_INIT 0xffffffff
Device open failed KVS_ERR_SYS_IO

To Reproduce Steps to reproduce the behavior:

  1. Follow quick installation guide
  2. Setup CPU.txt and bench_config in same way

System environment (please complete the following information)

Firmware version : 
Number of SSDs : 1
OS & Kernel version [e.g., Ubuntu 16.04 Kernel v4.9.5]: Ubuntu 18.04 Kernel v4.15.18-041518-generic
GCC version [e.g., gcc v5.0.0] : 7.4.0
kvbench version if kvbench runs [e.g., v0.6.0]: 
KV API version [e.g., v0.6.0]
User driver version :
Driver [Kernel or user driver or emulator] : User driver

CPU.txt setup: nodeid,coreid,dbid_load,dbid_perf 0,1,0,0 0,3,1,1 0,5,2,2

bench_config.ini setup (only listed changes i've made):

[system]
allocator = spdk
key_pool_size = 128
key_pool_unit = 16
key_pool_alignment = 2048
value_pool_size = 128
value_pool_unit = 2048
value_pool_alignment = 2048
device_path = 0000:01:00.0

[kvs]
device_path = 0000:01:00.0

[body_length]
#distribution = uniform
distribution = fixed
fixed_size = 2048
value_size = 512,2048
value_size_ratio = 10:50:40
upper_bound = 2048
lower_bound = 2048
compressibility = 30

Additional context Add any other context about the problem here.

HugePage setup: HugePages_Total: 1024 HugePages_Free: 512 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB

The CPU setup is setup in the way i've understood its supposed to be setup, error is the same as if CPU.txt hasn't been modified

device_path in bench_config.ini has been set after testing the file "sample_code_async" has been successfully run to confirm the device path is correct

hao86yan commented 4 years ago

According to your description, you tried to running kv_bench with UDD environment. I think you forgot to configure the huge pages for UDD (SPDK). Please allot 2GB huge pages for UDD before running kv_bench with UDD.