Re: [virtio-dev] Re: [PATCH v1 2/2] virtio-mmio: add features for virtio-mmio specification version 3

From: Jason Wang
Date: Thu Jan 02 2020 - 22:25:15 EST



On 2020/1/2 äå5:13, Liu, Jing2 wrote:
[...]


+
+/* RO: MSI feature enabled mask */
+#define VIRTIO_MMIO_MSI_ENABLE_MASKÂÂÂ 0x8000
+/* RO: Maximum queue size available */
+#define VIRTIO_MMIO_MSI_STATUS_QMASKÂÂÂ 0x07ff
+/* Reserved */
+#define VIRTIO_MMIO_MSI_STATUS_RESERVEDÂÂÂ 0x7800
+
+#define VIRTIO_MMIO_MSI_CMD_UPDATEÂÂÂ 0x1


I believe we need a command to read the number of vectors supported by the device, or 2048 is assumed to be a fixed size here?

For not bringing much complexity, we proposed vector per queue and fixed relationship between events and vectors.


It's a about the number of MSIs not the mapping between queues to MSIs.And it looks to me it won't bring obvious complexity, just need a register to read the #MSIs. Device implementation may stick to a fixed size.

Based on that assumption, the device supports #MSIs = #queues + #config. Then driver need not read the register.

We're trying to make such kind of agreement on spec level.


Ok, I get you now.

But still, having fixed number of MSIs is less flexible. E.g:

- for x86, processor can only deal with about 250 interrupt vectors.
- driver may choose to share MSI vectors [1] (which is not merged but we will for sure need it)

[1] https://lkml.org/lkml/2014/12/25/169




Having few pages for a device that only have one queue is kind of a waste.

Could I ask what's the meaning of few pages here? BTW, we didn't define MSIx-like tables for virtio-mmio.


I thought you're using a fixed size (2048) for each device. But looks not :)

Thanks



Thanks,

Jing


Thanks




So the number of vectors supported by device is equal to the total number of vqs and config.

We will try to explicitly highlight this point in spec for later version.


Thanks!

Jing


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: virtio-dev-help@xxxxxxxxxxxxxxxxxxxx




---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: virtio-dev-help@xxxxxxxxxxxxxxxxxxxx