|
From: | Almudena Garcia |
Subject: | Re: [PATCH] SMP initialization: detection and enumeration |
Date: | Mon, 10 Aug 2020 20:56:13 +0200 |
> You don't. Read about GDT and segments register, and segmentation in
> general. In the GDT you'd only store a pointer to the per-cpu data, and
> processors will load it.
> > Is there any way to avoid using an array for that?
> Yes, you'd just store the ID in the per-cpu data.Thanks, I'll take notes about thisEl jue., 30 jul. 2020 a las 23:35, Samuel Thibault (<samuel.thibault@gnu.org>) escribió:Almudena Garcia, le jeu. 30 juil. 2020 23:30:55 +0200, a ecrit:
> > As Richard said, we just want to have different GDTs on the different
> > processors, so that we wan use the fs segment register to implement TLS
> > in the kernel and have per-cpu data cost essentially the same as global
> > data.
>
> Yes, but how can I store the relation APIC ID - Kernel ID in the GDT?
You don't. Read about GDT and segments register, and segmentation in
general. In the GDT you'd only store a pointer to the per-cpu data, and
processors will load it.
> Is there any way to avoid using an array for that?
Yes, you'd just store the ID in the per-cpu data.
Samuel
0005-smp-Add-smp-pseudoclass.patch
Description: Text Data
0003-vm_kern-Add-function-to-map-table.patch
Description: Text Data
0001-configfrag_redefine_NCPUS.patch
Description: Text Data
0004-smp-Add-APIC-finder-ACPI.patch
Description: Text Data
0002-Add-APIC-pseudoclass.patch
Description: Text Data
0006-model_dep.c-Add-new-smp_init-call.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |