On 06.06.19 11:25, Klaus Birkelund Jensen wrote: > The device mistakenly reports that the Weighted Round Robin with Urgent > Priority Class arbitration mechanism is supported. > > It is not. I believe you based on the fact that there is no “weight” or “priority” anywhere in nvme.c, and that it does not evaluate the Arbitration Mechanism Selected field. > Signed-off-by: Klaus Birkelund Jensen > --- > hw/block/nvme.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index 30e50f7a3853..415b4641d6b4 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -1383,7 +1383,6 @@ static void nvme_realize(PCIDevice *pci_dev, Error **errp) > n->bar.cap = 0; > NVME_CAP_SET_MQES(n->bar.cap, 0x7ff); > NVME_CAP_SET_CQR(n->bar.cap, 1); > - NVME_CAP_SET_AMS(n->bar.cap, 1); I suppose the better way would be to pass 0, so it is more explicit, I think. (Just removing it looks like it may have just been forgotten.) Max > NVME_CAP_SET_TO(n->bar.cap, 0xf); > NVME_CAP_SET_CSS(n->bar.cap, 1); > NVME_CAP_SET_MPSMAX(n->bar.cap, 4); >