Feng Liu a084983dcd virtio_ring: Allow non power of 2 sizes for packed virtqueue
According to the Virtio Specification, the Queue Size parameter of a
virtqueue corresponds to the maximum number of descriptors in that
queue, and it does not have to be a power of 2 for packed virtqueues.
However, the virtio_pci_modern driver enforced a power of 2 check for
virtqueue sizes, which is unnecessary and restrictive for packed
virtuqueue.

Split virtqueue still needs to check the virtqueue size is power_of_2
which has been done in vring_alloc_queue_split of the virtio_ring layer.

To validate this change, we tested various virtqueue sizes for packed
rings, including 128, 256, 512, 100, 200, 500, and 1000, with
CONFIG_PAGE_POISONING enabled, and all tests passed successfully.

Signed-off-by: Feng Liu <feliu@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>

Message-Id: <20230315185458.11638-2-feliu@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2023-04-21 03:02:31 -04:00
..
2023-04-14 15:15:32 +02:00
2023-03-16 16:54:38 +09:00
2023-04-10 13:35:54 -07:00
2023-04-13 15:21:56 -07:00
2023-03-21 10:47:06 -07:00
2023-02-25 09:19:23 -08:00
2023-02-24 12:58:55 -08:00
2023-03-24 15:38:13 -07:00
2023-02-24 12:58:55 -08:00
2023-04-07 13:53:16 -07:00
2023-04-13 20:47:58 +02:00
2023-04-12 17:26:00 -07:00
2023-02-24 12:58:55 -08:00
2023-04-15 11:06:49 -07:00
2023-02-28 16:05:01 -08:00
2023-02-21 12:13:58 -08:00
2023-03-28 13:30:55 +02:00
2023-04-01 14:09:51 -07:00
2023-02-24 12:58:55 -08:00
2023-02-25 11:30:21 -08:00
2023-02-23 15:09:31 -08:00
2023-02-25 11:00:06 -08:00
2023-03-31 12:35:03 -07:00
2023-02-27 09:47:26 -08:00
2023-02-25 11:48:02 -08:00
2023-04-13 15:21:56 -07:00
2023-04-11 11:59:49 -07:00
2023-02-24 12:58:55 -08:00
2023-02-27 10:04:49 -08:00
2023-04-06 10:13:23 -07:00
2023-03-24 19:17:22 -07:00
2023-03-27 01:42:01 +01:00
2023-02-27 10:04:49 -08:00
2023-02-26 12:10:28 -08:00
2023-03-03 09:15:50 -08:00
2023-04-15 10:49:47 -07:00
2023-03-01 09:44:22 -08:00
2023-02-24 17:29:52 -08:00
2023-04-13 15:21:56 -07:00
2023-03-09 10:06:28 +01:00
2023-04-08 12:17:46 -07:00
2023-04-13 20:47:58 +02:00
2023-03-02 11:12:01 -08:00
2023-03-17 10:45:49 -07:00
2023-02-26 11:53:25 -08:00