mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:47:35 +00:00
Kernel: Make a slightly better demo for Aarch64 multiprocessing
This commit is contained in:
parent
9b12571a86
commit
78d6de2ec1
1 changed files with 20 additions and 13 deletions
|
@ -100,28 +100,35 @@ void init_stage2(void*)
|
||||||
Process::register_new(Process::current());
|
Process::register_new(Process::current());
|
||||||
|
|
||||||
// This thread is created to show that kernel scheduling is working!
|
// This thread is created to show that kernel scheduling is working!
|
||||||
LockRefPtr<Thread> more_work_thread;
|
LockRefPtr<Thread> some_work_thread;
|
||||||
(void)Process::create_kernel_process(more_work_thread, MUST(KString::try_create("More Work Thread"sv)), [] {
|
(void)Process::create_kernel_process(some_work_thread, MUST(KString::try_create("Some Work Thread"sv)), [] {
|
||||||
dmesgln("Enter loop (more work):");
|
Aarch64::Asm::wait_cycles(50000000);
|
||||||
for (int i = 0; i < 500; i++) {
|
dmesgln("Starting \033[0;31msome work\033[0m:");
|
||||||
|
for (int i = 1; i <= 500; i++) {
|
||||||
if (i % 20 == 0)
|
if (i % 20 == 0)
|
||||||
dmesgln(" Hello from more_work: {}", i);
|
dmesgln(" Working on \033[0;31msome work\033[0m: {}", i);
|
||||||
|
|
||||||
Aarch64::Asm::wait_cycles(1000000);
|
Aarch64::Asm::wait_cycles(400000);
|
||||||
}
|
}
|
||||||
dmesgln("Finished the work!");
|
dmesgln("Finished \033[0;31msome work\033[0m!");
|
||||||
});
|
});
|
||||||
|
|
||||||
auto firmware_version = query_firmware_version();
|
auto firmware_version = query_firmware_version();
|
||||||
dmesgln("Firmware version: {}", firmware_version);
|
dmesgln("Firmware version: {}", firmware_version);
|
||||||
|
|
||||||
dmesgln("Enter loop");
|
LockRefPtr<Thread> more_work_thread;
|
||||||
for (int i = 0;; i++) {
|
(void)Process::create_kernel_process(more_work_thread, MUST(KString::try_create("More Work Thread"sv)), [] {
|
||||||
if (i % 20 == 0)
|
dmesgln("Starting \033[0;34mmore work\033[0m:");
|
||||||
dmesgln("Hello from init_stage2: {}", i);
|
for (int i = 1; i <= 300; i++) {
|
||||||
|
if (i % 20 == 0)
|
||||||
|
dmesgln(" Working on \033[0;34mmore work\033[0m: {}", i);
|
||||||
|
|
||||||
Aarch64::Asm::wait_cycles(1000000);
|
Aarch64::Asm::wait_cycles(1000000);
|
||||||
}
|
}
|
||||||
|
dmesgln("Finished \033[0;34mmore work\033[0m!");
|
||||||
|
});
|
||||||
|
|
||||||
|
dmesgln("Finished init stage");
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" [[noreturn]] void init()
|
extern "C" [[noreturn]] void init()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue