From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752938AbbJBPTi (ORCPT ); Fri, 2 Oct 2015 11:19:38 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:24636 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752671AbbJBPTe (ORCPT ); Fri, 2 Oct 2015 11:19:34 -0400 Subject: Re: [PATCH v5 12/22] xen/balloon: Don't rely on the page granularity is the same for Xen and Linux To: Julien Grall , David Vrabel , xen-devel@lists.xenproject.org References: <1443609937-25278-1-git-send-email-julien.grall@citrix.com> <1443609937-25278-13-git-send-email-julien.grall@citrix.com> <560E9004.8030604@citrix.com> <560E9551.6020105@citrix.com> <560E9A19.2010301@citrix.com> Cc: Wei Liu , ian.campbell@citrix.com, Konrad Rzeszutek Wilk , stefano.stabellini@eu.citrix.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org From: Boris Ostrovsky Message-ID: <560EA062.5030700@oracle.com> Date: Fri, 2 Oct 2015 11:18:58 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <560E9A19.2010301@citrix.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: aserv0022.oracle.com [141.146.126.234] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/02/2015 10:52 AM, Julien Grall wrote: > On 02/10/15 15:31, Julien Grall wrote: >> Hi David, >> >> On 02/10/15 15:09, David Vrabel wrote: >>> On 30/09/15 11:45, Julien Grall wrote: >>>> For ARM64 guests, Linux is able to support either 64K or 4K page >>>> granularity. Although, the hypercall interface is always based on 4K >>>> page granularity. >>>> >>>> With 64K page granularity, a single page will be spread over multiple >>>> Xen frame. >>>> >>>> To avoid splitting the page into 4K frame, take advantage of the >>>> extent_order field to directly allocate/free chunk of the Linux page >>>> size. >>>> >>>> Note that PVMMU is only used for PV guest (which is x86) and the page >>>> granularity is always 4KB. Some BUILD_BUG_ON has been added to ensure >>>> that because the code has not been modified. >>> This causes a BUG() in x86 PV guests when decreasing the reservation. >>> >>> Xen says: >>> >>> (XEN) d0v2 Error pfn 0: rd=0 od=32753 caf=8000000000000001 >>> taf=7400000000000001 >>> (XEN) memory.c:250:d0v2 Bad page free for domain 0 >>> >>> And Linux BUGs with: >>> >>> [ 82.032654] kernel BUG at >>> /anfs/drall/scratch/davidvr/x86/linux/drivers/xen/balloon.c:540! >>> >>> Which is a non-zero return value from the decrease_reservation hypercall. >>> >>> The frame_list[] has been incorrectly populated. The below patch fixes >>> it for me. Please test as well. > FIY, I've just tested with the patch on ARM64 and I haven't see any issue. I had a quick one-off test and this fixes it on x86. I'll schedule it for the overnight run too. -boris > >> Sorry for the breakage, I think I haven't spot the bug on my board >> because most the PV drivers are allocating one balloon page at the time >> by default. >> >> This patch looks valid to me. i was resetting and incremented for each >> loop on an early version. Although I dropped it by mistake when I use a >> different way to decrease the reservation. > > >