xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC v2 0/4] Add mem_access support for PV domains
@ 2014-07-08  2:50 Aravindh Puthiyaparambil
  2014-07-08  2:50 ` [PATCH RFC v2 1/4] x86/mm: Shadow and p2m changes for PV mem_access Aravindh Puthiyaparambil
                   ` (4 more replies)
  0 siblings, 5 replies; 85+ messages in thread
From: Aravindh Puthiyaparambil @ 2014-07-08  2:50 UTC (permalink / raw)
  To: xen-devel
  Cc: Keir Fraser, Ian Campbell, Stefano Stabellini, Tim Deegan,
	Ian Jackson, Jan Beulich

This patch series adds mem_access support for PV domains. To do this the PV
domain domain has to be run with shadow paging. A p2m implementation for
mem_access has been added to track the access permissions. Since special ring
pages are not created for PV domains, this is done as part of enabling
mem_access.This page is freed when mem_access is disabled or when the domain
is destroyed.

When mem_access is enabled for a PV domain, shadow paging is turned on and all
the shadows are dropped. In the resulting pagefaults, the entries are created
with the default access permissions. On future pagefaults, if there is a violation,
a mem_event is sent to the mem_access listener who will then resolve it.

The access permissions for individual pages are stored in the shadow_flags field
in the page_info structure. To get the access permissions for individual pages,
this field is referenced. To set the access permission of individual pages, the new
permission is set in the shadow_flags and the shadow for the gmfn is dropped. On the
resulting fault, the new PTE entry will be created with the new permission. A
new API has been added to set the default access permissions for PV domains.

Patches are based on top of commit f9cff088.

Signed-off-by: Aravindh Puthiyaparambil <aravindp@cisco.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Keir Fraser <keir@xen.org>
Cc: Tim Deegan <tim@xen.org>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

  x86/mm: Shadow and p2m changes for PV mem_access
  x86/mem_access: mem_access and mem_event changes to support PV domains
  tools/libxc: Add APIs for PV mem_access
  tool/xen-access: Add support for PV domains

 tools/libxc/xc_mem_access.c          |  42 ++++++
 tools/libxc/xc_mem_event.c           |  23 +++-
 tools/libxc/xc_private.h             |   9 ++
 tools/libxc/xenctrl.h                |  28 +++-
 tools/tests/xen-access/xen-access.c  | 104 +++++++++------
 xen/arch/x86/domain.c                |  12 ++
 xen/arch/x86/mm/Makefile             |   2 +-
 xen/arch/x86/mm/mem_access.c         | 244 ++++++++++++++++++++++++++++++++++-
 xen/arch/x86/mm/mem_event.c          |  62 +++++++--
 xen/arch/x86/mm/p2m-ma.c             | 148 +++++++++++++++++++++
 xen/arch/x86/mm/p2m.c                |  52 +++++---
 xen/arch/x86/mm/paging.c             |   7 +
 xen/arch/x86/mm/shadow/common.c      |  75 ++++++++++-
 xen/arch/x86/mm/shadow/multi.c       | 101 ++++++++++++++-
 xen/arch/x86/mm/shadow/private.h     |   7 +
 xen/arch/x86/srat.c                  |   1 +
 xen/arch/x86/usercopy.c              |  12 ++
 xen/common/page_alloc.c              |   3 +
 xen/drivers/video/vesa.c             |   1 +
 xen/include/asm-x86/domain.h         |   9 ++
 xen/include/asm-x86/mem_access.h     |   3 +
 xen/include/asm-x86/mm.h             |   1 -
 xen/include/asm-x86/p2m.h            |  17 +++
 xen/include/asm-x86/paging.h         |   1 +
 xen/include/asm-x86/shadow.h         |  15 +++
 xen/include/asm-x86/x86_64/uaccess.h |   7 +
 xen/include/public/memory.h          |   3 +
 27 files changed, 899 insertions(+), 90 deletions(-)
 create mode 100644 xen/arch/x86/mm/p2m-ma.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 85+ messages in thread

end of thread, other threads:[~2014-09-12 18:01 UTC | newest]

Thread overview: 85+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-08  2:50 [PATCH RFC v2 0/4] Add mem_access support for PV domains Aravindh Puthiyaparambil
2014-07-08  2:50 ` [PATCH RFC v2 1/4] x86/mm: Shadow and p2m changes for PV mem_access Aravindh Puthiyaparambil
2014-07-24 14:29   ` Jan Beulich
2014-07-24 23:34     ` Aravindh Puthiyaparambil (aravindp)
2014-07-25  7:19       ` Jan Beulich
2014-07-25 21:39         ` Aravindh Puthiyaparambil (aravindp)
2014-07-28  6:49           ` Jan Beulich
2014-07-28 21:14             ` Aravindh Puthiyaparambil (aravindp)
2014-07-30  4:05             ` Aravindh Puthiyaparambil (aravindp)
2014-07-30  7:11               ` Jan Beulich
2014-07-30 18:35                 ` Aravindh Puthiyaparambil (aravindp)
2014-08-01  6:39                   ` Jan Beulich
2014-08-01 18:08                     ` Aravindh Puthiyaparambil (aravindp)
2014-08-04  7:03                       ` Jan Beulich
2014-08-05  0:14                         ` Aravindh Puthiyaparambil (aravindp)
2014-08-05  6:33                           ` Jan Beulich
2014-08-13 22:14                             ` Aravindh Puthiyaparambil (aravindp)
2014-08-22  2:29                             ` Aravindh Puthiyaparambil (aravindp)
2014-08-22  9:34                               ` Andrew Cooper
2014-08-22 10:02                                 ` Jan Beulich
2014-08-22 10:14                                   ` Andrew Cooper
2014-08-22 18:28                                 ` Aravindh Puthiyaparambil (aravindp)
2014-08-22 18:52                                   ` Andrew Cooper
2014-08-25 12:45                                 ` Gianluca Guida
2014-08-25 13:01                                   ` Jan Beulich
2014-08-25 13:02                                   ` Andrew Cooper
2014-08-25 13:59                                     ` Gianluca Guida
2014-08-22 15:33                               ` Jan Beulich
2014-08-22 19:07                                 ` Aravindh Puthiyaparambil (aravindp)
2014-08-22 19:24                                   ` Andrew Cooper
2014-08-22 19:48                                     ` Aravindh Puthiyaparambil (aravindp)
2014-08-22 20:02                                       ` Andrew Cooper
2014-08-22 20:13                                         ` Aravindh Puthiyaparambil (aravindp)
2014-08-25  7:34                                           ` Jan Beulich
2014-08-25  7:33                                         ` Jan Beulich
2014-08-25 12:49                                           ` Andrew Cooper
2014-08-25 13:09                                             ` Jan Beulich
2014-08-25 16:56                                               ` Aravindh Puthiyaparambil (aravindp)
2014-08-26  7:08                                                 ` Jan Beulich
2014-08-26 22:27                                                   ` Aravindh Puthiyaparambil (aravindp)
2014-08-26 23:30                                                     ` Andrew Cooper
2014-08-28  9:34                                                       ` Tim Deegan
2014-08-28 18:33                                                         ` Aravindh Puthiyaparambil (aravindp)
2014-08-27  6:33                                                     ` Jan Beulich
2014-08-27  7:49                                                       ` Tim Deegan
2014-08-27 17:29                                                       ` Aravindh Puthiyaparambil (aravindp)
2014-08-25 17:44                                               ` Andrew Cooper
2014-08-26  7:12                                                 ` Jan Beulich
2014-08-25  7:29                                       ` Jan Beulich
2014-08-25 16:40                                         ` Aravindh Puthiyaparambil (aravindp)
2014-08-28  9:14           ` Tim Deegan
2014-08-28 18:31             ` Aravindh Puthiyaparambil (aravindp)
2014-08-28 19:00               ` Tim Deegan
2014-08-28 19:23                 ` Aravindh Puthiyaparambil (aravindp)
2014-08-28 20:37                   ` Tim Deegan
2014-08-28 21:35                     ` Aravindh Puthiyaparambil (aravindp)
2014-08-28 22:20                     ` Aravindh Puthiyaparambil (aravindp)
2014-08-29  9:52                       ` Tim Deegan
2014-08-29 17:52                         ` Aravindh Puthiyaparambil (aravindp)
2014-08-29 19:03                         ` Aravindh Puthiyaparambil (aravindp)
2014-09-01 10:38                           ` Jan Beulich
2014-09-02 21:57                             ` Aravindh Puthiyaparambil (aravindp)
2014-09-03  8:31                               ` Jan Beulich
2014-09-03 18:50                                 ` Aravindh Puthiyaparambil (aravindp)
2014-09-04  6:39                                   ` Jan Beulich
2014-09-04 18:24                                     ` Aravindh Puthiyaparambil (aravindp)
2014-09-05  8:11                                       ` Jan Beulich
2014-09-05 22:49                                         ` Aravindh Puthiyaparambil (aravindp)
     [not found]                                   ` <20140904083906.GA86555@deinos.phlegethon.org>
     [not found]                                     ` <540849430200007800030C47@mail.emea.novell.com>
2014-09-11 19:40                                       ` Aravindh Puthiyaparambil (aravindp)
2014-09-12  7:21                                         ` Jan Beulich
2014-09-12 18:01                                           ` Aravindh Puthiyaparambil (aravindp)
2014-08-28  9:09       ` Tim Deegan
2014-08-28 18:23         ` Aravindh Puthiyaparambil (aravindp)
2014-07-08  2:50 ` [PATCH RFC v2 2/4] x86/mem_access: mem_access and mem_event changes to support PV domains Aravindh Puthiyaparambil
2014-07-24 14:38   ` Jan Beulich
2014-07-24 23:52     ` Aravindh Puthiyaparambil (aravindp)
2014-07-25  7:23       ` Jan Beulich
2014-07-25 21:47         ` Aravindh Puthiyaparambil (aravindp)
2014-07-28  6:56           ` Jan Beulich
2014-07-28 21:16             ` Aravindh Puthiyaparambil (aravindp)
2014-07-08  2:50 ` [PATCH RFC v2 3/4] tools/libxc: Add APIs for PV mem_access Aravindh Puthiyaparambil
2014-07-08  2:50 ` [PATCH RFC v2 4/4] tool/xen-access: Add support for PV domains Aravindh Puthiyaparambil
2014-07-08 16:27 ` [PATCH RFC v2 0/4] Add mem_access " Konrad Rzeszutek Wilk
2014-07-08 17:57   ` Aravindh Puthiyaparambil (aravindp)
2014-07-09  0:31   ` Aravindh Puthiyaparambil (aravindp)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).