[Xen-devel,RFC,00/16] xen/arm: Implement Set/Way operations

Message ID 20181008183352.16291-1-julien.grall@arm.com
Headers show
Series
  • xen/arm: Implement Set/Way operations
Related show

Message

Julien Grall Oct. 8, 2018, 6:33 p.m.
Hi all,

As discussed during Linaro Connect with Stefano, I am sending an early version
of the Set/Way implementation to gather feedback on the approach. For more
details on the issue, see the commit message of patch #15.

A branch with the code is available can be clone from:

https://xenbits.xen.org/git-http/people/julieng/xen-unstable.git
branch dev-cacheflush

Cheers,

Julien Grall (16):
  xen/arm: Introduce helpers to clear/flags flags in HCR_EL2
  xen/arm: Introduce helpers to get/set an MFN from/to an LPAE entry
  xen/arm: Allow lpae_is_{table, mapping} helpers to work on invalid
    entry
  xen/arm: guest_walk_tables: Switch the return to bool
  xen/arm: traps: Move the implementation of GUEST_BUG_ON in traps.h
  xen/arm: p2m: Introduce a helper to generate P2M table entry from a
    page
  xen/arm: p2m: Introduce p2m_is_valid and use it
  xen/arm: p2m: Handle translation fault in get_page_from_gva
  xen/arm: p2m: Introduce a function to resolve translation fault
  xen/arm: vcpreg: Add wrappers to handle co-proc access trapped by
    HCR_EL2.TVM
  xen/arm: vsysreg: Add wrapper to handle sysreg access trapped by
    HCR_EL2.TVM
  xen/arm: Rework p2m_cache_flush to take a range [begin, end)
  xen/arm: p2m: Allow to flush cache on any RAM region
  xen/arm: p2m: Extend p2m_get_entry to return the value of bit[0]
    (valid bit)
  xen/arm: Implement Set/Way operations
  xen/arm: Track page accessed between batch of Set/Way operations

 xen/arch/arm/arm64/vsysreg.c     |  82 ++++++++
 xen/arch/arm/domain.c            |  14 ++
 xen/arch/arm/domain_build.c      |   7 +
 xen/arch/arm/domctl.c            |   2 +-
 xen/arch/arm/guest_walk.c        |  52 ++---
 xen/arch/arm/mem_access.c        |   8 +-
 xen/arch/arm/mm.c                |  12 +-
 xen/arch/arm/p2m.c               | 405 ++++++++++++++++++++++++++++++++++-----
 xen/arch/arm/traps.c             |  36 +---
 xen/arch/arm/vcpreg.c            | 167 ++++++++++++++++
 xen/arch/x86/domain.c            |   4 +
 xen/common/domain.c              |   5 +-
 xen/include/asm-arm/cpregs.h     |   1 +
 xen/include/asm-arm/guest_walk.h |   8 +-
 xen/include/asm-arm/lpae.h       |  14 +-
 xen/include/asm-arm/p2m.h        |  28 ++-
 xen/include/asm-arm/processor.h  |  18 ++
 xen/include/asm-arm/traps.h      |  24 +++
 xen/include/xen/domain.h         |   2 +
 19 files changed, 764 insertions(+), 125 deletions(-)

Comments

Julien Grall Nov. 22, 2018, 2:21 p.m. | #1
Hi,

On 10/8/18 7:33 PM, Julien Grall wrote:
> Julien Grall (16):
>    xen/arm: Introduce helpers to get/set an MFN from/to an LPAE entry
>    xen/arm: Allow lpae_is_{table, mapping} helpers to work on invalid
>      entry
>    xen/arm: guest_walk_tables: Switch the return to bool
>    xen/arm: p2m: Introduce a helper to generate P2M table entry from a
>      page

I have merged the 4 patches above.

Cheers,