Review v1/v0#31
Conversation
Peter noted inconsistent use of “device number” vs “device ID”. I did not find other ambiguous occurrences in transport-msg, so I added a sentence explicitly distinguishing the bus-assigned device number from the virtio device ID returned by GET_DEVICE_INFO. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter noted minor editorial issues (“Implement”/“respond”). Update the Device bullet to “Implements” and “responds”. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter noted inconsistent naming. Update the virtio-msg revision wording and paragraph title to consistently use “transport revision”. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter requested active-voice wording for the reserved header bits requirement. Rephrase to make the bus implementation the subject. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter noted this requirement was already stated in the Initialization Flow driver requirements. Remove the duplicate from the Device Information driver requirements to avoid repetition. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter questioned “reset” on DEVICE_BUS_STATE_REMOVED. Rephrase the intended-usage text to avoid implying a device reset after removal and to focus on driver-side teardown. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter noted the spec implied “one or more” devices. Update the device numbering section to allow zero devices, matching the earlier bus-layer statement and hotplug use cases. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Demi suggested a non-normative note discouraging configuration space for bulk data when a virtqueue can be used. Add a short explanatory note in Device Configuration. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Parav requested symmetric naming for device hotplug events. Rename the READY state to ADDED throughout the EVENT_DEVICE definition and related text; values remain unchanged. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter asked whether transport feature bits are negotiated. Clarify that the bus presents only the common subset and add a bus requirement to advertise only mutually supported bits. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Peter asked whether devices may reset the configuration generation count. Allow reset (including on device reset) and require drivers to avoid assuming monotonic or persistent values. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Rephrase driver and device notification text to focus on which messages are used, avoiding timing-specific requirements for EVENT_AVAIL, EVENT_CONFIG, and EVENT_USED. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Strengthen EVENT_USED requirements to MUST, with explicit exceptions for polling or other agreed-upon completion mechanisms. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Remove the runtime requirement to issue RESET_VQUEUE before reprogramming a queue, since it does not avoid races. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Use le32 for admin_vq_start and admin_vq_count to match max_virtqueues. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
PROPOSAL: Clarify that echoed request parameters in responses are informational and do not change the ordering-based correlation model. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Make device requirements explicit: if features are unsupported, the device MUST clear FEATURES_OK in the status response. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Use le64 for shared memory length and address, and add a reserved padding field aligned with existing message layouts. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Require EVENT_CONFIG to carry the affected offset/length even when data is omitted, and update related guidance. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Clarify that DEVICE_NEEDS_RESET is reported via status updates without repeating EVENT_CONFIG-specific requirements. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Require the bus to discard invalid bus msg_ids and leave transport msg_id validation to the transport endpoints. NOTE: I am unsure whether the explicit "MUST NOT validate transport msg_id" line is necessary; please comment if a softer requirement is preferred. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Remove the redundant sentence in SET_DRIVER_FEATURES device requirements. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Add a non-normative description of bus-level rejection for forbidden requests and how it can be surfaced to the driver. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Rephrase the Message Ordering requirements so the device, not the bus, MUST send exactly one response per request. The bus ordering guarantee remains unchanged. Signed-off-by: Bertrand Marquis <Bertrand.Marquis@arm.com> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Add an explicit note that virtqueue descriptors and buffer data are exchanged via shared memory or other DMA-accessible memory. Transport messages remain control-plane only. Signed-off-by: Bertrand Marquis <Bertrand.Marquis@arm.com> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Clarify that event notifications are independent and may be delivered out of order with respect to other events, while request/response ordering remains unchanged. Signed-off-by: Bertrand Marquis <Bertrand.Marquis@arm.com> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Align virtqueue and shared-memory address wording with mmio/pci by consistently referring to physical addresses throughout the virtio-msg transport text and message definitions. Signed-off-by: Bertrand Marquis <Bertrand.Marquis@arm.com> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
… Pitsidianakis) Manos Pitsidianakis noted that the generation-field comments should say explicitly which negotiated feature controls the zero value. Update the GET_CONFIG, SET_CONFIG, and EVENT_CONFIG generation field comments to refer directly to VIRTIO_MSG_F_STRICT_CONFIG_GENERATION instead of saying only "if not negotiated". Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
…(Manos Pitsidianakis) Manos Pitsidianakis questioned whether the ordering text around repeated request parameters in responses should be normative. Clarify instead that request/response association is the responsibility of the bus, that the token field is bus-owned and may be used for correlation or to compensate for transport-specific reordering, and that repeated request parameters in response payloads may be used for validation without affecting response association. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reword to take into account latest changes done while trying to keep it short. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
@epilys |
|
The file contains non-ascii characters again. None of the other files in the spec/project do. The non-ASCII charaters currently are:
|
|
I will fix the non ascii issues.
I will make some patches to handle those and the ascii issue and submit them today or tomorrow |
|
I made this before I read your message. Feel free to ignore: |
|
I added a link to the PDF of the current version in the header of this PR. I will update when you do your update Bertrand. |
Bill Mills noted that transport-msg.tex still contained non-ASCII punctuation. Replace sentence-interrupting Unicode dashes with commas, convert numeric ranges to the single ASCII hyphen form used elsewhere in the virtio spec, and normalize the remaining 0--31/32--63 range to that same style. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
Patches that i will push after this point are a bit invasive but are coming out of the experience i made writing a full PoC and out of deep reviews from chatgpt 4. |
Clarify which responsibilities belong to the bus versus the transport layer, tighten error signaling and completion rules, and define how common message IDs, tokens, and repeated request fields are used for request/response association. State that each valid supported request completes with exactly one protocol response or a transport-visible failure, and keep the related driver and device conformance references aligned with that model. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Clarify how EVENT_AVAIL, EVENT_CONFIG, and EVENT_USED are used when endpoints choose event-driven notifications versus polling-only operation, and make any bus-side forwarding, polling, or synthesized delivery transparent to the transport-visible semantics. Also define the EVENT_AVAIL notification-data encoding, require per driver/device request ordering through the bus plus receive-order processing at the device, and fold the related conformance references into the same patch. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Keep GET_DEVICE_INFO as the only early-discovery transport message, separate transport feature bits from per-device feature negotiation, and align the rest of initialization with the core virtio reset, status, feature negotiation, FEATURES_OK, and DRIVER_OK flow. Also require GET_DEVICE_INFO to cover all offered feature bits and to bound max_virtqueues, and define SET_DRIVER_FEATURES as addressed-block updates that may be accumulated across multiple requests before FEATURES_OK. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Require devices to implement GET_SHM even though drivers may treat it as optional, rename the shared-memory region identifier fields to shmid to match core virtio terminology, and define unsupported shmid responses as zero-length regions. This makes shared-memory capability discovery explicit and keeps unsupported-region handling deterministic for drivers. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Align configuration generation handling, SET_CONFIG, EVENT_CONFIG, and device-status behavior more closely with the core virtio model. Make nonzero SET_CONFIG writes all-or-nothing, keep strict generation mismatch handling optional, add explicit driver rules for GET_DEVICE_STATUS and GET_VQUEUE, and limit EVENT_CONFIG status notifications to device-originated asynchronous changes. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Define deterministic GET_VQUEUE sentinel values for unavailable, unimplemented, or out-of-range queues, clarify how GET_DEVICE_INFO reports local administration virtqueue ranges, and tighten SET_VQUEUE handling for invalid or unsupported updates. Also make invalid SET_VQUEUE requests and unsupported RESET_VQUEUE requests explicit no-op empty responses so reconfiguration and recovery semantics remain deterministic. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Define count=0 as a valid GET_DEVICES request and response case, clarify empty-bitmap handling for reduced windows, and require next_offset to be 0 for terminal responses or strictly greater than the request offset for nonterminal responses. This removes zero-progress enumeration loops while preserving the existing sparse-window response model. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Rewrite touched informative text to use neutral specification wording and consistent virtio-msg terminology without changing wire format, labels, or normative behavior. Clean up the configuration, notification, initialization, and GET_DEVICES explanations so reviewers can focus later patches on semantic changes rather than editorial churn. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Mention the reviewer names and tighten a bit the list to reflect the final result without intermediate states as we will merge everything together. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
@bertrand-marquis you have updated the virtio-msg FFA spec link in the cover letter but I don't see it added to the bibliography as we had discussed |
Restore the 8-byte common header and 16-bit device-number model for virtio-msg. Revert bus-message device-number payloads and size bounds that were widened for the 64-bit direction. Document that larger deployments can scale with multiple bus instances instead of a wider dev_num field. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Define GET_DEVICE_FEATURES as device-offered features and SET_DRIVER_FEATURES as the driver-selected subset. Keep FEATURES_OK as the point where the device accepts or rejects the negotiated set. Remove wording that implied GET_DEVICE_FEATURES later reflects negotiated state. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reference the Virtio Message Bus over FF-A specification through the normative bibliography using a distinct FFA-BUS citation tag. Attribute the DEN0153 document to Arm and keep the transport chapter citing the bibliography entry instead of a raw URL. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Mention that we are not increasing dev_num size and mention the solution using multiple bus instances instead. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Update common-spec text so Virtio Over Messages is referenced from the core device facilities and introduction. This is a proposal for changes in the virtio common specification to properly insert the virtio message transport in the transport-neutral text. Keep the change minimal for now: - update content.tex to mention Virtio Over Messages in the transport list and in VIRTIO_F_ADMIN_VQ text - update introduction.tex to mention message-based transports We could also adapt newtransport.tex, but that is intentionally left out here to keep the proposal minimal. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
wmamills
left a comment
There was a problem hiding this comment.
In the April 23 meeting it was agreed to accept this PR as is and do any additional fix-up needed as additional PRs if needed.
[PDF version of this branch as of 2026-04-23 2:00 UTC ]
Hi Everyone,
This pull request include a number of fixes or changes to handle the review comment we got on virtio mailing list.
Some points are not handled because they need a decision between us first (following summary was generated by chatgpt):
Ordering / Out‑of‑Order Feature Discussion
order, and the spec should support that for performance.
baseline requirement.
Configuration Generation Optional Feature Discussion
incompatibility with existing driver behavior.
VQ Enabled Flag Discussion
enablement. This is aimed at reducing overhead in the initialization flow.
Device Number Size Discussion
space.
EVENT_CONFIG Data Mandatory Discussion
unnecessary.