From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: current not very current (vs curr_vcpu) Date: Thu, 18 Feb 2010 20:21:58 -0800 Message-ID: <20100218202158.6e3aeda1@mantra.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Hi, This on xen 4.0. I noticed while debugging something that current is not pointing to the current vcpu upon serial interrupt. The regs->SP clearly shows 64bit dom0 stack, guest_mode(regs) returns 1, but current is pointing to idle vcpu. I'm not able to figure how this is possible. I can come up with scenario where dom0.vcpu yields cpu to idle vcpu in which case curr_vcpu will point to dom0.vcpu and current to idle vcpu. But in that case guest_mode(regs) will be false, and regs.SP will show hyp stack. Correct? Am I correct that if guest_mode() then current should always point to guest vcpu? If yes, then I will debug this further. Here's what I see in ns16550_interrupt: regs.SP: ffffffff8041bf50 (my 64bit dom0 stack) regs.IP: ffffffff800053aa (dom0 return from hypercall) regs: ffff82c48030ff28 (hyp cpu 0 stack) SP in ns16550_interrupt(): ffff82c48030fd50 (hyp stack again) guest_mode == 1 current == idle domain ?????? thanks in advance, Mukesh