我有一个关于Linux内核中伙伴系统分配器的疑问。 考虑以下示例: 假设有128KB的RAM正在使用伙伴系统进行分配。 如果我使用kmalloc分配32KB内存,我的理解是, 步骤1将128KB分成两个64KB,第一个64KB再分成两个32KB。 然后将第一个32KB分配给我。 显然,仍有96KB的连续内存可用。 现在,如果在这个阶段分配90KB,会发生什么? kmalloc是否会失败,或者伙伴(甚至是slab)分配器会处理并成功分配所需的内存?