[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [XEN RFC PATCH 05/40] xen/arm: Fix lowmem_bitsize when arch_get_dma_bitsize return 0


  • To: Julien Grall <julien@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "sstabellini@xxxxxxxxxx" <sstabellini@xxxxxxxxxx>, "jbeulich@xxxxxxxx" <jbeulich@xxxxxxxx>
  • From: Wei Chen <Wei.Chen@xxxxxxx>
  • Date: Fri, 20 Aug 2021 02:05:59 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kqvv9mYwVRX86wxil2CdVbXYFbhpnNUpFZvMwRQ/ReE=; b=V1O0QDKKj4WcjNSnQtimvBuwFzJX+lolCE/QgP2nMlYL/VPbHR3jC+WFDnHjY1eouZ6qOVD6lCfym6SU2WIecY4US8wgMxIO/mXeM3sRr/c8HEhJBhyrehoBMrQESBTgifvMKFSv90pltp3NZ8U/4phZ7gra6T00oZCSkUV30xi4eKsvn+QxUY4nQ4bhTNm9ay1tzr/1+M+rlhe4K9/JxIrae71ab2zI+kXS93dmskBVUyQhhxhruWwSMVbG63PJNL8y3Q4YofRscK2T37a3NT0yB2OrZVemn7175xuvmIGVyoFkzSvJlWQCJMDtdJU/NmJiUEOyQEjkbc4NbZdG1w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n72BQbG9XzA9bgpGS3+JV20+ND303DSP/sN8IXq3hQOtliGNOvjWs9Win72QRZ5armq97lvjPUr4u2SScIQedqngiDEuiBb6DGB9fMPCplpaiiKERMQUIR3gDvS+l53JLWjTcm+ZZnLeJEheQeX9mnPFmaMtuJ7WwzZ30rKrwlgi8KL8C30RwWJ9/Cnj+2b23AGeyewdFN0dVZ4s70jJsMqagjMJoUdU8BDY20s8TBHxlJ3IskeS8v3yXs2QULYAc/ASSCveXb+IRgK1h3b/9nQBXjJ6Wqxnp+P8fc/1vxIl8qFeg1eXq4beD9IdPl7xSb/8b9ffMHGm+dTwfm9rLQ==
  • Authentication-results-original: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=arm.com;
  • Cc: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Delivery-date: Fri, 20 Aug 2021 02:06:17 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHXjpsg83Zycdnz1UG/A4jl+o2Uqat63/yAgADSY6A=
  • Thread-topic: [XEN RFC PATCH 05/40] xen/arm: Fix lowmem_bitsize when arch_get_dma_bitsize return 0

Hi Julien,

> -----Original Message-----
> From: Julien Grall <julien@xxxxxxx>
> Sent: 2021年8月19日 21:32
> To: Wei Chen <Wei.Chen@xxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx;
> sstabellini@xxxxxxxxxx; jbeulich@xxxxxxxx
> Cc: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
> Subject: Re: [XEN RFC PATCH 05/40] xen/arm: Fix lowmem_bitsize when
> arch_get_dma_bitsize return 0
> 
> Hi,
> 
> I guess this patch may be dropped after my comment on patch #4. I will
> comment just on the process.
> 

Ok

> On 11/08/2021 11:23, Wei Chen wrote:
> > From: Hongda Deng <Hongda.Deng@xxxxxxx>
> >
> > In previous patch, we make arch_get_dma_bitsize return 0 when
> > dma_bitsize and platform->dma_bitsize are not set. But this
> > will affect lowmem_bitsize in allocate_memory_11 for domain0.
> > Because this function depends lowmem_bitsize to allocate memory
> > below 4GB.
> >
> > In current code, when arch_get_dma_bitsize return 0, lowmem_bitsize
> > will be set to 0. In this case, we will get "No bank has been
> > allocated below 0-bit." message while allocating domain0 memory.
> > And the lowmem will be set to false.
> >
> > This behavior is inconsistent with what allocate_memory_11 done
> > before, and doesn't meet this functions requirements. So we
> > check arch_get_dma_bitsize's return value before set lowmem_bitsize.
> > Avoid setting lowmem_bitsize to 0 by mistake.
> 
> In general, we want to avoid breaking bisection within a series. This
> means that this patch should be before patch #4.
> 
> >
> > Signed-off-by: Wei Chen <wei.chen@xxxxxxx>
> > Signed-off-by: Hongda Deng <Hongda.Deng@xxxxxxx>
> > ---
> >   xen/arch/arm/domain_build.c | 11 ++++++++++-
> >   1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 6c86d52781..cf341f349f 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -265,9 +265,18 @@ static void __init allocate_memory_11(struct domain
> *d,
> >       int i;
> >
> >       bool lowmem = true;
> > -    unsigned int lowmem_bitsize = min(32U, arch_get_dma_bitsize());
> > +    unsigned int lowmem_bitsize = arch_get_dma_bitsize();
> >       unsigned int bits;
> >
> > +    /*
> > +       When dma_bitsize and platform->dma_bitsize are not set,
> > +       arch_get_dma_bitsize will return 0. That means this system
> > +       doesn't need to reserve memory for DMA. But in order to
> > +       meet above requirements, we still need to try to allocate
> > +       memory below 4GB for Dom0.
> > +    */
> 
> The coding style for comments is:
> 
> /*
>   * A
>   * B
>   */
> 

I will fix it.

> > +    lowmem_bitsize = lowmem_bitsize ? min(32U, lowmem_bitsize) : 32U;
> > +
> >       /*
> >        * TODO: Implement memory bank allocation when DOM0 is not direct
> >        * mapped
> >
> 
> Cheers,
> 
> --
> Julien Grall

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.