[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 1/8] tmem: Don't crash/hang/leak hypervisor when using shared pools within an guest.



On Thu, Aug 27, 2015 at 07:01:56AM -0400, Konrad Rzeszutek Wilk wrote:
[...]
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> ---
>  xen/common/tmem.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/tmem.c b/xen/common/tmem.c
> index f2dc26e..572944e 100644
> --- a/xen/common/tmem.c
> +++ b/xen/common/tmem.c
> @@ -1037,6 +1037,9 @@ static int shared_pool_join(struct tmem_pool *pool, 
> struct client *new_client)
>          tmem_client_info("adding new %s %d to shared pool owned by %s %d\n",
>                      tmem_client_str, new_client->cli_id, tmem_client_str,
>                      pool->client->cli_id);
> +    else if (pool->shared_count)

Coding style.

> +        tmem_client_info("inter-guest sharing of shared pool %s by client 
> %d\n",
> +                         tmem_client_str, pool->client->cli_id);
>      ++pool->shared_count;
>      return 0;
>  }
> @@ -1056,7 +1059,10 @@ static void shared_pool_reassign(struct tmem_pool 
> *pool)
>      }
>      old_client->pools[pool->pool_id] = NULL;
>      sl = list_entry(pool->share_list.next, struct share_list, share_list);
> -    ASSERT(sl->client != old_client);
> +    /*
> +     * The sl->client can be old_client if there are multiple shared pools
> +     * within an guest.
> +     */
>      pool->client = new_client = sl->client;
>      for (poolid = 0; poolid < MAX_POOLS_PER_DOMAIN; poolid++)
>          if (new_client->pools[poolid] == pool)
> @@ -1982,6 +1988,8 @@ static int do_tmem_new_pool(domid_t this_cli_id,
>          {
>              INIT_LIST_HEAD(&pool->share_list);
>              pool->shared_count = 0;
> +            if (shared_pool_join(pool, client))

Coding style.

> +                goto fail;
>              global_shared_pools[first_unused_s_poolid] = pool;
>          }
>      }
> -- 
> 2.1.0

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.