From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: xen-devel@lists.xenproject.org, konrad@kernel.org
Cc: Wei Liu <wei.liu2@citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: [PATCH v1 11/12] tmem/xc_tmem_control: Rename 'arg1' to 'len' and 'arg2' to arg.
Date: Wed, 28 Sep 2016 05:42:25 -0400 [thread overview]
Message-ID: <1475055746-22401-12-git-send-email-konrad.wilk@oracle.com> (raw)
In-Reply-To: <1475055746-22401-1-git-send-email-konrad.wilk@oracle.com>
That is what they are used for. Lets make it more clear.
Of all the various sub-commands, the only one that needed
semantic change is XEN_SYSCTL_TMEM_OP_SAVE_BEGIN. That in the
past used 'arg1', and now we are moving it to use 'arg'.
Since that code is only used during migration which is tied
to the toolstack it is OK to change it.
While at it, also fix xc_tmem_control_oid to properly handle
the 'buf' and bounce it as appropiate.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
v1: First submission.
---
tools/libxc/include/xenctrl.h | 4 ++--
tools/libxc/xc_tmem.c | 37 ++++++++++++++++++-------------------
tools/libxl/libxl.c | 4 ++--
tools/python/xen/lowlevel/xc/xc.c | 16 ++++++++--------
xen/common/tmem.c | 16 ++++++++--------
xen/common/tmem_control.c | 8 ++++----
xen/include/public/sysctl.h | 4 ++--
7 files changed, 44 insertions(+), 45 deletions(-)
diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
index 5e685a6..da982a6 100644
--- a/tools/libxc/include/xenctrl.h
+++ b/tools/libxc/include/xenctrl.h
@@ -2061,11 +2061,11 @@ int xc_disable_turbo(xc_interface *xch, int cpuid);
*/
int xc_tmem_control_oid(xc_interface *xch, int32_t pool_id, uint32_t subop,
- uint32_t cli_id, uint32_t arg1, uint32_t arg2,
+ uint32_t cli_id, uint32_t len, uint32_t arg,
struct xen_tmem_oid oid, void *buf);
int xc_tmem_control(xc_interface *xch,
int32_t pool_id, uint32_t subop, uint32_t cli_id,
- uint32_t arg1, uint32_t arg2, void *buf);
+ uint32_t len, uint32_t arg, void *buf);
int xc_tmem_auth(xc_interface *xch, int cli_id, char *uuid_str, int arg1);
int xc_tmem_save(xc_interface *xch, int dom, int live, int fd, int field_marker);
int xc_tmem_save_extra(xc_interface *xch, int dom, int fd, int field_marker);
diff --git a/tools/libxc/xc_tmem.c b/tools/libxc/xc_tmem.c
index a843210..07fa101 100644
--- a/tools/libxc/xc_tmem.c
+++ b/tools/libxc/xc_tmem.c
@@ -49,20 +49,20 @@ int xc_tmem_control(xc_interface *xch,
int32_t pool_id,
uint32_t cmd,
uint32_t cli_id,
- uint32_t arg1,
- uint32_t arg2,
+ uint32_t len,
+ uint32_t arg,
void *buf)
{
DECLARE_SYSCTL;
- DECLARE_HYPERCALL_BOUNCE(buf, arg1, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
+ DECLARE_HYPERCALL_BOUNCE(buf, len, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
int rc;
sysctl.cmd = XEN_SYSCTL_tmem_op;
sysctl.u.tmem_op.pool_id = pool_id;
sysctl.u.tmem_op.cmd = cmd;
sysctl.u.tmem_op.cli_id = cli_id;
- sysctl.u.tmem_op.arg1 = arg1;
- sysctl.u.tmem_op.arg2 = arg2;
+ sysctl.u.tmem_op.len = len;
+ sysctl.u.tmem_op.arg = arg;
sysctl.u.tmem_op.pad = 0;
sysctl.u.tmem_op.oid.oid[0] = 0;
sysctl.u.tmem_op.oid.oid[1] = 0;
@@ -72,8 +72,7 @@ int xc_tmem_control(xc_interface *xch,
{
HYPERCALL_BOUNCE_SET_DIR(buf, XC_HYPERCALL_BUFFER_BOUNCE_IN);
}
-
- if ( arg1 )
+ if ( len )
{
if ( buf == NULL )
{
@@ -91,7 +90,7 @@ int xc_tmem_control(xc_interface *xch,
rc = do_sysctl(xch, &sysctl);
- if ( arg1 )
+ if ( len )
xc_hypercall_bounce_post(xch, buf);
return rc;
@@ -101,25 +100,25 @@ int xc_tmem_control_oid(xc_interface *xch,
int32_t pool_id,
uint32_t cmd,
uint32_t cli_id,
- uint32_t arg1,
- uint32_t arg2,
+ uint32_t len,
+ uint32_t arg,
struct xen_tmem_oid oid,
void *buf)
{
DECLARE_SYSCTL;
- DECLARE_HYPERCALL_BOUNCE(buf, arg1, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
+ DECLARE_HYPERCALL_BOUNCE(buf, len, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
int rc;
sysctl.cmd = XEN_SYSCTL_tmem_op;
sysctl.u.tmem_op.pool_id = pool_id;
sysctl.u.tmem_op.cmd = cmd;
sysctl.u.tmem_op.cli_id = cli_id;
- sysctl.u.tmem_op.arg1 = arg1;
- sysctl.u.tmem_op.arg2 = arg2;
+ sysctl.u.tmem_op.len = len;
+ sysctl.u.tmem_op.arg = arg;
sysctl.u.tmem_op.pad = 0;
sysctl.u.tmem_op.oid = oid;
- if ( cmd == XEN_SYSCTL_TMEM_OP_LIST && arg1 != 0 )
+ if ( len )
{
if ( buf == NULL )
{
@@ -137,8 +136,8 @@ int xc_tmem_control_oid(xc_interface *xch,
rc = do_sysctl(xch, &sysctl);
- if ( cmd == XEN_SYSCTL_TMEM_OP_LIST && arg1 != 0 )
- xc_hypercall_bounce_post(xch, buf);
+ if ( len )
+ xc_hypercall_bounce_post(xch, buf);
return rc;
}
@@ -224,7 +223,7 @@ int xc_tmem_save(xc_interface *xch,
xen_sysctl_tmem_client_t info;
rc = xc_tmem_control(xch, 0, XEN_SYSCTL_TMEM_OP_SAVE_BEGIN,
- dom, live, 0, NULL);
+ dom, 0 /* len*/ , live, NULL);
if ( rc )
{
/* Nothing to save - no tmem enabled. */
@@ -239,7 +238,7 @@ int xc_tmem_save(xc_interface *xch,
if ( xc_tmem_control(xch, 0 /* pool_id */,
XEN_SYSCTL_TMEM_OP_GET_CLIENT_INFO,
- dom /* cli_id */, sizeof(info) /* arg1 */, 0 /* arg2 */,
+ dom /* cli_id */, sizeof(info), 0 /* arg */,
&info) < 0 )
return -1;
@@ -396,7 +395,7 @@ int xc_tmem_restore(xc_interface *xch, int dom, int io_fd)
if ( xc_tmem_control(xch, 0 /* pool_id */,
XEN_SYSCTL_TMEM_OP_SET_CLIENT_INFO,
- dom /* cli_id */, sizeof(info) /* arg1 */, 0 /* arg2 */,
+ dom /* cli_id */, sizeof(info), 0 /* arg */,
&info) < 0 )
return -1;
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 2f50e61..25baca6 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -6082,7 +6082,7 @@ int libxl_tmem_set(libxl_ctx *ctx, uint32_t domid, char* name, uint32_t set)
r = xc_tmem_control(ctx->xch, -1 /* pool_id */,
XEN_SYSCTL_TMEM_OP_GET_CLIENT_INFO,
- domid, sizeof(info), 0 /* arg2 */, &info);
+ domid, sizeof(info), 0 /* arg */, &info);
if (r < 0) {
LOGE(ERROR, "Can not get tmem data!");
rc = ERROR_FAIL;
@@ -6096,7 +6096,7 @@ int libxl_tmem_set(libxl_ctx *ctx, uint32_t domid, char* name, uint32_t set)
}
r = xc_tmem_control(ctx->xch, -1 /* pool_id */,
XEN_SYSCTL_TMEM_OP_SET_CLIENT_INFO,
- domid, sizeof(info), 0 /* arg2 */, &info);
+ domid, sizeof(info), 0 /* arg */, &info);
if (r < 0) {
LOGE(ERROR, "Can not set tmem %s", name);
rc = ERROR_FAIL;
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index a117737..39be1d5 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -1612,8 +1612,8 @@ static PyObject *pyxc_tmem_control(XcObject *self,
int32_t pool_id;
uint32_t subop;
uint32_t cli_id;
- uint32_t arg1;
- uint32_t arg2;
+ uint32_t len;
+ uint32_t arg;
char *buf;
char _buffer[32768], *buffer = _buffer;
int rc;
@@ -1621,13 +1621,13 @@ static PyObject *pyxc_tmem_control(XcObject *self,
static char *kwd_list[] = { "pool_id", "subop", "cli_id", "arg1", "arg2", "buf", NULL };
if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiiis", kwd_list,
- &pool_id, &subop, &cli_id, &arg1, &arg2, &buf) )
+ &pool_id, &subop, &cli_id, &len, &arg, &buf) )
return NULL;
- if ( (subop == XEN_SYSCTL_TMEM_OP_LIST) && (arg1 > 32768) )
- arg1 = 32768;
+ if ( (subop == XEN_SYSCTL_TMEM_OP_LIST) && (len > 32768) )
+ len = 32768;
- if ( (rc = xc_tmem_control(self->xc_handle, pool_id, subop, cli_id, arg1, arg2, buffer)) < 0 )
+ if ( (rc = xc_tmem_control(self->xc_handle, pool_id, subop, cli_id, len, arg, buffer)) < 0 )
return Py_BuildValue("i", rc);
switch (subop) {
@@ -2506,8 +2506,8 @@ static PyMethodDef pyxc_methods[] = {
" pool_id [int]: Identifier of the tmem pool (-1 == all).\n"
" subop [int]: Supplementary Operation.\n"
" cli_id [int]: Client identifier (-1 == all).\n"
- " arg1 [int]: Argument.\n"
- " arg2 [int]: Argument.\n"
+ " len [int]: Length of 'buf'.\n"
+ " arg [int]: Argument.\n"
" buf [str]: Buffer.\n\n"
"Returns: [int] 0 or [str] tmem info on success; exception on error.\n" },
diff --git a/xen/common/tmem.c b/xen/common/tmem.c
index 997f2b0..294f0cd 100644
--- a/xen/common/tmem.c
+++ b/xen/common/tmem.c
@@ -1651,7 +1651,7 @@ static int tmemc_shared_pool_auth(domid_t cli_id, uint64_t uuid_lo,
}
static int tmemc_save_subop(int cli_id, uint32_t pool_id,
- uint32_t subop, tmem_cli_va_param_t buf, uint32_t arg1)
+ uint32_t subop, tmem_cli_va_param_t buf, uint32_t arg)
{
struct client *client = tmem_client_from_cli_id(cli_id);
uint32_t p;
@@ -1672,7 +1672,7 @@ static int tmemc_save_subop(int cli_id, uint32_t pool_id,
client->was_frozen = client->info.flags.u.frozen;
client->info.flags.u.frozen = 1;
- if ( arg1 != 0 )
+ if ( arg != 0 )
client->info.flags.u.migrating = 1;
rc = 0;
break;
@@ -1844,22 +1844,22 @@ int do_tmem_control(struct xen_sysctl_tmem_op *op)
case XEN_SYSCTL_TMEM_OP_RESTORE_BEGIN:
case XEN_SYSCTL_TMEM_OP_SAVE_END:
ret = tmemc_save_subop(op->cli_id, pool_id, cmd,
- guest_handle_cast(op->u.buf, char), op->arg1);
+ guest_handle_cast(op->u.buf, char), op->arg);
break;
case XEN_SYSCTL_TMEM_OP_SAVE_GET_NEXT_PAGE:
ret = tmemc_save_get_next_page(op->cli_id, pool_id,
- guest_handle_cast(op->u.buf, char), op->arg1);
+ guest_handle_cast(op->u.buf, char), op->len);
break;
case XEN_SYSCTL_TMEM_OP_SAVE_GET_NEXT_INV:
ret = tmemc_save_get_next_inv(op->cli_id,
- guest_handle_cast(op->u.buf, char), op->arg1);
+ guest_handle_cast(op->u.buf, char), op->len);
break;
case XEN_SYSCTL_TMEM_OP_RESTORE_PUT_PAGE:
- ret = tmemc_restore_put_page(op->cli_id, pool_id, oidp, op->arg2,
- guest_handle_cast(op->u.buf, char), op->arg1);
+ ret = tmemc_restore_put_page(op->cli_id, pool_id, oidp, op->arg,
+ guest_handle_cast(op->u.buf, char), op->len);
break;
case XEN_SYSCTL_TMEM_OP_RESTORE_FLUSH_PAGE:
- ret = tmemc_restore_flush_page(op->cli_id, pool_id, oidp, op->arg2);
+ ret = tmemc_restore_flush_page(op->cli_id, pool_id, oidp, op->arg);
break;
default:
ret = -1;
diff --git a/xen/common/tmem_control.c b/xen/common/tmem_control.c
index 6f1de9d..cfbc8b0 100644
--- a/xen/common/tmem_control.c
+++ b/xen/common/tmem_control.c
@@ -343,7 +343,7 @@ static int tmemc_get_client_info(int cli_id,
}
static int tmemc_save_subop(int cli_id, uint32_t pool_id, uint32_t subop,
- XEN_GUEST_HANDLE_PARAM(void) buf, uint32_t arg1)
+ XEN_GUEST_HANDLE_PARAM(void) buf, uint32_t arg)
{
struct client *client = tmem_client_from_cli_id(cli_id);
struct tmem_pool *pool = (client == NULL || pool_id >= MAX_POOLS_PER_DOMAIN)
@@ -397,11 +397,11 @@ int tmem_control(struct xen_sysctl_tmem_op *op)
ret = tmemc_freeze_pools(op->cli_id, cmd);
break;
case XEN_SYSCTL_TMEM_OP_FLUSH:
- ret = tmemc_flush_mem(op->cli_id,op->arg1);
+ ret = tmemc_flush_mem(op->cli_id, op->arg);
break;
case XEN_SYSCTL_TMEM_OP_LIST:
ret = tmemc_list(op->cli_id,
- guest_handle_cast(op->u.buf, char), op->arg1, op->arg2);
+ guest_handle_cast(op->u.buf, char), op->len, op->arg);
break;
case XEN_SYSCTL_TMEM_OP_SET_CLIENT_INFO:
ret = tmemc_set_client_info(op->cli_id,
@@ -418,7 +418,7 @@ int tmem_control(struct xen_sysctl_tmem_op *op)
case XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES:
case XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_UUID:
ret = tmemc_save_subop(op->cli_id, pool_id, cmd,
- guest_handle_cast(op->u.buf, void), op->arg1);
+ guest_handle_cast(op->u.buf, void), op->arg);
break;
default:
ret = do_tmem_control(op);
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 36e2fd8..a9f95f8 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -809,8 +809,8 @@ struct xen_sysctl_tmem_op {
uint32_t cli_id; /* IN: client id, 0 for XEN_SYSCTL_TMEM_QUERY_FREEABLE_MB
for all others can be the domain id or
XEN_SYSCTL_TMEM_OP_ALL_CLIENTS for all. */
- uint32_t arg1; /* IN: If not applicable to command use 0. */
- uint32_t arg2; /* IN: If not applicable to command use 0. */
+ uint32_t len; /* IN: length of 'buf'. If not applicable to use 0. */
+ uint32_t arg; /* IN: If not applicable to command use 0. */
uint32_t pad; /* Padding so structure is the same under 32 and 64. */
xen_tmem_oid_t oid; /* IN: If not applicable to command use 0s. */
union {
--
2.4.11
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-09-28 9:42 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-28 9:42 [PATCH v1] Tmem cleanups/improvements for v4.8 Konrad Rzeszutek Wilk
2016-09-28 9:42 ` [PATCH v1 01/12] libxc/tmem/restore: Remove call to XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION Konrad Rzeszutek Wilk
2016-09-28 11:00 ` Wei Liu
2016-09-28 9:42 ` [PATCH v1 02/12] tmem: Retire XEN_SYSCTL_TMEM_OP_[SET_CAP|SAVE_GET_CLIENT_CAP] Konrad Rzeszutek Wilk
2016-09-28 11:00 ` Wei Liu
2016-09-28 15:03 ` Konrad Rzeszutek Wilk
2016-09-28 12:10 ` Jan Beulich
2016-09-30 14:04 ` Konrad Rzeszutek Wilk
2016-09-28 9:42 ` [PATCH v1 03/12] tmem: Wrap tmem dedup code with CONFIG_TMEM_DEDUP Konrad Rzeszutek Wilk
2016-09-28 12:18 ` Jan Beulich
2016-09-28 9:42 ` [PATCH v1 04/12] tmem: Wrap tmem tze code with CONFIG_TMEM_TZE Konrad Rzeszutek Wilk
2016-09-28 12:19 ` Jan Beulich
2016-09-28 9:42 ` [PATCH v1 05/12] tmem: Delete deduplication (and tze) code Konrad Rzeszutek Wilk
2016-09-28 12:34 ` Jan Beulich
2016-09-28 15:05 ` Konrad Rzeszutek Wilk
2016-09-28 9:42 ` [PATCH v1 06/12] tmem: Move client weight, frozen, live_migrating, and compress Konrad Rzeszutek Wilk
2016-09-28 12:39 ` Jan Beulich
2016-09-28 9:42 ` [PATCH v1 07/12] tmem/libxc: Squash XEN_SYSCTL_TMEM_OP_[SET|SAVE] Konrad Rzeszutek Wilk
2016-09-28 11:06 ` Wei Liu
2016-09-28 12:50 ` Jan Beulich
2016-09-28 9:42 ` [PATCH v1 08/12] tmem: Handle 'struct tmem_info' as a seperate field in the Konrad Rzeszutek Wilk
2016-09-28 11:00 ` Wei Liu
2016-09-28 12:56 ` Jan Beulich
2016-09-30 14:36 ` Konrad Rzeszutek Wilk
2016-09-30 14:56 ` Jan Beulich
2016-09-30 16:51 ` Konrad Rzeszutek Wilk
2016-09-28 9:42 ` [PATCH v1 09/12] tmem: Check version and maxpools when XEN_SYSCTL_TMEM_SET_CLIENT_INFO Konrad Rzeszutek Wilk
2016-09-28 11:00 ` Wei Liu
2016-09-28 12:58 ` Jan Beulich
2016-09-28 9:42 ` [PATCH v1 10/12] tmem: Unify XEN_SYSCTL_TMEM_OP_[[SAVE_[BEGIN|END]|RESTORE_BEGIN] Konrad Rzeszutek Wilk
2016-09-28 11:06 ` Wei Liu
2016-09-28 13:00 ` Jan Beulich
2016-09-28 9:42 ` Konrad Rzeszutek Wilk [this message]
2016-09-28 11:07 ` [PATCH v1 11/12] tmem/xc_tmem_control: Rename 'arg1' to 'len' and 'arg2' to arg Wei Liu
2016-09-28 9:42 ` [PATCH v1 12/12] tmem: Batch and squash XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_[FLAGS, NPAGES, UUID] in one sub-call: XEN_SYSCTL_TMEM_OP_GET_POOLS Konrad Rzeszutek Wilk
2016-09-28 11:07 ` Wei Liu
2016-09-28 13:11 ` Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1475055746-22401-12-git-send-email-konrad.wilk@oracle.com \
--to=konrad.wilk@oracle.com \
--cc=ian.jackson@eu.citrix.com \
--cc=konrad@kernel.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).