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

Re: [RFC PATCH 10/19] arm/its: Keep track of BASER regs


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>
  • Date: Fri, 9 Oct 2026 17:24:35 +0000
  • Accept-language: en-US, uk-UA, ru-RU
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/kG0Nrink/VIjzZVh3uGkOeZoaYXZYdL5u63rSihIUQ=; b=wF8apXMnHQWyt9c4ezDKtBvru8KQCtt4DIlU6s5xmUkURjjAfTBj+4Fr7Krbkxv7qRtkYOJjmiQtLZiuEX8rUD/R7TnLfHsOg0YvPYpi+m/hMrI5tkRSMF8av19O5CBXrbl6ttFbnoPsG7qPdaCKpjJiCMJNAOelBMfcXdG8O3hmH4eYcuY0kKA1cYLde7uPJFWZIZ1yQkw54TnrEy+ApThbKTXrOQyqHijP4CD8PrekNqpCyKFUHJtukXeCht+3ngvDiej05wAu778q1SOVmSf3CfZ+RagB1rNGTRqmcAzMgBzQHjIG9YHmWlGZBgnYVHSm3NjJ2/o/gb7molFk7Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UEkOkw0xGsMy9OWLBn5k1DptzmUK0R6Pu/gzlgJCMn7tXeMQNCi1HLuOjO1XB28GgxRciq6xIugOlhOzhbKRfNdquzHMyxdbYbzeAb5qeprq3xTn2/ds9BP4eGHIWWzDfpt0fZ14Y9IDps7vK1HHP4ETs8AKBoj6yYpAigGShSHPkaWi+qLHyqg1u30q9zmsuE40fSbiR0yp1J9nWMzl7a7bIG7luqWRUAgevc+jq1MmD0x/qHvMS4ZHdMkt/pyaw+wXwRGxhX7QD+06ctBHwR9e8Qh1TqlqsAzVCcWmeznetMttOFcO1quorBsvqb0/PvirnvOFw0ao7RzlRBNohw==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Delivery-date: Fri, 09 Oct 2026 17:24:46 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHclF+MPQ/oNp2C80CWhnrkrdvP0rb2/VyA
  • Thread-topic: [RFC PATCH 10/19] arm/its: Keep track of BASER regs


On 2/2/26 18:14, Mykyta Poturai wrote:
> Keep all the info about BASER regs in host_its structure to be able to easily
> access it later.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx>
> ---
>   xen/arch/arm/gic-v3-its.c             | 36 +++++++++++++++++++++------
>   xen/arch/arm/include/asm/gic_v3_its.h | 14 +++++++++++
>   2 files changed, 43 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index c628959f42..2328595a85 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -430,16 +430,32 @@ static void *its_map_cbaser(struct host_its *its)
>   /* The ITS BASE registers work with page sizes of 4K, 16K or 64K. */
>   #define BASER_PAGE_BITS(sz) ((sz) * 2 + 12)
>   
> +struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < GITS_BASER_NR_REGS; i++ )
> +    {
> +        if (GITS_BASER_TYPE(hw_its->tables[i].val) == type)
> +            return &hw_its->tables[i];
> +    }
> +
> +    return NULL;
> +}
> +
>   static int its_map_baser(void __iomem *basereg, uint64_t regc,
> -                         unsigned int nr_items)
> +                         unsigned int nr_items, struct its_baser *baser)
>   {
>       uint64_t attr, reg;
>       unsigned int entry_size = GITS_BASER_ENTRY_SIZE(regc);
> -    unsigned int pagesz = 2;    /* try 64K pages first, then go down. */
> +    unsigned int page_size[4] = {SZ_4K, SZ_16K, SZ_64K, SZ_64K};
> +    unsigned int pagesz = 0;    /* try 64K pages first, then go down. */

Comment says "try 64K pages first", but pagesz starts from 0 (from 4K).

And there is a check at the end of this function:

     if ( pagesz-- > 0 )
         goto retry;

which doesn't work at all when pagesz = 0;

BR, Dmytro.

 


Rackspace

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