Re: [PATCH 1/3 gnumach] apic: Use cpuid to read the apic id for speed

2023-08-11 Thread Damien Zammit
Hi, On 12/8/23 04:27, Luca wrote: > How much faster is this? did you measure also on hw? I would use RDTSC > to do it, I don't know if there are better ways. So, ~8 microseconds was reduced to ~60 nanoseconds, so roughly 100 times faster. I don't know how to do it with rdtsc. > Interestingly, Lin

Re: [PATCH 1/3 gnumach] apic: Use cpuid to read the apic id for speed

2023-08-11 Thread Luca
Il 11/08/23 10:34, Damien Zammit ha scritto:> diff --git a/i386/i386/cpu_number.h b/i386/i386/cpu_number.h index c00896e8..df086370 100644 --- a/i386/i386/cpu_number.h +++ b/i386/i386/cpu_number.h @@ -39,12 +39,30 @@ #define CX(addr, reg) addr(,reg,8) #endif -#define CPU_NUMBER(reg

[PATCH 3/3 gnumach] i386/x86_64: Add remote AST via IPI mechanism

2023-08-11 Thread Damien Zammit
--- i386/i386/ast_check.c | 4 i386/i386/i386asm.sym | 1 + i386/i386/locore.S | 1 + i386/i386/smp.c | 16 +--- i386/i386/smp.h | 1 + i386/i386at/idt.h | 3 +++ i386/i386at/int_init.c | 4 i386/i386at/interrupt.S | 8 x86_64/i

[PATCH 2/3 gnumach] kern/sched_prim: Cause ast on cpu coming out of idle

2023-08-11 Thread Damien Zammit
--- kern/sched_prim.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/kern/sched_prim.c b/kern/sched_prim.c index dd0f492b..f7557124 100644 --- a/kern/sched_prim.c +++ b/kern/sched_prim.c @@ -1266,6 +1266,8 @@ void thread_setrun( processor->state = PROCESSOR_D

[PATCH 0/3 gnumach] - SMP speedup

2023-08-11 Thread Damien Zammit
Hi, This patchset speeds up smp a lot, but I still can't get a shell. I get random hangs during bootup, or maybe they are just a sporadic slowness. There are still problems with the scheduler, I think. Damien

[PATCH 1/3 gnumach] apic: Use cpuid to read the apic id for speed

2023-08-11 Thread Damien Zammit
--- i386/i386/apic.c | 11 +-- i386/i386/cpu_number.h | 20 +++- i386/i386/locore.S | 2 +- i386/i386/mp_desc.c| 3 +-- x86_64/locore.S| 10 +- 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/i386/i386/apic.c b/i386/i386/apic