Re: cr3 register in thread_struct

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Patrick ....

> can somebody tell me, why the register 'CR3' is not part of the
> struct 'thread_struct' (in processor.h)?
> Why ist 'CR3' part of the 'tss_struct' ?
> IMHO, the struct thread_struct saves the hardware context of a
> process, but this register 'CR3' is not part of the struct.

I can only say that actually kernel doesn't need to save CR3 content. 
Why? because actually on every context switch, we just need to point 
CR3 register to the physical address of selected task's page global 
directory. take a look on switch_mm().

So why do you see __cr3 on tss_struct? I only guess this is just for 
satisfying x86 arch requirement that urge you to setup TSS segment. 
perhaps Intel documents might give better information.

Somebody CMIIW.....

regards,

Mulyadi

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux