multifacet / Bypassd

Bypassd is a novel I/O architecture that provides low latency access to shared SSDs.
12 stars 4 forks source link

"Failed to create user queues", when call function "userlib_create_queues" #2

Closed kuanyan9527 closed 1 month ago

kuanyan9527 commented 2 months ago

hello, I want to reproduce your codes in my machine but I encountered an issue in running “artifact_evaluation/fig6a_1thread_rread_perf/run_exp.bash”. I used the dmsg command and found the following error message: [bypassd]: Initialized module [bypassd]: Alloc CQ failed 257 Queue alloc failed [bypassd]: Exiting module

Environmental Information: ` OS: ubuntu20.04

SSD(1T): Class: Non-Volatile memory controller Vendor: Yangtze Memory Technologies Co.,Ltd Device: ZHITAI TiPro7000 SVendor: Yangtze Memory Technologies Co.,Ltd SDevice: ZHITAI TiPro7000

Memory: 128G

CPU: Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz `

Looking forward to your apply.

RiweiPan commented 2 months ago

Hi, kuanyan, may I ask you how to address the issue of missing the definition of '__v_p4d_alloc_ext4' during compiling?

SujayYadalam94 commented 2 months ago

The error message says that the 257th queue could not be created which means the SSD cannot support more than 256 NVMe queues.

Therefore, reduce the number of queues requested from the application. Make sure that BYPASSD_NUM_QUEUES is set to a smaller value.

Also sometimes if the program crashes, the queues might not be deleted correctly. In this case, uninstall the kernel module (rmmod) and reinstall it (insmod).

kuanyan9527 commented 2 months ago

The error message says that the 257th queue could not be created which means the SSD cannot support more than 256 NVMe queues.

Therefore, reduce the number of queues requested from the application. Make sure that BYPASSD_NUM_QUEUES is set to a smaller value.

Also sometimes if the program crashes, the queues might not be deleted correctly. In this case, uninstall the kernel module (rmmod) and reinstall it (insmod).

Nice to see your reply,I set the value of BYPASSD NUM_QUEUES to 1 and reinstalled nvme.ko andbypassd.ko and I used nvme get-feature /dev/nvme0n1 -f 7 -H to show that the number of pairs on the device is 48.

get-feature:0x7 (Number of Queues), Current value:0x2f002f
        Number of IO Completion Queues Allocated (NCQA): 48
        Number of IO Submission Queues Allocated (NSQA): 48

After doing this I executed the script bash artifact_evaluation/fig6a_1thread_rread_perf/run_exp.bash /dev/nvme0n1 /mnt, but got the same error.

I don’t understand why the 257th queue is created. Are there any other possible errors?

I'm eager to get your reply, thank you.

kuanyan9527 commented 2 months ago

Hi, kuanyan, may I ask you how to address the issue of missing the definition of '__v_p4d_alloc_ext4' during compiling?

I didn't encounter this error. I'm very sorry that I can't help you.

kuanyan9527 commented 1 month ago

This error has been resolved because the created IO submission queue exceeds the number of queues set by the system. The solution is to modify the set number of IO queues during nvme reset.

Thanks all.