diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index b36b08325c04ae711ab5e00a8b57fc246ce0ff8c..964c5fac143ee038094a3b13927630d3089ddf83 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2367,6 +2367,12 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
 		p->sched_class = &fair_sched_class;
 	}
 
+	// schedule a pb process only using the pb-scheduler and thereby avoid that the process is
+	// inserted into the CFS data structures
+	if (PB_EXEC_MODE == this_rq()->pb.mode) {
+		p->sched_class = &pb_sched_class;
+	}
+
 	init_entity_runnable_average(&p->se);
 
 	/*