Does cr3 register change when a new process is scheduled ?

Does cr3 register change when a new process is scheduled ?

am 15.01.2009 03:33:20 von George Kumar

Let us suppose we are talking about a uni processor system. Do we
change cr3 page directory control register when a new process is
scheduled to run on the CPU.

thanks.
George
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

Re: Does cr3 register change when a new process is scheduled ?

am 15.01.2009 03:43:51 von Peter Teoh

yes, every process running will have a different CR3 value....easily
seen when u printk() the value from different kernel module....and the
kernel module is running in the same process context as the "insmod"
that started the kernel module....so u can see the process name is
"insmod" if u printk() the value of the process name. ie, user +
kernel mode all shared the same CR3 value, but different process will
have different value.

On Thu, Jan 15, 2009 at 10:33 AM, George Kumar wrote:
> Let us suppose we are talking about a uni processor system. Do we
> change cr3 page directory control register when a new process is
> scheduled to run on the CPU.
>
> thanks.
> George
> --

--
Regards,
Peter Teoh
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

Re: Does cr3 register change when a new process is scheduled ?

am 25.04.2009 05:06:26 von Jeffrey Cao

On 2009-01-15, Peter Teoh wrote:
> yes, every process running will have a different CR3 value....easily
> seen when u printk() the value from different kernel module....and the
> kernel module is running in the same process context as the "insmod"
> that started the kernel module....so u can see the process name is
> "insmod" if u printk() the value of the process name. ie, user +
Not exactly, module is not a process. It is just some functions registered
into the kernel space. You see the process name is "insmod" is because that
you put your printk statement in the module initialization function. You
execute insmod to call the initialization function, so the module's init
function is in "insmod" process context. If you execute other command to
call ioctl to the module, and then the module is executed in other process
context.

Jeffrey

> kernel mode all shared the same CR3 value, but different process will
> have different value.
>
> On Thu, Jan 15, 2009 at 10:33 AM, George Kumar wrote:
>> Let us suppose we are talking about a uni processor system. Do we
>> change cr3 page directory control register when a new process is
>> scheduled to run on the CPU.
>>
>> thanks.
>> George
>> --
>

--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs