From: Matthias Kruk Date: Mon, 18 Nov 2019 09:02:55 +0000 (+0900) Subject: Directly map read-only regions instead of copying them, when forking a process X-Git-Url: https://git.corax.cc/?a=commitdiff_plain;h=913429f2ca2ea3d28227393b76d770ea1beb21f4;p=corax Directly map read-only regions instead of copying them, when forking a process --- diff --git a/kernel/core/process.c b/kernel/core/process.c index 118b977..edc7a86 100644 --- a/kernel/core/process.c +++ b/kernel/core/process.c @@ -172,9 +172,13 @@ int _fork_region(pg_dir_t *parent_dir, region_t *reg, void *data) switch(reg->reg_type) { case REGION_TEXT: + case REGION_RODATA: + /* .text and .rodata are read-only, so we might as well just map them */ + ret_val = pg_dir_map_region(child_dir, parent_dir, reg); + break; + case REGION_BSS: case REGION_DATA: - case REGION_RODATA: /* copy the region and its contents */ ret_val = pg_dir_clone_region(child_dir, parent_dir, reg); break;