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

RE: [PATCH v2 3/3] xen/sched: Make cpu_nr_siblings() architecture-specific


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Hirokazu Takahashi <taka@xxxxxxxxxxxxx>
  • Date: Wed, 24 Jun 2026 09:40:37 +0000
  • Accept-language: ja-JP, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; 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=+dXviQYPFcypXFYLM/XmTlMk93WlIy72PNblg3kjgEY=; b=jbYSAkMlOzjkYRfqT+y+3ZzHKf5Pt3GeAYbCQQf72PP7nx+ysDufIrtZiqMGeEQQ8i0Omyx1MegW5Nfy+h2w+kq8tQZu1GMo4JqTQ6BnC5z5MfrJHKwYsL2PgtDR161PLd2sRII3LbPR+0C25uLJo8wxYEW61nf8NWJF24Yd60NvmZPZrgajSjcpvGWtA+sQg9BmFMMKKZ2AopxJ0kUzfH6WgkZnysbShN4ZXAiOiCU1KHAAsywE4mkqqs039aUF+OoxYdDLr26cW9YYFPoy6FZNrWvxCqX/jIVqlfJdFyW9Ecx99Qn4w+ztuPFxAfYEdrUnGfhAIjKFvcwuvBSKDw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w5xc8H6tsQTCP/w1Vx1LhmavJWUAUQbinhPxGUvIaOjpV5wsQxdCYD4kp0fjesCFc3geD32GF37NPhHVInXI5wJA41AmnwAWr+XHVTBt/dUdufZAU4drGUt+hJkKPOtjkav6c7WoRO9fdrYbySxhSGHMXqvihw7TgU9KMH/wXqvIDIPNyF+hfK2c6Dd4pZFdDWRC0KQU9Iz0eVKLFOe6VXulXXkn4wVKl/pqMxoRNDjvWBcc9nJETuMjH5VpG/4xTYh/xPhjMhK/WJ2ek/TsspXqLspaUStz0EzWSYHwwtTx16eK1sbGIXjd4KfGYMTzH05SoerDjf2RPqGuHa1KXg==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp;
  • Cc: "Mykyta_Poturai@xxxxxxxx" <Mykyta_Poturai@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Teddy Astie <teddy.astie@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Dario Faggioli <dfaggioli@xxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, George Dunlap <gwd@xxxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 24 Jun 2026 09:40:50 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHc/iigOqL0BnGAM0Om5K/tToBK0rZKmlYAgALcNwA=
  • Thread-topic: [PATCH v2 3/3] xen/sched: Make cpu_nr_siblings() architecture-specific

Hello,

> On 17.06.2026 09:12, Hirokazu Takahashi wrote:
> > --- a/xen/arch/x86/include/asm/processor.h
> > +++ b/xen/arch/x86/include/asm/processor.h
> > @@ -106,6 +106,7 @@ extern void intel_init_arat(void);
> >
> >  #define cpu_to_core(_cpu)   (cpu_data[_cpu].cpu_core_id)
> >  #define cpu_to_socket(_cpu) (cpu_data[_cpu].phys_proc_id)
> > +#define cpu_nr_siblings(_cpu) (cpu_data[_cpu].x86_num_siblings)
> 
> This is uniformly available when building x86. An earlier patch adds an
> #include of the new cpu-topology.h ...

"The cpu-topology.h header is intended for non-x86 architectures where topology
information is retrieved from Device Tree or ACPI. 
For x86, I will ensure that it is properly disabled to avoid any conflicts."

> > --- a/xen/common/sched/credit2.c
> > +++ b/xen/common/sched/credit2.c
> > @@ -29,22 +29,6 @@
> >  /* #define d2printk printk */
> >  #define d2printk(x...)
> >
> > -/*
> > - * TODO: Abstract this properly, and figure out what Credit2 wants to do 
> > with
> > - *       the fact that x86_num_siblings doesn't even have the same meaning
> > - *       between x86 vendors.
> > - */
> > -static unsigned int cpu_nr_siblings(unsigned int cpu)
> > -{
> > -#ifdef CONFIG_X86
> > -    return cpu_data[cpu].x86_num_siblings;
> > -#elif defined(CONFIG_CPU_TOPOLOGY)
> > -    return cpu_topology[cpu].num_siblings;
> > -#else
> > -    return 1;
> > -#endif
> > -}
> 
> ... to this file, thus allowing for the static function to be dropped. 
> However,
> ...
> 
> > --- a/xen/include/xen/cpu-topology.h
> > +++ b/xen/include/xen/cpu-topology.h
> > @@ -24,6 +24,7 @@ void init_cpu_topology(void);
> >
> >  #define cpu_to_core(cpu)   (cpu_topology[cpu].phys_core_id)
> >  #define cpu_to_socket(cpu)   (cpu_topology[cpu].phys_socket_id)
> > +#define cpu_nr_siblings(cpu) (cpu_topology[cpu].num_siblings)
> >
> >  #else /* CONFIG_CPU_TOPOLOGY */
> >
> > @@ -31,6 +32,7 @@ static inline void init_cpu_topology(void) {}
> >
> >  #define cpu_to_core(cpu)   (0U)
> >  #define cpu_to_socket(cpu) (0U)
> > +#define cpu_nr_siblings(cpu) (1U)
> >
> >  #endif /* CONFIG_CPU_TOPOLOGY */
> 
> ... one of the two #define-s will take effect here. Whichever one it is, it'll
> conflict with x86'es (when building for x86). Am I overlooking something here,
> or did you simply not build-test x86? Looks like a problem of the same kind
> may actually be introduced already by patch 2.

Oops, you are completely right, and I sincerely apologize. I did not properly 
build-test on x86.

Thank you,
Hirokazu Takahashi.

 


Rackspace

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