From 913429f2ca2ea3d28227393b76d770ea1beb21f4 Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Mon, 18 Nov 2019 18:02:55 +0900 Subject: [PATCH] Directly map read-only regions instead of copying them, when forking a process --- kernel/core/process.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; -- 2.47.3