Skip to content

Commit fae3435

Browse files
Rework cover letter changes since v1 section
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>
1 parent 42a7b93 commit fae3435

1 file changed

Lines changed: 76 additions & 54 deletions

File tree

.prjinfo/sendmail/cover.txt

Lines changed: 76 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -64,60 +64,82 @@ We also anticipate a few more:
6464
Changes since v1 (virtio-msg-patch1):
6565

6666
First, thank you for the detailed comments and broad interest on v1.
67-
We tried to address most review feedback in this revision.
68-
69-
Spec Functional / Behavioral:
70-
* Finalized the common header, addressing, and forwarding model:
71-
* Keep a 16-byte common header
72-
* Use 64-bit device numbers
73-
* Use 16-bit msg_size plus 16-bit reserved
74-
* Bus messages are identified by the type field and MUST carry dev_num = 0
75-
* Device number 0 is not reserved for transport messages
76-
* Bus implementations MUST validate transport-message device numbers before
77-
forwarding
78-
Rationale: support larger device-number spaces, remove ambiguity in bus-vs-
79-
transport addressing, and keep forwarding behavior well-defined.
80-
* Clarified device-number lifecycle guidance so bus implementations should avoid
81-
immediate reuse of removed device numbers.
82-
Rationale: reduce races with delayed messages when devices are removed and
83-
added again.
84-
* Added explicit configuration semantics profiles (baseline vs strict), tied to
85-
VIRTIO_MSG_F_STRICT_CONFIG_GENERATION, and gated generation-mismatch refusal
86-
to strict-profile negotiation.
87-
Rationale: preserve compatibility in baseline mode while allowing stricter
88-
behavior when both sides opt in, and make the controlling feature
89-
negotiation explicit in message semantics.
90-
* Clarified SET_CONFIG rejection behavior: rejected responses return
91-
length = 0 with no payload.
92-
Rationale: remove ambiguity for parser/validation behavior.
93-
* Clarified ordering and response-association baseline:
94-
* Request/response ordering is per-device in-order
95-
* Bus implementations own token-based request/response correlation and any
96-
reordering compensation
97-
* Repeated request parameters in responses may be used for validation but do
98-
not define response association
99-
* Events remain asynchronous and may arrive at any time relative to
100-
request/response traffic
101-
Rationale: keep baseline semantics clear while making bus responsibilities
102-
for correlation and ordering explicit.
103-
* Clarified virtqueue state transitions and reconfiguration rules around
104-
enabled/disabled/reset states.
105-
Rationale: align with transport expectations and avoid ambiguous queue-state
106-
behavior.
107-
* Clarified GET_DEVICE_INFO semantics using number of 32-bit feature blocks,
108-
and added UUID guidance referencing RFC4122 nil-UUID semantics while
109-
recommending version 4 UUIDs for non-nil device_uuid values.
110-
Rationale: improve consistency and implementation clarity for both feature
111-
discovery and device identification.
112-
* Clarified GET_DEVICES semantics using direct slot/byte units; responders must
113-
not return count values larger than requested; smaller (including zero) count
114-
is valid when appropriate.
115-
Rationale: make enumeration behavior precise while allowing efficient sparse
116-
windows.
117-
* Added an informative known bus implementation examples section, including the
118-
FF-A bus specification reference and current implementation examples.
119-
Rationale: provide concrete context without constraining architecture choices.
120-
* Tightened conformance text to match the clarified normative behavior.
67+
This revision incorporates review feedback from Peter Hilber, Demi Marie
68+
Obenour, Parav Pandit, Andrei Homescu, Manos Pitsidianakis, Michael S.
69+
Tsirkin, Bill Mills, and HVAC group discussion.
70+
71+
Highlights of the changes since v1:
72+
73+
* Finalized the common transport message model:
74+
* keep a 16-byte common header
75+
* use 64-bit device numbers and keep a 16-bit msg_size field
76+
* clarify common message-ID encoding and validation boundaries
77+
* define request completion more precisely: a valid supported request
78+
completes with exactly one protocol response or a transport-visible failure
79+
* clarify request/response correlation and token handling, including the
80+
rule that devices echo the request token while the bus may rewrite tokens
81+
internally for correlation
82+
* preserve per driver/device request ordering while still allowing
83+
bus-correlated out-of-order responses and events
84+
85+
* Clarified bus versus transport responsibilities and enumeration:
86+
* keep GET_DEVICE_INFO as a driver-issued transport message, and GET_DEVICES,
87+
PING, and EVENT_DEVICE as optional bus messages
88+
* require bus messages to use dev_num = 0
89+
* bus implementations must expose only validated device numbers, may expose
90+
zero devices, and should delay device-number reuse to reduce races
91+
* EVENT_DEVICE is defined as a bus-originated ADDED/REMOVED hotplug event
92+
* tighten GET_DEVICES enumeration semantics, including empty-bitmap cases and
93+
guaranteed forward progress
94+
95+
* Tightened initialization and feature negotiation:
96+
* use transport revision terminology consistently
97+
* keep GET_DEVICE_INFO as the only transport message used for early discovery
98+
* align the rest of initialization with the core virtio flow through reset,
99+
status progression, feature negotiation, FEATURES_OK verification, and
100+
DRIVER_OK
101+
* separate transport-level and device-level feature negotiation semantics
102+
* require GET_DEVICE_INFO to report enough feature blocks to cover all
103+
offered feature bits and bound max_virtqueues to 65536
104+
* define SET_DRIVER_FEATURES as addressed-block updates that may be built up
105+
across multiple requests before FEATURES_OK
106+
* make GET_SHM mandatory for devices to implement while keeping driver use
107+
optional, and align the shared-memory identifier semantics with core virtio
108+
109+
* Aligned configuration, status, and notification behavior with core virtio:
110+
* align GET_CONFIG, SET_CONFIG, EVENT_CONFIG, and device status handling more
111+
closely with the core virtio model
112+
* keep VIRTIO_MSG_F_STRICT_CONFIG_GENERATION only as optional strict-profile
113+
SET_CONFIG mismatch enforcement
114+
* define nonzero SET_CONFIG writes as all-or-nothing and rejected writes as
115+
length = 0 with no payload
116+
* limit EVENT_CONFIG status notifications to device-originated asynchronous
117+
status changes
118+
* make polling-only operation explicit, with EVENT_AVAIL and EVENT_USED used
119+
only when the endpoints choose event-driven notification
120+
* keep bus-side forwarding, polling, or synthesized notification delivery
121+
transparent to the transport-visible model
122+
123+
* Refined virtqueue and reset semantics:
124+
* clarify queue-state transitions, SET_VQUEUE update behavior, and invalid
125+
reconfiguration cases
126+
* make SET_VQUEUE and RESET_VQUEUE reject cases deterministic no-op empty
127+
responses
128+
* define deterministic GET_VQUEUE zero-sentinel responses for unavailable,
129+
unimplemented, and out-of-range queues
130+
* define local admin virtqueue field semantics and the EVENT_AVAIL
131+
notification-data encoding more precisely
132+
* clarify reset-completion checks without duplicating the core virtio reset
133+
rules
134+
135+
* Improved document quality:
136+
* reworked the chapter to better match existing virtio specification style
137+
* removed duplicated or ambiguous requirements
138+
* fixed label paths, direct field references, punctuation, and ambiguous
139+
wording
140+
* added informative known bus implementation examples
141+
* completed conformance coverage for driver, device, and bus clauses
142+
* normalized punctuation and wording for consistency with the rest of the spec
121143

122144
Open topics and ongoing discussion:
123145
* Out-of-order/performance extensions:

0 commit comments

Comments
 (0)