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

[Xen-devel] [PATCH] cpupools: retry cpupool-destroy if domain in cpupool is dying


  • To: xen-devel@xxxxxxxxxxxxx
  • From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
  • Date: Wed, 7 May 2014 09:52:29 +0200
  • Cc: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
  • Delivery-date: Wed, 07 May 2014 07:52:52 +0000
  • Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:From:To:Cc:Subject:Date:Message-Id:X-Mailer; b=AW0Vq83dmiJ65zR1VDiV6S4M+g+a1786i7ZqbqJ372d3KS1P1l5r7Ofl cf+d+4qhHrNjkfArCBgDR2rYAiyi6Vtc/ZlEyP5eyeSxRSfpbw8EE4cUA ZTXhU+FfBGQK5gW4gmIS9cQuwb4D7hmSQvhKw4tNOqpNiF1P5Tu8lbp5B EP+7qFgczlEzU8ZoyHwLScuwqOhLHRxUVvvtAj5GDfOBGqLRoGNmShh22 Eokk77asO9dlZKQMdhi4YGSrnfNF7;
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

When a cpupool is destroyed just after the last domain has been stopped the
domain might already be removed from the cpupool without having decremented
the domain count of the cpupool. This will result in rejection of the
cpupool-destroy operation.
It is easy to detect this situation and to return EAGAIN in this case which
is already handled in libxc by doing a retry.

Signed-off-by: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
---
 xen/common/cpupool.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/cpupool.c b/xen/common/cpupool.c
index 4a0e569..ac833f0 100644
--- a/xen/common/cpupool.c
+++ b/xen/common/cpupool.c
@@ -348,6 +348,8 @@ static int cpupool_unassign_cpu(struct cpupool *c, unsigned 
int cpu)
             cpupool0->n_dom++;
         }
         rcu_read_unlock(&domlist_read_lock);
+        if ( (c->n_dom > 0) && !ret )
+            ret = -EAGAIN;
         if ( ret )
             goto out;
     }
-- 
1.7.10.4


_______________________________________________
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®.