Make use of `ukplat_memregion_list_insert_at_idx` in order to make
insertion faster in `ukplat_memregion_list_insert_split_phys`.
Signed-off-by: Sergiu Moga <sergiu.moga@protonmail.com>
Reviewed-by: Michalis Pappas <michalis@unikraft.io>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #848
mrdc = *mrd;
- /* TODO: The following code does not make use of the tracked iteration
- * index to insert elements at the correct location and instead uses the
- * generic insertion routine. For large memory region lists this could
- * be potentially slow.
- */
for (i = 0; i < (int)list->count; i++) {
mrdp = &list->mrds[i];
if (!ukplat_memregion_desc_overlap(mrdp, pstart, pend))
mrdc.len = mrdp->pbase - pstart;
if (mrdc.len >= min_size) {
- rc = ukplat_memregion_list_insert(list, &mrdc);
+ rc = ukplat_memregion_list_insert_at_idx(list,
+ &mrdc,
+ i - 1);
if (unlikely(rc < 0))
return rc;
}