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

Re: [PATCH] xen/arm: p2m: Populate pages for GICv2 mapping in arch_domain_create()




On 10/14/22 13:04, Julien Grall wrote:
Hi Xenia,

On 14/10/2022 10:46, Xenia Ragiadakou wrote:

On 10/13/22 15:39, Julien Grall wrote:
Hi,

On 13/10/2022 13:29, Henry Wang wrote:
-----Original Message-----
From: Jan Beulich <jbeulich@xxxxxxxx>
Assuming you have 4 (N) page table levels, isn't it 7 (1 + 2 * (N - 1))?
Or is the root table not taken from the p2m pool?

Correct, on arm the root is not taken from the pool.

Isn't that a (perhaps just minor) mistake?

Not really, in the code review phase, the question of whether we include
the root in the p2m pool was discussed and the conclusion at that time
was not including this page for now, as this is supposed to require a lot
of extra work/refactor. Probably there will be a series from my side to
add the root to the pool, but at least not now.

The root page tables can be one of multiple concatenated pages (up to 8 pages). The P2M pool is allocating page by page and therefore wouldn't allow us to allocate contiguous pages.

Sorry that I 'm asking this so late (I was just going through the thread) but why 8?
Rather than providing an extra level of page-tables, the architecture allows you to provide multiple pages at the root level.

The number of concatenated pages depend on the maximum physical address and the start level. You can look at the table in setup_virt_paging() for more details.

I think you are referring to this:
[6] = { 52,      12/*12*/,  3,          3 },
Still I cannot understand why the maximum number of concatenated level 0 translation tables for t0sz 12 and 4KB granule is 8 and not 16?


Cheers,


--
Xenia



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.