Skip to content

Commit 2f712ed

Browse files
committed
docs(rng-buf): Fix typos in proposal README
1 parent f0bf08e commit 2f712ed

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

proposals/0001-rng-buf/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ in performance degradation. A ring buffer can mitigate this overhead by:
7070
### Non-Goals
7171

7272
- 100% virtio specification compliance
73-
- Indirect descriptor table support (deffered to future work if needed)
73+
- Indirect descriptor table support (deferred to future work if needed)
7474
- Immediate async/await integration (deferred to future work)
7575

7676
## Proposal
@@ -140,7 +140,7 @@ in the picture below. The `addr` field contains an offset (or physical address,
140140
implementation) pointing to where the actual buffer data lives in the shared memory region. The
141141
descriptor itself only contains metadata about the buffer and is agnostic to where the address
142142
points. The only requirements for the address is that both host and guest can translate it to
143-
referencable pointer to the buffer memory. The `addr` field does not preserve Rust's notion of
143+
referenceable pointer to the buffer memory. The `addr` field does not preserve Rust's notion of
144144
pointer provenance.
145145

146146
Each descriptor is 16 bytes and has the following layout:
@@ -239,7 +239,7 @@ Popping from the stack mirrors this process. The guest reads stack pointer from
239239
header. It then reads the 8-byte back-pointer located just before stack pointer to get last element
240240
offset in the buffer. It treats the slice starting at that offset as the flatbuffer-serialized
241241
payload. The last step is to deserialize the slice, rewind the stack pointer to just consumed
242-
paylaod offset.
242+
payload offset.
243243

244244
This model is a natural fit for synchronous, in-order communication, but the LIFO stack semantics
245245
makes asynchronous constructs with out-of-order completion impossible to implement. This proposal
@@ -268,7 +268,7 @@ host needs to transfer data as stream to the guest and each stream chunk trigger
268268
**1. Notification Suppression**
269269

270270
The virtio queue defines event suppression mechanism that allow both sides to control when they want
271-
to be notified about the submissions or completions in the queue. Notification supression allow for
271+
to be notified about the submissions or completions in the queue. Notification suppression allow for
272272
different batching strategies. For example:
273273

274274
- A driver can queue multiple requests, suppress notifications, and only notify the device once when
@@ -325,15 +325,15 @@ When the `INLINE` flag is set, the `addr` is unused. This optimization, inspired
325325
eliminates memory indirection for common small messages, improving both latency and cache behavior.
326326
The tradeof is the increased size of descriptor table. Alternatively we could repurpose the `addr`
327327
and `len` as raw bytes providing 12 bytes of inline storage. We should asses if any of flatbuffer
328-
schema serialized data can actualy fit into small inline data.
328+
schema serialized data can actually fit into small inline data.
329329

330330
**4. Descriptor Chaining - scatter gather list**
331331

332332
Descriptors can be chained using the `NEXT` flag. This enables zero-copy scatter-gather I/O
333333
patterns. Imagine again the stream running on the host. We want to gather few chunks before sending
334334
it to the guest. For each incoming chunk we can grab the buffer from the buffer pool and write data
335335
to it. After reaching some threshold we want to present all the buffers to guest. scatter-gather
336-
list allow us to represent the chunks as descriptor chain without need to copy it to contigous
336+
list allow us to represent the chunks as descriptor chain without need to copy it to contiguous
337337
memory.
338338

339339
### Dynamic Response Sizing
@@ -357,7 +357,7 @@ attempt to snapshot a sandbox with such pending requests will result in a snapsh
357357

358358
### Difference from spec
359359

360-
- Do not support indirect descriptor table (can be deffered to future work if needed),
360+
- Do not support indirect descriptor table (can be deferred to future work if needed),
361361
- Do not support feature negotiation, set of features is fixed for driver and device,
362362
- Only support packed queue,
363363
- Introduce inline data optimization in descriptor (only if benchmarks support the claim)

0 commit comments

Comments
 (0)