From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: Re: Need help with fixing the Xen waitqueue feature Date: Wed, 23 Nov 2011 23:30:49 +0100 Message-ID: <20111123223049.GA14423@aepfle.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline 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: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Wed, Nov 23, Keir Fraser wrote: > Attached three patches for you to try. They apply in sequence. > 00: A fixed version of "domain_crash on stack overflow" > 01: Reorders prepare_to_wait so that the vcpu will always be on the > waitqueue on exit (even if it has just been woken). > 02: Ensures the vcpu wakes up on the same cpu that it slept on. > > We need all of these. Just need testing to make sure they aren't horribly > broken. You should be able to test multi-processor host again with these. Thanks Keir. In a first test they work ok with multi-processor. I get vcpu hangs when I balloon up and down with mem-set. Thats most likely caused by uneven vcpu_pause/unpause calls in my changes which use wait queue in mem_event handling and ept_get_entry. I will debug that further. After the vcpu hung I killed the guest and tried to start a new one. Oddly enough I wasnt able to fully kill the guest, it remained in --p--d state. Most vcpus were in paused state before that. In another attempt I was able to run firefox in a guest. But after trying to open all "latest headlines" in tabs the guest crashed. qemu-dm log had alot of this (but nothing in xen dmesg): track_dirty_vram(f0000000, 12c) failed (-1, 3) xl vcpu-list shows (null) 1 0 - --p 47.3 any cpu (null) 1 1 12 --- 13.4 any cpu (null) 1 2 - --p 4.3 any cpu (null) 1 3 - --p 7.8 any cpu (null) 1 4 - --p 3.5 any cpu (null) 1 5 - --p 1.9 any cpu (null) 1 6 - --p 1.6 any cpu (null) 1 7 - --p 1.4 any cpu Hmm, qemu-dm doesnt get killed in all cases, killing it destroys the guest.. I have seen that before already. I will provide more test results tomorrow. Olaf