Right now, most aspects of the kernel use normal Rust alloc features, all of which assume infallible allocation. But, since we're the kernel, we can't necessarily promise this.
Support for fallible allocation will require a careful evaluation of the uses of the alloc crate features across the system, so we can identify places where a) allocation must succeed, b) allocation may fail and we have a reasonable handling path, and c) places where allocation may block.
Right now, most aspects of the kernel use normal Rust alloc features, all of which assume infallible allocation. But, since we're the kernel, we can't necessarily promise this.
Support for fallible allocation will require a careful evaluation of the uses of the alloc crate features across the system, so we can identify places where a) allocation must succeed, b) allocation may fail and we have a reasonable handling path, and c) places where allocation may block.