Mailing List Archive

Strange behaviour...
Hello,

Just a question:
The following code is taken from domain_build.c in Samsung's port, in the build_pagetable() function:

...
for (count = 0; count < 4; count++) {
*(pde + count) = l2e_from_paddr((unsigned long)pte, __L2_PAGE_USER_TABLE);
pte += 256; /* coarse page table on ARM */
}
...

However, the l2e_from_paddr() begins with the following assertion: ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);

Which will fail since the pte address is incremented with 256 (*4), and is not 4 KB-page aligned.

Is the build_pagetable() function not used anymore?

Cheers
Daniel
RE: Strange behaviour... [ In reply to ]
Sorry, the function is setup_pg_tables() and not build_pagetable()....

From: xen-arm-bounces@lists.xensource.com [mailto:xen-arm-bounces@lists.xensource.com] On Behalf Of ROSSIER Daniel
Sent: vendredi, 22. mai 2009 11:01
To: xen-arm@lists.xensource.com
Subject: [XenARM] Strange behaviour...

Hello,

Just a question:
The following code is taken from domain_build.c in Samsung's port, in the build_pagetable() function:

...
for (count = 0; count < 4; count++) {
*(pde + count) = l2e_from_paddr((unsigned long)pte, __L2_PAGE_USER_TABLE);
pte += 256; /* coarse page table on ARM */
}
...

However, the l2e_from_paddr() begins with the following assertion: ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);

Which will fail since the pte address is incremented with 256 (*4), and is not 4 KB-page aligned.

Is the build_pagetable() function not used anymore?

Cheers
Daniel
RE: Strange behaviour... [ In reply to ]
hmm ok, just saw that you disabled the ASSERT by setting NDEBUG=1 in your Config.mk....
Therefore, ASSERT() is not executed...

From: ROSSIER Daniel
Sent: vendredi, 22. mai 2009 11:03
To: xen-arm@lists.xensource.com
Subject: RE: Strange behaviour...

Sorry, the function is setup_pg_tables() and not build_pagetable()....

From: xen-arm-bounces@lists.xensource.com [mailto:xen-arm-bounces@lists.xensource.com] On Behalf Of ROSSIER Daniel
Sent: vendredi, 22. mai 2009 11:01
To: xen-arm@lists.xensource.com
Subject: [XenARM] Strange behaviour...

Hello,

Just a question:
The following code is taken from domain_build.c in Samsung's port, in the build_pagetable() function:

...
for (count = 0; count < 4; count++) {
*(pde + count) = l2e_from_paddr((unsigned long)pte, __L2_PAGE_USER_TABLE);
pte += 256; /* coarse page table on ARM */
}
...

However, the l2e_from_paddr() begins with the following assertion: ASSERT((pa & ~(PADDR_MASK & PAGE_MASK)) == 0);

Which will fail since the pte address is incremented with 256 (*4), and is not 4 KB-page aligned.

Is the build_pagetable() function not used anymore?

Cheers
Daniel