CMU-SAFARI/MQSim

NVMe Queue Arbitration (Flow priority)

Closed this issue · 1 comments

Hello,

In the workload.xml file there is a option named Priority_Class that can be set for different flows. What I understand from the readme description, we can set the relative I/O priority of different flows by setting the corresponding Priority_Class value in the range {{URGENT, HIGH, MEDIUM, LOW}, which is very similar to the NVMe queue specification. I tried two different flows with two different Priority_Class values, one with URGENT and another with LOW. And after the simulation, when I see the statistics, I see almost no difference in performance at all ( the delay, IOPS etc of these two flows are almost similar, which supposed not to be the case). I put rest of the required attributes (i.e. Read_Percentage, Average_Request_Size, Average_No_of_Reqs_in_Queue etc) of the two flows identical.

So, what I want to know, whether this Priority_Class of each flows really has some impact or this is left for the future enhancement.

Thanks
Joyanta

Hi Joyanta,

You need to set the value of the Transaction_Scheduling_Policy parameter to PRIORITY_OUT_OF_ORDER. The base scheduler, i.e., OUT_OF_ORDER, ignores NVMe policies.

Best Regards,
Arash