diff mbox

[v1,02/12] tmem: Retire XEN_SYSCTL_TMEM_OP_[SET_CAP|SAVE_GET_CLIENT_CAP]

Message ID 1475055746-22401-3-git-send-email-konrad.wilk@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Konrad Rzeszutek Wilk Sept. 28, 2016, 9:42 a.m. UTC
It is not used by anything.

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
---
 docs/man/xl.pod.1.in              |  4 ----
 tools/libxc/xc_tmem.c             | 13 +++----------
 tools/libxl/libxl.c               |  4 +---
 tools/libxl/xl_cmdtable.c         |  1 -
 tools/python/xen/lowlevel/xc/xc.c |  1 -
 xen/common/tmem_control.c         | 16 ++--------------
 xen/include/public/sysctl.h       |  2 --
 7 files changed, 6 insertions(+), 35 deletions(-)

Comments

Wei Liu Sept. 28, 2016, 11 a.m. UTC | #1
On Wed, Sep 28, 2016 at 05:42:16AM -0400, Konrad Rzeszutek Wilk wrote:
> It is not used by anything.
> 
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>

> diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
> index 8197c14..847ec35 100644
> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -757,14 +757,12 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_psr_cat_op_t);
>  #define XEN_SYSCTL_TMEM_OP_DESTROY                3
>  #define XEN_SYSCTL_TMEM_OP_LIST                   4
>  #define XEN_SYSCTL_TMEM_OP_SET_WEIGHT             5
> -#define XEN_SYSCTL_TMEM_OP_SET_CAP                6

I somehow have the impression that we should add a comment here saying
that this number is now reserved -- but the reality disagrees with me.
:-)

>  #define XEN_SYSCTL_TMEM_OP_SET_COMPRESS           7
>  #define XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB      8
>  #define XEN_SYSCTL_TMEM_OP_SAVE_BEGIN             10
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION       11
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_MAXPOOLS      12
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT 13
> -#define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP    14
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS  15
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_FLAGS    16
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES   17
> -- 
> 2.4.11
>
Jan Beulich Sept. 28, 2016, 12:10 p.m. UTC | #2
>>> On 28.09.16 at 11:42, <konrad.wilk@oracle.com> wrote:
> It is not used by anything.

But that shouldn't be the only aspect. Are they also not useful for
anything?

> --- a/xen/common/tmem_control.c
> +++ b/xen/common/tmem_control.c
> @@ -103,9 +103,9 @@ static int tmemc_list_client(struct client *c, tmem_cli_va_param_t buf,
>      struct tmem_pool *p;
>      bool_t s;
>  
> -    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,ca:%d,co:%d,fr:%d,"
> +    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,co:%d,fr:%d,"
>          "Tc:%"PRIu64",Ge:%ld,Pp:%ld,Gp:%ld%c",
> -        c->cli_id, c->weight, c->cap, c->compress, c->frozen,
> +        c->cli_id, c->weight, c->compress, c->frozen,
>          c->total_cycles, c->succ_eph_gets, c->succ_pers_puts, c->succ_pers_gets,
>          use_long ? ',' : '\n');
>      if (use_long)
> @@ -273,11 +273,6 @@ static int __tmemc_set_var(struct client *client, uint32_t subop, uint32_t arg1)
>          atomic_sub(old_weight,&tmem_global.client_weight_total);
>          atomic_add(client->weight,&tmem_global.client_weight_total);
>          break;
> -    case XEN_SYSCTL_TMEM_OP_SET_CAP:
> -        client->cap = arg1;
> -        tmem_client_info("tmem: cap set to %d for %s=%d\n",
> -                        arg1, tmem_cli_id_str, cli_id);
> -        break;
>      case XEN_SYSCTL_TMEM_OP_SET_COMPRESS:
>          if ( tmem_dedup_enabled() )
>          {
> @@ -341,11 +336,6 @@ static int tmemc_save_subop(int cli_id, uint32_t pool_id,
>              break;
>          rc = client->weight == -1 ? -2 : client->weight;
>          break;
> -    case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP:
> -        if ( client == NULL )
> -            break;
> -        rc = client->cap == -1 ? -2 : client->cap;
> -        break;
>      case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS:
>          if ( client == NULL )
>              break;

It looks like you're removing all accesses to the cap field. That would
suggest that you now want to also remove the field itself.

> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -757,14 +757,12 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_psr_cat_op_t);
>  #define XEN_SYSCTL_TMEM_OP_DESTROY                3
>  #define XEN_SYSCTL_TMEM_OP_LIST                   4
>  #define XEN_SYSCTL_TMEM_OP_SET_WEIGHT             5
> -#define XEN_SYSCTL_TMEM_OP_SET_CAP                6
>  #define XEN_SYSCTL_TMEM_OP_SET_COMPRESS           7
>  #define XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB      8
>  #define XEN_SYSCTL_TMEM_OP_SAVE_BEGIN             10
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION       11
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_MAXPOOLS      12
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT 13
> -#define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP    14
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS  15
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_FLAGS    16
>  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES   17

I think such removals should be accompanied by bumping
XEN_SYSCTL_INTERFACE_VERSION, albeit it's obviously not as
relevant as it would be when changing some structure's layout.

Jan
Konrad Rzeszutek Wilk Sept. 28, 2016, 3:03 p.m. UTC | #3
On Wed, Sep 28, 2016 at 12:00:14PM +0100, Wei Liu wrote:
> On Wed, Sep 28, 2016 at 05:42:16AM -0400, Konrad Rzeszutek Wilk wrote:
> > It is not used by anything.
> > 
> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> 
> Acked-by: Wei Liu <wei.liu2@citrix.com>
> 
> > diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
> > index 8197c14..847ec35 100644
> > --- a/xen/include/public/sysctl.h
> > +++ b/xen/include/public/sysctl.h
> > @@ -757,14 +757,12 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_psr_cat_op_t);
> >  #define XEN_SYSCTL_TMEM_OP_DESTROY                3
> >  #define XEN_SYSCTL_TMEM_OP_LIST                   4
> >  #define XEN_SYSCTL_TMEM_OP_SET_WEIGHT             5
> > -#define XEN_SYSCTL_TMEM_OP_SET_CAP                6
> 
> I somehow have the impression that we should add a comment here saying
> that this number is now reserved -- but the reality disagrees with me.
> :-)

I was thinking that initially too, but then these subcommands are in
domctl and they are not in the tmem public API so we are free to muck
around.

So I figured I would reuse them as well and such.
> 
> >  #define XEN_SYSCTL_TMEM_OP_SET_COMPRESS           7
> >  #define XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB      8
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_BEGIN             10
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION       11
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_MAXPOOLS      12
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT 13
> > -#define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP    14
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS  15
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_FLAGS    16
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES   17
> > -- 
> > 2.4.11
> >
Konrad Rzeszutek Wilk Sept. 30, 2016, 2:04 p.m. UTC | #4
On Wed, Sep 28, 2016 at 06:10:58AM -0600, Jan Beulich wrote:
> >>> On 28.09.16 at 11:42, <konrad.wilk@oracle.com> wrote:
> > It is not used by anything.
> 
> But that shouldn't be the only aspect. Are they also not useful for
> anything?

As far as I can see it was meant to complement the 'weight'. But the
code just hangs around. I can re-introduce it if there is a need for it
and make it visible via the  XEN_SYSCTL_TMEM_SET_CLIENT_INFO (introduced
in patch #7).

> 
> > --- a/xen/common/tmem_control.c
> > +++ b/xen/common/tmem_control.c
> > @@ -103,9 +103,9 @@ static int tmemc_list_client(struct client *c, tmem_cli_va_param_t buf,
> >      struct tmem_pool *p;
> >      bool_t s;
> >  
> > -    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,ca:%d,co:%d,fr:%d,"
> > +    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,co:%d,fr:%d,"
> >          "Tc:%"PRIu64",Ge:%ld,Pp:%ld,Gp:%ld%c",
> > -        c->cli_id, c->weight, c->cap, c->compress, c->frozen,
> > +        c->cli_id, c->weight, c->compress, c->frozen,
> >          c->total_cycles, c->succ_eph_gets, c->succ_pers_puts, c->succ_pers_gets,
> >          use_long ? ',' : '\n');
> >      if (use_long)
> > @@ -273,11 +273,6 @@ static int __tmemc_set_var(struct client *client, uint32_t subop, uint32_t arg1)
> >          atomic_sub(old_weight,&tmem_global.client_weight_total);
> >          atomic_add(client->weight,&tmem_global.client_weight_total);
> >          break;
> > -    case XEN_SYSCTL_TMEM_OP_SET_CAP:
> > -        client->cap = arg1;
> > -        tmem_client_info("tmem: cap set to %d for %s=%d\n",
> > -                        arg1, tmem_cli_id_str, cli_id);
> > -        break;
> >      case XEN_SYSCTL_TMEM_OP_SET_COMPRESS:
> >          if ( tmem_dedup_enabled() )
> >          {
> > @@ -341,11 +336,6 @@ static int tmemc_save_subop(int cli_id, uint32_t pool_id,
> >              break;
> >          rc = client->weight == -1 ? -2 : client->weight;
> >          break;
> > -    case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP:
> > -        if ( client == NULL )
> > -            break;
> > -        rc = client->cap == -1 ? -2 : client->cap;
> > -        break;
> >      case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS:
> >          if ( client == NULL )
> >              break;
> 
> It looks like you're removing all accesses to the cap field. That would
> suggest that you now want to also remove the field itself.

Yes! The patch titled "06/12] tmem: Move client
weight,frozen,live_migrating, and compress" did it, but it should have
been done here. Thanks!
> 
> > --- a/xen/include/public/sysctl.h
> > +++ b/xen/include/public/sysctl.h
> > @@ -757,14 +757,12 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_psr_cat_op_t);
> >  #define XEN_SYSCTL_TMEM_OP_DESTROY                3
> >  #define XEN_SYSCTL_TMEM_OP_LIST                   4
> >  #define XEN_SYSCTL_TMEM_OP_SET_WEIGHT             5
> > -#define XEN_SYSCTL_TMEM_OP_SET_CAP                6
> >  #define XEN_SYSCTL_TMEM_OP_SET_COMPRESS           7
> >  #define XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB      8
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_BEGIN             10
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION       11
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_MAXPOOLS      12
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT 13
> > -#define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP    14
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS  15
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_FLAGS    16
> >  #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES   17
> 
> I think such removals should be accompanied by bumping
> XEN_SYSCTL_INTERFACE_VERSION, albeit it's obviously not as
> relevant as it would be when changing some structure's layout.

The patch series actually does not alter the layout per say. I think
it would be most justified in "11/12] tmem/xc_tmem_control: Rename
'arg1' to 'len' and 'arg2' to arg." as that:

"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'."
diff mbox

Patch

diff --git a/docs/man/xl.pod.1.in b/docs/man/xl.pod.1.in
index a2be541..9b44f25 100644
--- a/docs/man/xl.pod.1.in
+++ b/docs/man/xl.pod.1.in
@@ -1580,10 +1580,6 @@  B<OPTIONS>
 
 Weight (int)
 
-=item B<-c> I<CAP>
-
-Cap (int)
-
 =item B<-p> I<COMPRESS>
 
 Compress (int)
diff --git a/tools/libxc/xc_tmem.c b/tools/libxc/xc_tmem.c
index 31ae3f5..24c8b43 100644
--- a/tools/libxc/xc_tmem.c
+++ b/tools/libxc/xc_tmem.c
@@ -212,7 +212,7 @@  int xc_tmem_save(xc_interface *xch,
     int marker = field_marker;
     int i, j;
     uint32_t max_pools, version;
-    uint32_t weight, cap, flags;
+    uint32_t weight, flags;
     uint32_t pool_id;
     uint32_t minusone = -1;
     struct tmem_handle *h;
@@ -238,10 +238,7 @@  int xc_tmem_save(xc_interface *xch,
     weight = xc_tmem_control(xch,0,XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT,dom,0,0,NULL);
     if ( write_exact(io_fd, &weight, sizeof(weight)) )
         return -1;
-    cap = xc_tmem_control(xch,0,XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP,dom,0,0,NULL);
-    if ( write_exact(io_fd, &cap, sizeof(cap)) )
-        return -1;
-    if ( flags == -1 || weight == -1 || cap == -1 )
+    if ( flags == -1 || weight == -1 )
         return -1;
     if ( write_exact(io_fd, &minusone, sizeof(minusone)) )
         return -1;
@@ -384,7 +381,7 @@  int xc_tmem_restore(xc_interface *xch, int dom, int io_fd)
     uint32_t this_max_pools, this_version;
     uint32_t pool_id;
     uint32_t minusone;
-    uint32_t weight, cap, flags;
+    uint32_t weight, flags;
     int checksum = 0;
 
     if ( read_exact(io_fd, &this_version, sizeof(this_version)) )
@@ -410,10 +407,6 @@  int xc_tmem_restore(xc_interface *xch, int dom, int io_fd)
         return -1;
     if ( xc_tmem_control(xch,0,XEN_SYSCTL_TMEM_OP_SET_WEIGHT,dom,0,0,NULL) < 0 )
         return -1;
-    if ( read_exact(io_fd, &cap, sizeof(cap)) )
-        return -1;
-    if ( xc_tmem_control(xch,0,XEN_SYSCTL_TMEM_OP_SET_CAP,dom,0,0,NULL) < 0 )
-        return -1;
     if ( read_exact(io_fd, &minusone, sizeof(minusone)) )
         return -1;
     while ( read_exact(io_fd, &pool_id, sizeof(pool_id)) == 0 && pool_id != -1 )
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 997d94c..e3ee49c 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -6065,8 +6065,6 @@  static int32_t tmem_setop_from_string(char *set_name)
 {
     if (!strcmp(set_name, "weight"))
         return XEN_SYSCTL_TMEM_OP_SET_WEIGHT;
-    else if (!strcmp(set_name, "cap"))
-        return XEN_SYSCTL_TMEM_OP_SET_CAP;
     else if (!strcmp(set_name, "compress"))
         return XEN_SYSCTL_TMEM_OP_SET_COMPRESS;
     else
@@ -6080,7 +6078,7 @@  int libxl_tmem_set(libxl_ctx *ctx, uint32_t domid, char* name, uint32_t set)
     GC_INIT(ctx);
 
     if (subop == -1) {
-        LOGEV(ERROR, -1, "Invalid set, valid sets are <weight|cap|compress>");
+        LOGEV(ERROR, -1, "Invalid set, valid sets are <weight|compress>");
         rc = ERROR_INVAL;
         goto out;
     }
diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c
index 78786fe..368bfeb 100644
--- a/tools/libxl/xl_cmdtable.c
+++ b/tools/libxl/xl_cmdtable.c
@@ -405,7 +405,6 @@  struct cmd_spec cmd_table[] = {
       "[<Domain>|-a] [-w[=WEIGHT]|-c[=CAP]|-p[=COMPRESS]]",
       "  -a                             Operate on all tmem\n"
       "  -w WEIGHT                      Weight (int)\n"
-      "  -c CAP                         Cap (int)\n"
       "  -p COMPRESS                    Compress (int)",
     },
     { "tmem-shared-auth",
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index 8411789..287f590 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -1641,7 +1641,6 @@  static PyObject *pyxc_tmem_control(XcObject *self,
         case XEN_SYSCTL_TMEM_OP_FREEZE:
         case XEN_SYSCTL_TMEM_OP_DESTROY:
         case XEN_SYSCTL_TMEM_OP_SET_WEIGHT:
-        case XEN_SYSCTL_TMEM_OP_SET_CAP:
         case XEN_SYSCTL_TMEM_OP_SET_COMPRESS:
         default:
             break;
diff --git a/xen/common/tmem_control.c b/xen/common/tmem_control.c
index 81a2414..ca34852 100644
--- a/xen/common/tmem_control.c
+++ b/xen/common/tmem_control.c
@@ -103,9 +103,9 @@  static int tmemc_list_client(struct client *c, tmem_cli_va_param_t buf,
     struct tmem_pool *p;
     bool_t s;
 
-    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,ca:%d,co:%d,fr:%d,"
+    n = scnprintf(info,BSIZE,"C=CI:%d,ww:%d,co:%d,fr:%d,"
         "Tc:%"PRIu64",Ge:%ld,Pp:%ld,Gp:%ld%c",
-        c->cli_id, c->weight, c->cap, c->compress, c->frozen,
+        c->cli_id, c->weight, c->compress, c->frozen,
         c->total_cycles, c->succ_eph_gets, c->succ_pers_puts, c->succ_pers_gets,
         use_long ? ',' : '\n');
     if (use_long)
@@ -273,11 +273,6 @@  static int __tmemc_set_var(struct client *client, uint32_t subop, uint32_t arg1)
         atomic_sub(old_weight,&tmem_global.client_weight_total);
         atomic_add(client->weight,&tmem_global.client_weight_total);
         break;
-    case XEN_SYSCTL_TMEM_OP_SET_CAP:
-        client->cap = arg1;
-        tmem_client_info("tmem: cap set to %d for %s=%d\n",
-                        arg1, tmem_cli_id_str, cli_id);
-        break;
     case XEN_SYSCTL_TMEM_OP_SET_COMPRESS:
         if ( tmem_dedup_enabled() )
         {
@@ -341,11 +336,6 @@  static int tmemc_save_subop(int cli_id, uint32_t pool_id,
             break;
         rc = client->weight == -1 ? -2 : client->weight;
         break;
-    case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP:
-        if ( client == NULL )
-            break;
-        rc = client->cap == -1 ? -2 : client->cap;
-        break;
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS:
         if ( client == NULL )
             break;
@@ -404,7 +394,6 @@  int tmem_control(struct xen_sysctl_tmem_op *op)
                          guest_handle_cast(op->buf, char), op->arg1, op->arg2);
         break;
     case XEN_SYSCTL_TMEM_OP_SET_WEIGHT:
-    case XEN_SYSCTL_TMEM_OP_SET_CAP:
     case XEN_SYSCTL_TMEM_OP_SET_COMPRESS:
         ret = tmemc_set_var(op->cli_id, cmd, op->arg1);
         break;
@@ -414,7 +403,6 @@  int tmem_control(struct xen_sysctl_tmem_op *op)
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION:
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_MAXPOOLS:
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT:
-    case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP:
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS:
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_FLAGS:
     case XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES:
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 8197c14..847ec35 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -757,14 +757,12 @@  DEFINE_XEN_GUEST_HANDLE(xen_sysctl_psr_cat_op_t);
 #define XEN_SYSCTL_TMEM_OP_DESTROY                3
 #define XEN_SYSCTL_TMEM_OP_LIST                   4
 #define XEN_SYSCTL_TMEM_OP_SET_WEIGHT             5
-#define XEN_SYSCTL_TMEM_OP_SET_CAP                6
 #define XEN_SYSCTL_TMEM_OP_SET_COMPRESS           7
 #define XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB      8
 #define XEN_SYSCTL_TMEM_OP_SAVE_BEGIN             10
 #define XEN_SYSCTL_TMEM_OP_SAVE_GET_VERSION       11
 #define XEN_SYSCTL_TMEM_OP_SAVE_GET_MAXPOOLS      12
 #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_WEIGHT 13
-#define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_CAP    14
 #define XEN_SYSCTL_TMEM_OP_SAVE_GET_CLIENT_FLAGS  15
 #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_FLAGS    16
 #define XEN_SYSCTL_TMEM_OP_SAVE_GET_POOL_NPAGES   17