From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: use tasklet to handle init/sipi? Date: Mon, 25 Mar 2013 08:05:11 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Zhang, Yang Z" , "xen-devel@lists.xen.org" Cc: "Zhang, Xiantao" , Jan Beulich List-Id: xen-devel@lists.xenproject.org On 25/03/2013 06:55, "Zhang, Yang Z" wrote: > Keir Fraser wrote on 2013-03-25: >> There are deadlock issues around directly locking and resetting a remote >> vcpu (e.g., buggy/malicious guest vcpu A sends INIT to vcpu B, and B does >> same to A). > > Can you elaborate it? Does the lock impact hypervisor or just guest? INIT-handling path takes the domain lock. If two vcpus in same guest try to INIT each other, one will take the lock and then try to vcpu_pause() the other. But this will spin forever while that other vcpu itself waits to take the domain_lock. This seemed to me a fairly fundamental problem of vcpus directly resetting each other. Hence the deferral to tasklet context. -- Keir >> -- Keir >> On 25/03/2013 05:31, "Zhang, Yang Z" wrote: >> >>> Hi, Keir, >>> >>> I am looking into a issue and found cs:17457 changes to use tasklet to >>> handle >>> init and sipi. And the comments only said "clean up". I wonder is there any >>> special reason to use tasklet to handle it? If no, I will send a patch to >>> call >>> handler directly instead via tasklet. >>> The background is that with APICv, it assume all apic write is succeed and >>> don't care the return value of vlapic_reg_write(). But the above logic need >>> the caller to check return value. This obviously will break APICv. >>> >>> # HG changeset patch >>> # User Keir Fraser >>> # Date 1208270873 -3600 >>> # Node ID e15be54059e4bde8f5916269dedff5fc3812686a >>> # Parent 6691ae150d104127c097fd9f3a6acccc5ce43c52 >>> x86, hvm: Clean up handling of APIC INIT and SIPI messages. >>> Signed-off-by: Keir Fraser >>> >>> best regards >>> yang >>> >> > > > Best regards, > Yang >