From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Magenheimer Subject: [PATCH] xl tmem-freeable Date: Fri, 16 Jul 2010 11:21:51 -0700 (PDT) Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="__1279304525016124635abhmt014" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Campbell , Stefano Stabellini Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --__1279304525016124635abhmt014 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable (Finally getting my feet wet in xl-land!) Implement "xl tmem-freeable" to match "xm tmem-freeable". (Please apply to 4.0-testing also if possible.) Signed-off-by: Dan Magenheimer diff -r d867eb643fe4 tools/libxl/libxl.c --- a/tools/libxl/libxl.c=09Tue Jul 13 18:17:28 2010 +0100 +++ b/tools/libxl/libxl.c=09Fri Jul 16 12:13:46 2010 -0600 @@ -3181,3 +3181,17 @@ return rc; } =20 +int libxl_tmem_freeable(struct libxl_ctx *ctx) +{ + int rc; + + rc =3D xc_tmem_control(ctx->xch, -1, TMEMC_QUERY_FREEABLE_MB, -1, 0, 0= , 0, 0); + if (rc < 0) { + XL_LOG_ERRNOVAL(ctx, XL_LOG_ERROR, rc, + "Can not get tmem freeable memory"); + return -1; + } + + return rc; +} + diff -r d867eb643fe4 tools/libxl/libxl.h --- a/tools/libxl/libxl.h=09Tue Jul 13 18:17:28 2010 +0100 +++ b/tools/libxl/libxl.h=09Fri Jul 16 12:13:46 2010 -0600 @@ -556,6 +556,7 @@ uint32_t set); int libxl_tmem_shared_auth(struct libxl_ctx *ctx, uint32_t domid, char* uu= id, int auth); +int libxl_tmem_freeable(struct libxl_ctx *ctx); =20 typedef struct { char *backend; diff -r d867eb643fe4 tools/libxl/xl.h --- a/tools/libxl/xl.h=09Tue Jul 13 18:17:28 2010 +0100 +++ b/tools/libxl/xl.h=09Fri Jul 16 12:13:46 2010 -0600 @@ -72,6 +72,7 @@ int main_tmem_thaw(int argc, char **argv); int main_tmem_set(int argc, char **argv); int main_tmem_shared_auth(int argc, char **argv); +int main_tmem_freeable(int argc, char **argv); int main_network2attach(int argc, char **argv); int main_network2list(int argc, char **argv); int main_network2detach(int argc, char **argv); diff -r d867eb643fe4 tools/libxl/xl_cmdimpl.c --- a/tools/libxl/xl_cmdimpl.c=09Tue Jul 13 18:17:28 2010 +0100 +++ b/tools/libxl/xl_cmdimpl.c=09Fri Jul 16 12:13:46 2010 -0600 @@ -4537,3 +4537,26 @@ exit(0); } =20 +int main_tmem_freeable(int argc, char **argv) +{ + int opt; + int mb; + + while ((opt =3D getopt(argc, argv, "h")) !=3D -1) { + switch (opt) { + case 'h': + help("tmem-freeable"); + exit(0); + default: + fprintf(stderr, "option `%c' not supported.\n", opt); + break; + } + } + + mb =3D libxl_tmem_freeable(&ctx); + if (mb =3D=3D -1) + exit(-1); + + printf("%d\n", mb); + exit(0); +} diff -r d867eb643fe4 tools/libxl/xl_cmdtable.c --- a/tools/libxl/xl_cmdtable.c=09Tue Jul 13 18:17:28 2010 +0100 +++ b/tools/libxl/xl_cmdtable.c=09Fri Jul 16 12:13:46 2010 -0600 @@ -295,6 +295,11 @@ " (abcdef01-2345-6789-1234-567890abc= def)\n" " -A AUTH 0=3Dauth,1=3Ddeauth", }, + { "tmem-freeable", + &main_tmem_freeable, + "Get information about how much freeable memory (MB) is in-use by tm= em", + "", + }, { "network2-attach", &main_network2attach, "Create a new version 2 virtual network device", --__1279304525016124635abhmt014 Content-Type: application/octet-stream; name="xl_tmem_freeable.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="xl_tmem_freeable.patch" ZGlmZiAtciBkODY3ZWI2NDNmZTQgdG9vbHMvbGlieGwvbGlieGwuYwotLS0gYS90b29scy9saWJ4 bC9saWJ4bC5jCVR1ZSBKdWwgMTMgMTg6MTc6MjggMjAxMCArMDEwMAorKysgYi90b29scy9saWJ4 bC9saWJ4bC5jCUZyaSBKdWwgMTYgMTI6MTM6NDYgMjAxMCAtMDYwMApAQCAtMzE4MSwzICszMTgx LDE3IEBACiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgbGlieGxfdG1lbV9mcmVlYWJsZShzdHJ1 Y3QgbGlieGxfY3R4ICpjdHgpCit7CisgICAgaW50IHJjOworCisgICAgcmMgPSB4Y190bWVtX2Nv bnRyb2woY3R4LT54Y2gsIC0xLCBUTUVNQ19RVUVSWV9GUkVFQUJMRV9NQiwgLTEsIDAsIDAsIDAs IDApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgWExfTE9HX0VSUk5PVkFMKGN0eCwgWExf TE9HX0VSUk9SLCByYywKKyAgICAgICAgICAgICJDYW4gbm90IGdldCB0bWVtIGZyZWVhYmxlIG1l bW9yeSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQor CmRpZmYgLXIgZDg2N2ViNjQzZmU0IHRvb2xzL2xpYnhsL2xpYnhsLmgKLS0tIGEvdG9vbHMvbGli eGwvbGlieGwuaAlUdWUgSnVsIDEzIDE4OjE3OjI4IDIwMTAgKzAxMDAKKysrIGIvdG9vbHMvbGli eGwvbGlieGwuaAlGcmkgSnVsIDE2IDEyOjEzOjQ2IDIwMTAgLTA2MDAKQEAgLTU1Niw2ICs1NTYs NyBAQAogICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNldCk7CiBpbnQgbGlieGxfdG1lbV9z aGFyZWRfYXV0aChzdHJ1Y3QgbGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBjaGFyKiB1 dWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGF1dGgpOworaW50IGxpYnhsX3Rt ZW1fZnJlZWFibGUoc3RydWN0IGxpYnhsX2N0eCAqY3R4KTsKIAogdHlwZWRlZiBzdHJ1Y3Qgewog ICAgIGNoYXIgKmJhY2tlbmQ7CmRpZmYgLXIgZDg2N2ViNjQzZmU0IHRvb2xzL2xpYnhsL3hsLmgK LS0tIGEvdG9vbHMvbGlieGwveGwuaAlUdWUgSnVsIDEzIDE4OjE3OjI4IDIwMTAgKzAxMDAKKysr IGIvdG9vbHMvbGlieGwveGwuaAlGcmkgSnVsIDE2IDEyOjEzOjQ2IDIwMTAgLTA2MDAKQEAgLTcy LDYgKzcyLDcgQEAKIGludCBtYWluX3RtZW1fdGhhdyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwog aW50IG1haW5fdG1lbV9zZXQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKIGludCBtYWluX3RtZW1f c2hhcmVkX2F1dGgoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKK2ludCBtYWluX3RtZW1fZnJlZWFi bGUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKIGludCBtYWluX25ldHdvcmsyYXR0YWNoKGludCBh cmdjLCBjaGFyICoqYXJndik7CiBpbnQgbWFpbl9uZXR3b3JrMmxpc3QoaW50IGFyZ2MsIGNoYXIg Kiphcmd2KTsKIGludCBtYWluX25ldHdvcmsyZGV0YWNoKGludCBhcmdjLCBjaGFyICoqYXJndik7 CmRpZmYgLXIgZDg2N2ViNjQzZmU0IHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwotLS0gYS90b29s cy9saWJ4bC94bF9jbWRpbXBsLmMJVHVlIEp1bCAxMyAxODoxNzoyOCAyMDEwICswMTAwCisrKyBi L3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwlGcmkgSnVsIDE2IDEyOjEzOjQ2IDIwMTAgLTA2MDAK QEAgLTQ1MzcsMyArNDUzNywyNiBAQAogICAgIGV4aXQoMCk7CiB9CiAKK2ludCBtYWluX3RtZW1f ZnJlZWFibGUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIGludCBvcHQ7CisgICAgaW50 IG1iOworCisgICAgd2hpbGUgKChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgImgiKSkgIT0gLTEp IHsKKyAgICAgICAgc3dpdGNoIChvcHQpIHsKKyAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAg ICBoZWxwKCJ0bWVtLWZyZWVhYmxlIik7CisgICAgICAgICAgICBleGl0KDApOworICAgICAgICBk ZWZhdWx0OgorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJvcHRpb24gYCVjJyBub3Qgc3Vw cG9ydGVkLlxuIiwgb3B0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor CisgICAgbWIgPSBsaWJ4bF90bWVtX2ZyZWVhYmxlKCZjdHgpOworICAgIGlmIChtYiA9PSAtMSkK KyAgICAgICAgZXhpdCgtMSk7CisKKyAgICBwcmludGYoIiVkXG4iLCBtYik7CisgICAgZXhpdCgw KTsKK30KZGlmZiAtciBkODY3ZWI2NDNmZTQgdG9vbHMvbGlieGwveGxfY21kdGFibGUuYwotLS0g YS90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jCVR1ZSBKdWwgMTMgMTg6MTc6MjggMjAxMCArMDEw MAorKysgYi90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jCUZyaSBKdWwgMTYgMTI6MTM6NDYgMjAx MCAtMDYwMApAQCAtMjk1LDYgKzI5NSwxMSBAQAogICAgICAgIiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChhYmNkZWYwMS0yMzQ1LTY3ODktMTIzNC01Njc4OTBhYmNkZWYpXG4iCiAg ICAgICAiICAtQSBBVVRIICAgICAgICAgICAgICAgICAgICAgICAgMD1hdXRoLDE9ZGVhdXRoIiwK ICAgICB9LAorICAgIHsgInRtZW0tZnJlZWFibGUiLAorICAgICAgJm1haW5fdG1lbV9mcmVlYWJs ZSwKKyAgICAgICJHZXQgaW5mb3JtYXRpb24gYWJvdXQgaG93IG11Y2ggZnJlZWFibGUgbWVtb3J5 IChNQikgaXMgaW4tdXNlIGJ5IHRtZW0iLAorICAgICAgIiIsCisgICAgfSwKICAgICB7ICJuZXR3 b3JrMi1hdHRhY2giLAogICAgICAgJm1haW5fbmV0d29yazJhdHRhY2gsCiAgICAgICAiQ3JlYXRl IGEgbmV3IHZlcnNpb24gMiB2aXJ0dWFsIG5ldHdvcmsgZGV2aWNlIiwK --__1279304525016124635abhmt014 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --__1279304525016124635abhmt014--