But, added to interrupt stacks, the APs needs their own stacks once these are running, to store data of the process which are executing.
Hi Almu,
On 3/2/23 02:56, Almudena Garcia wrote:
> I already suggested move this to a function
>
> +#ifndef MACH_HYP
> + /* Turn paging on.
> + * TODO: Why does setting the WP bit here cause a crash?
> + */
> + set_cr0(get_cr0() | CR0_PG /* | CR0_WP */);
> + set_cr0(get_cr0() & ~(CR0_CD | CR0_NW));
> + if (CPU_HAS_FEATURE(CPU_FEATURE_PGE))
> + set_cr4(get_cr4() | CR4_PGE);
I moved this to a function called paging_enable()
> I miss the stack's memory reserve and assignation for AP processors, which was usually make before startup these. Where are this?
Interrupt stacks are pre-assigned by the compiler at a fixed location per cpu. See "solid_intstack".
Damien