Re: [Qemu-devel] Getting current PGD on Linux@ARM

2015-08-11 Thread Peter Maydell
On 11 August 2015 at 13:53, Igor R wrote: > Reading ttbr0 worked for me on ARM, reading cr3 worked on x86. > Now I'm looking for a similar thing on MIPS. I.e. I need a pointer to the > process' translation table - something that can be compared to task->mm->pgd > (after virt2phys conversion). > I'

Re: [Qemu-devel] Getting current PGD on Linux@ARM

2015-08-11 Thread Igor R
> > When debugging (via gdbstub), I would like to get the current process > > id by a virtual address. When the virtual address is in the > > user-space, the only way to find the current task_struct I can think > > of is to iterate over all the task_struct's (assuming we know > > task_init and the

Re: [Qemu-devel] Getting current PGD on Linux@ARM

2015-07-19 Thread Peter Maydell
On 19 July 2015 at 06:40, Igor R wrote: >>> On x86 one can get the current PGD from CR3. What's the right way to >>> do this on ARM? >> >> What's a PGD ? > > Page global directory That doesn't help much -- I don't know x86 terminology and it's not an ARM term. >>> But in the recent QEMU version

Re: [Qemu-devel] Getting current PGD on Linux@ARM

2015-07-18 Thread Igor R
>> On x86 one can get the current PGD from CR3. What's the right way to >> do this on ARM? > > What's a PGD ? Page global directory > However just looking at base & mask is not necessarily > correct -- depending on the configuration of the CPU we > might be using translation table base control r

Re: [Qemu-devel] Getting current PGD on Linux@ARM

2015-07-18 Thread Peter Maydell
On 18 July 2015 at 20:30, Igor R wrote: > Hello, > > On x86 one can get the current PGD from CR3. What's the right way to > do this on ARM? What's a PGD ? > In a code based on an old QEMU version, I see the following: > pgd = env->cp15.c2_base0 & env->cp15.c2_base_mask; We renamed those, both t

[Qemu-devel] Getting current PGD on Linux@ARM

2015-07-18 Thread Igor R
Hello, On x86 one can get the current PGD from CR3. What's the right way to do this on ARM? In a code based on an old QEMU version, I see the following: pgd = env->cp15.c2_base0 & env->cp15.c2_base_mask; But in the recent QEMU version c2_base0 field is absent. Instead, there's ttbr0[] array. So s