xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] Tmem bug-fixes and cleanups.
@ 2015-08-28 18:53 Konrad Rzeszutek Wilk
  2015-08-28 18:53 ` [PATCH v3 01/11] tmem: Don't crash/hang/leak hypervisor when using shared pools within an guest Konrad Rzeszutek Wilk
                   ` (10 more replies)
  0 siblings, 11 replies; 31+ messages in thread
From: Konrad Rzeszutek Wilk @ 2015-08-28 18:53 UTC (permalink / raw)
  To: xen-devel, jbeulich, andrew.cooper3, wei.liu2

>From Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> # This line is ignored.
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: [PATCH v3] Tmem bug-fixes and cleanups. 
In-Reply-To: 

Hey!

Since v2 [http://lists.xen.org/archives/html/xen-devel/2015-08/msg02134.html]:
 - Addressed all (I hope?) comments.
 - Added 'tmem_oid' structure and made it work with compat layer.
 - Went wild with peppering full stops.
v1:
 - Internal review.

----------------------------------------------------------------------
NEW PATCHES in this series:

 tmem: Spelling and full stop surgery.
 tmem: Use 'struct tmem_oid' in tmem_handle and move it to sysctl header.
 tmem/sysctl: Use 'struct tmem_oid' for every user.
 tmem: Make the uint64_t oid[3] a proper structure: tmem_oid

The rest are the same except where I modified when requested.
----------------------------------------------------------------------

At the Xenhackathon we spoke that the tmem code needs a bit of cleanups
and simplification. One of the things that Andrew mentioned was that the
TMEM_CONTROL should really be part of the sysctl hypercall. As I ventured
this path I realized there were some other issues that need to be taken
care of (like shared pools blowing up).

This patchset has been tested with 32/64 guests, with a 64 hypervisor
and 32 bit toolstack (and also with 64bit toolstack) with success.

For fun I've also created an Linux module:
http://xenbits.xen.org/gitweb/?p=xentesttools/bootstrap.git;a=blob;f=root_image/drivers/tmem_test/tmem_test.c
that I will expand to cover in the future more interesting hypercall
uses.

Going forward the next step will be to:
 - move the 'tmem_control' function to its own file to simplify the code.
 - remove some of the unsafe type uses of the tmem control commands.
 - make migration work.
 
The patches are also in my git tree:

git://xenbits.xen.org/people/konradwilk/xen.git for-4.6/tmem.cleanups.v3

NOTE that I've also cross built it under ARM without any issues.

 tools/libxc/include/xenctrl.h          |   6 +-
 tools/libxc/xc_tmem.c                  | 117 ++++----
 tools/libxl/libxl.c                    |  22 +-
 tools/python/xen/lowlevel/xc/xc.c      |  27 +-
 tools/xenstat/libxenstat/src/xenstat.c |   6 +-
 xen/common/compat/tmem_xen.c           |   6 +-
 xen/common/sysctl.c                    |   7 +-
 xen/common/tmem.c                      | 477 +++++++++++++++++----------------
 xen/include/public/sysctl.h            |  56 ++++
 xen/include/public/tmem.h              |  58 ++--
 xen/include/xen/tmem.h                 |   3 +
 xen/include/xen/tmem_xen.h             |   4 -
 xen/include/xlat.lst                   |   1 +
 xen/include/xsm/dummy.h                |   6 -
 xen/include/xsm/xsm.h                  |   6 -
 xen/xsm/dummy.c                        |   1 -
 xen/xsm/flask/hooks.c                  |   9 +-
 xen/xsm/flask/policy/access_vectors    |   2 +-
 18 files changed, 423 insertions(+), 391 deletions(-)

Konrad Rzeszutek Wilk (11):
      tmem: Don't crash/hang/leak hypervisor when using shared pools within an guest.
      tmem: Add ASSERT in obj_rb_insert for pool->rwlock lock.
      tmem: Remove in xc_tmem_control_oid duplicate set_xen_guest_handle call
      tmem: Remove xc_tmem_control mystical arg3
      tmem: Move TMEM_CONTROL subop of tmem hypercall to sysctl.
      tmem: Remove the old tmem control XSM checks as it is part of sysctl hypercall.
      tmem: Make the uint64_t oid[3] a proper structure: tmem_oid
      tmem/sysctl: Use 'struct tmem_oid' for every user.
      tmem: Use 'struct tmem_oid' in tmem_handle and move it to sysctl header.
      tmem: Remove extra spaces at end and some hard tabbing.
      tmem: Spelling and full stop surgery.

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

end of thread, other threads:[~2015-09-02  6:46 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-28 18:53 [PATCH v3] Tmem bug-fixes and cleanups Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 01/11] tmem: Don't crash/hang/leak hypervisor when using shared pools within an guest Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 02/11] tmem: Add ASSERT in obj_rb_insert for pool->rwlock lock Konrad Rzeszutek Wilk
2015-08-31 11:24   ` Jan Beulich
2015-08-28 18:53 ` [PATCH v3 03/11] tmem: Remove in xc_tmem_control_oid duplicate set_xen_guest_handle call Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 04/11] tmem: Remove xc_tmem_control mystical arg3 Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 05/11] tmem: Move TMEM_CONTROL subop of tmem hypercall to sysctl Konrad Rzeszutek Wilk
2015-08-31 11:32   ` Jan Beulich
2015-08-28 18:53 ` [PATCH v3 06/11] tmem: Remove the old tmem control XSM checks as it is part of sysctl hypercall Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 07/11] tmem: Make the uint64_t oid[3] a proper structure: tmem_oid Konrad Rzeszutek Wilk
2015-08-31 11:38   ` Jan Beulich
2015-08-31 15:37     ` Konrad Rzeszutek Wilk
2015-08-31 15:56       ` Jan Beulich
2015-08-31 16:14         ` Konrad Rzeszutek Wilk
2015-09-01  7:04           ` Jan Beulich
2015-09-01 15:23             ` Konrad Rzeszutek Wilk
2015-09-01 15:54               ` Jan Beulich
2015-09-01 16:55                 ` Konrad Rzeszutek Wilk
2015-09-01 20:11                 ` Konrad Rzeszutek Wilk
2015-09-02  6:43                   ` Jan Beulich
2015-09-01 15:18           ` Konrad Rzeszutek Wilk
2015-09-01 15:37             ` Jan Beulich
2015-09-01 15:53               ` Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 08/11] tmem/sysctl: Use 'struct tmem_oid' for every user Konrad Rzeszutek Wilk
2015-08-31 11:42   ` Jan Beulich
2015-08-28 18:53 ` [PATCH v3 09/11] tmem: Use 'struct tmem_oid' in tmem_handle and move it to sysctl header Konrad Rzeszutek Wilk
2015-08-31 11:44   ` Jan Beulich
2015-09-01 20:12   ` Konrad Rzeszutek Wilk
2015-09-02  6:46     ` Jan Beulich
2015-08-28 18:53 ` [PATCH v3 10/11] tmem: Remove extra spaces at end and some hard tabbing Konrad Rzeszutek Wilk
2015-08-28 18:53 ` [PATCH v3 11/11] tmem: Spelling and full stop surgery Konrad Rzeszutek Wilk

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).