Skip to content

Commit 98f13f3

Browse files
committed
Update README.md for clarity and consistency in resource allocation rules
Signed-off-by: Cong Wang <cwang@multikernel.io>
1 parent 6e0c64d commit 98f13f3

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

README.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ Baseline DTB (static)
107107
```
108108

109109
**Key Points:**
110-
- **Baseline contains only resources**: Hardware inventory available for allocation, loaded once via `kerf init`
110+
- **Baseline contains only resources**: Hardware resources available for allocation, loaded once via `kerf init`
111111
- **Instances created via overlays**: Dynamic instance lifecycle managed through device tree overlays (DTBO)
112112
- **Overlay generation**: Computes delta between current and modified state, generates minimal DTBO
113113
- **Transactional overlays**: Each overlay is a transaction with rollback support via `rmdir`
@@ -204,7 +204,7 @@ DTS: /instances/compute → /sys/kernel/multikernel/instances/
204204
- Instance node name in DTS (`web-server`) = directory name in kernel filesystem (`instances/web-server/`)
205205
- Kernel assigns numeric IDs, but users reference by name
206206
- No manual ID coordination needed
207-
- Instance directories and `device_tree_source` files are auto-generated by the kernel from the global device tree
207+
- Instance directories are auto-generated by the kernel from the global device tree
208208

209209
## Validation Rules
210210

@@ -220,36 +220,34 @@ DTS: /instances/compute → /sys/kernel/multikernel/instances/
220220
### CPU Allocation Validation
221221

222222
**Rules:**
223-
1. All CPUs must exist in hardware inventory (0 to `total-1`)
224-
2. CPUs must be in the `available` list (not `host-reserved`)
225-
3. No CPU can be allocated to multiple instances
226-
4. CPU lists should be explicitly enumerated
223+
1. CPUs must be defined in the baseline resource pool
224+
2. No CPU can be allocated to multiple instances
225+
3. CPU lists should be explicitly enumerated
227226

228227
### Memory Allocation Validation
229228

230229
**Rules:**
231-
1. All memory regions must be within memory pool bounds
230+
1. Memory regions must be within the baseline memory pool
232231
2. Memory regions cannot overlap between instances
233-
3. Sum of all allocations must not exceed memory pool size
232+
3. Sum of all allocations must not exceed baseline memory pool size
234233
4. Memory base addresses must be page-aligned (4KB = 0x1000)
235234

236235

237236
### Device Allocation Validation
238237

239238
**Rules:**
240-
1. Referenced devices must exist in hardware inventory
239+
1. Referenced devices must be defined in the baseline
241240
2. Devices can only be allocated to one instance (exclusive access)
242241
3. Device references must be valid (no dangling phandles)
243-
4. SR-IOV VF numbers must be within available range
244-
5. Namespace IDs must be within available range
242+
4. SR-IOV VF numbers must be within device limits
243+
5. Namespace IDs must be within device limits
245244

246245
### Global Resource Validation
247246

248247
**Rules:**
249248
1. Instance names must be unique
250-
2. Instance IDs must be unique
251-
3. All phandle references must resolve
252-
4. Hardware inventory must be complete and consistent
249+
2. All phandle references must resolve
250+
3. Baseline resource configuration must be complete and consistent
253251

254252

255253
## Integration with Kernel

0 commit comments

Comments
 (0)