[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] [PATCH] fixes DOM0_PHYSINFO hypercall
>From: Masaki Kanno >Sent: 2005年12月12日 18:52 >Hi, > >This patch fixes DOM0_PHYSINFO hypercall. > >However, I found a problem in 'smp_num_siblings'. >I changed the setting of BIOS to disabled the hyperthread, so I expected >'smp_num_siblings' to 1. >But, its value is 2, because the value of log_overview.tpc >(PAL_LOGICAL_TO_PHYSICAL) is 2. >Is there any way to know the current setting of the hyperthread? Hi, Kanno That depends on what you wanna that field to be. Current code from Linux just uses smp_num_siblings and smp_num_cpu_cores to record physical die information, which is retrieved from PAL_LOGICAL_TO_PHYSICAL in boot time. So they're exactly same meaning to threads_per_core and cores_per_socket here, which stands for static physical capability. That will not be affected by your BIOS setting. If you want to add a field to indicate active siblings of current logical processor (no such field in current phys_info), you should either go to cpuinfo_ia64 structure for field num_log which indicating online physical threads within this die. More specifically, you can even walk cpu_core_map(index) and cpu_sibling_map(index) for more detail online information. But it seems num_log should be enough. Hope helps. Thanks, Kevin > >Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx> > >Best Regards, > Kan > > >diff -r 0255f48b757f xen/arch/ia64/xen/dom0_ops.c >--- a/xen/arch/ia64/xen/dom0_ops.c Sun Dec 4 19:12:00 2005 >+++ b/xen/arch/ia64/xen/dom0_ops.c Fri Dec 9 23:49:11 2005 >@@ -200,13 +200,13 @@ > dom0_physinfo_t *pi = &op->u.physinfo; > > pi->threads_per_core = smp_num_siblings; >- pi->cores_per_socket = 1; // FIXME >+ pi->cores_per_socket = smp_num_cpucores; > pi->sockets_per_node = > num_online_cpus() / (pi->threads_per_core * pi->cores_per_socket); > pi->nr_nodes = 1; > pi->total_pages = 99; // FIXME > pi->free_pages = avail_domheap_pages(); >- pi->cpu_khz = 100; // FIXME cpu_khz; >+ pi->cpu_khz = local_cpu_data->proc_freq / 1000; > memset(pi->hw_cap, 0, sizeof(pi->hw_cap)); > //memcpy(pi->hw_cap, boot_cpu_data.x86_capability, NCAPINTS*4); > ret = 0; >diff -r 0255f48b757f xen/include/asm-ia64/config.h >--- a/xen/include/asm-ia64/config.h Sun Dec 4 19:12:00 2005 >+++ b/xen/include/asm-ia64/config.h Wed Dec 7 19:48:44 2005 >@@ -129,8 +129,10 @@ > // needed for common/dom0_ops.c until hyperthreading is supported > #ifdef CONFIG_SMP > extern int smp_num_siblings; >+extern int smp_num_cpucores; > #else > #define smp_num_siblings 1 >+#define smp_num_cpucores 1 > #endif > > // from linux/include/linux/mm.h > > > >_______________________________________________ >Xen-ia64-devel mailing list >Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx >http://lists.xensource.com/xen-ia64-devel _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |