> From: Jason Wang <[email protected]>
> Sent: Wednesday, June 28, 2023 1:38 AM
[..]
> > Provisioning is far simpler thing to do in device specific way than asking
> > device
> to store this value in onchip area which is rarely accessed.
>
> Are you suggesting to not place any new fields in the config space?
>
Yes.
> struct virtio_net_config {
> u8 mac[6];
> le16 status;
> le16 max_virtqueue_pairs;
> le16 mtu;
> le32 speed;
> u8 duplex;
> u8 rss_max_key_size;
> le16 rss_max_indirection_table_length;
> le32 supported_hash_types;
> };
>
> Which of the above do you think can be accessed frequently and which part of
> the spec says it must be stored in the onchip area?
>
Most are not accessed frequently.
The fact that they are in MMIO a device needs to place in a memory with tight
latency budget.
Spec is not going to talk on onchip area, it is the reflection of spec that
forces certain inefficient implementation .