XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions
sched_soak.c File Reference
#include <stdint.h>
#include <Hal/AA64/sched.h>
#include <Hal/AA64/aa64lowlevel.h>
#include <Drivers/uart.h>
#include <timer.h>
#include <_null.h>
Include dependency graph for sched_soak.c:

Classes

struct  soak_edf_stat
 

Macros

#define SOAK_ROUNDS   60
 
#define SOAK_SUPERVISOR_SLICE_MS   100
 
#define SOAK_SUPERVISOR_SLICES   50
 

Functions

void AuSoakStart (void)
 

Detailed Description

Scheduler soak test: sustained mixed load that stresses everything the recent scheduler work touched – EDF admit/wait/release/pick, sleep and block/unblock paths, and the spinlock-guarded lists under a 1ms tick.

Layout: two EDF periodic workers (50ms/8ms, 120ms/12ms), one RR churn thread (sleep cycles plus periodic self-blocks), one waker thread exercising cross-thread AuBlockThread/AuUnblockThread, and a supervisor that every ~5s validates all scheduler lists (linkage, tails, states), samples job counters and prints a summary line.

PASS criteria after 60 rounds (~5 min): zero list errors, both EDF workers kept producing jobs, supervisor never stalled. Miss counts are reported, not fatal (shared desktop, no WCET enforcement). Then every soak thread parks forever.

Macro Definition Documentation

◆ SOAK_ROUNDS

#define SOAK_ROUNDS   60

◆ SOAK_SUPERVISOR_SLICE_MS

#define SOAK_SUPERVISOR_SLICE_MS   100

◆ SOAK_SUPERVISOR_SLICES

#define SOAK_SUPERVISOR_SLICES   50

Function Documentation

◆ AuSoakStart()

void AuSoakStart ( void  )