From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: do_iret bug in xen Date: Tue, 27 Nov 2007 23:17:16 +0000 Message-ID: <1196205436.29110.26.camel@localhost.localdomain> References: <474C912B.2040401@cs.toronto.edu> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ashish Bijlani Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Tue, 2007-11-27 at 17:41 -0500, Ashish Bijlani wrote: > "cpumask_raise_softirq(mask, SCHEDULE_SOFTIRQ)" sends an IPI to the > target processor, this can cause current to change. No it can't. The IPI causes smp_event_check_interrupt() to be called which just ACKs the IPI and returns via ret_from_intr (in entry.S). It is only if a guest was interrupted that we go down the test_all_events path which processes softirqs. If it was Xen which was interrupted then we go to restore_all_xen which just returns to Xen. In this case Xen will eventually return to the guest and take the test_all_events path and process the softirq. Ian.