qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification
@ 2015-08-21  9:34 Zhu Guihua
  2015-08-21 16:25 ` Eduardo Habkost
  2015-09-07 11:29 ` Paolo Bonzini
  0 siblings, 2 replies; 6+ messages in thread
From: Zhu Guihua @ 2015-08-21  9:34 UTC (permalink / raw)
  To: qemu-devel, pbonzini, ehabkost, mst, afaerber, imammedo
  Cc: Chen Fan, Zhu Guihua

From: Chen Fan <chen.fan.fnst@cn.fujitsu.com>

In order to simplify arguments of function, introduce a new struct
named X86CPUTopoInfo.

Originally, this patch was in the patchset "cpu: add device_add
foo-x86_64-cpu support". Now put it into a separate patch so that
it can be merged ASAP.

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
---
 include/hw/i386/topology.h | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/include/hw/i386/topology.h b/include/hw/i386/topology.h
index 9c6f3a9..148cc1b 100644
--- a/include/hw/i386/topology.h
+++ b/include/hw/i386/topology.h
@@ -47,6 +47,12 @@
  */
 typedef uint32_t apic_id_t;
 
+typedef struct X86CPUTopoInfo {
+    unsigned pkg_id;
+    unsigned core_id;
+    unsigned smt_id;
+} X86CPUTopoInfo;
+
 /* Return the bit width needed for 'count' IDs
  */
 static unsigned apicid_bitwidth_for_count(unsigned count)
@@ -92,13 +98,11 @@ static inline unsigned apicid_pkg_offset(unsigned nr_cores, unsigned nr_threads)
  */
 static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
                                              unsigned nr_threads,
-                                             unsigned pkg_id,
-                                             unsigned core_id,
-                                             unsigned smt_id)
+                                             const X86CPUTopoInfo *topo)
 {
-    return (pkg_id  << apicid_pkg_offset(nr_cores, nr_threads)) |
-           (core_id << apicid_core_offset(nr_cores, nr_threads)) |
-           smt_id;
+    return (topo->pkg_id  << apicid_pkg_offset(nr_cores, nr_threads)) |
+           (topo->core_id << apicid_core_offset(nr_cores, nr_threads)) |
+           topo->smt_id;
 }
 
 /* Calculate thread/core/package IDs for a specific topology,
@@ -107,14 +111,12 @@ static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
 static inline void x86_topo_ids_from_idx(unsigned nr_cores,
                                          unsigned nr_threads,
                                          unsigned cpu_index,
-                                         unsigned *pkg_id,
-                                         unsigned *core_id,
-                                         unsigned *smt_id)
+                                         X86CPUTopoInfo *topo)
 {
     unsigned core_index = cpu_index / nr_threads;
-    *smt_id = cpu_index % nr_threads;
-    *core_id = core_index % nr_cores;
-    *pkg_id = core_index / nr_cores;
+    topo->smt_id = cpu_index % nr_threads;
+    topo->core_id = core_index % nr_cores;
+    topo->pkg_id = core_index / nr_cores;
 }
 
 /* Make APIC ID for the CPU 'cpu_index'
@@ -125,10 +127,9 @@ static inline apic_id_t x86_apicid_from_cpu_idx(unsigned nr_cores,
                                                 unsigned nr_threads,
                                                 unsigned cpu_index)
 {
-    unsigned pkg_id, core_id, smt_id;
-    x86_topo_ids_from_idx(nr_cores, nr_threads, cpu_index,
-                          &pkg_id, &core_id, &smt_id);
-    return apicid_from_topo_ids(nr_cores, nr_threads, pkg_id, core_id, smt_id);
+    X86CPUTopoInfo topo;
+    x86_topo_ids_from_idx(nr_cores, nr_threads, cpu_index, &topo);
+    return apicid_from_topo_ids(nr_cores, nr_threads, &topo);
 }
 
 #endif /* HW_I386_TOPOLOGY_H */
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification
  2015-08-21  9:34 [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification Zhu Guihua
@ 2015-08-21 16:25 ` Eduardo Habkost
  2015-09-07 11:29 ` Paolo Bonzini
  1 sibling, 0 replies; 6+ messages in thread
From: Eduardo Habkost @ 2015-08-21 16:25 UTC (permalink / raw)
  To: Zhu Guihua; +Cc: mst, qemu-devel, imammedo, Chen Fan, pbonzini, afaerber

On Fri, Aug 21, 2015 at 05:34:45PM +0800, Zhu Guihua wrote:
> From: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
> 
> In order to simplify arguments of function, introduce a new struct
> named X86CPUTopoInfo.
> 
> Originally, this patch was in the patchset "cpu: add device_add
> foo-x86_64-cpu support". Now put it into a separate patch so that
> it can be merged ASAP.
> 
> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
> Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>

Applied to the x86 tree. Thanks!

-- 
Eduardo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification
  2015-08-21  9:34 [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification Zhu Guihua
  2015-08-21 16:25 ` Eduardo Habkost
@ 2015-09-07 11:29 ` Paolo Bonzini
  2015-09-07 14:22   ` Andreas Färber
  1 sibling, 1 reply; 6+ messages in thread
From: Paolo Bonzini @ 2015-09-07 11:29 UTC (permalink / raw)
  To: Zhu Guihua, qemu-devel, ehabkost, mst, afaerber, imammedo; +Cc: Chen Fan



On 21/08/2015 11:34, Zhu Guihua wrote:
> @@ -107,14 +111,12 @@ static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
>  static inline void x86_topo_ids_from_idx(unsigned nr_cores,
>                                           unsigned nr_threads,
>                                           unsigned cpu_index,
> -                                         unsigned *pkg_id,
> -                                         unsigned *core_id,
> -                                         unsigned *smt_id)
> +                                         X86CPUTopoInfo *topo)
>  {

Isn't this function used in hw/i386/pc.c as well?

Paolo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification
  2015-09-07 11:29 ` Paolo Bonzini
@ 2015-09-07 14:22   ` Andreas Färber
  2015-09-09 16:11     ` Eduardo Habkost
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Färber @ 2015-09-07 14:22 UTC (permalink / raw)
  To: Zhu Guihua, qemu-devel, ehabkost; +Cc: Chen Fan, Paolo Bonzini, imammedo, mst

Am 07.09.2015 um 13:29 schrieb Paolo Bonzini:
> On 21/08/2015 11:34, Zhu Guihua wrote:
>> @@ -107,14 +111,12 @@ static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
>>  static inline void x86_topo_ids_from_idx(unsigned nr_cores,
>>                                           unsigned nr_threads,
>>                                           unsigned cpu_index,
>> -                                         unsigned *pkg_id,
>> -                                         unsigned *core_id,
>> -                                         unsigned *smt_id)
>> +                                         X86CPUTopoInfo *topo)
>>  {
> 
> Isn't this function used in hw/i386/pc.c as well?

In case it gets respun now, in Seattle I had asked Eduardo to update the
subject with s/CpuTopoInfo/X86CPUTopoInfo/.

Regards,
Andreas

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification
  2015-09-07 14:22   ` Andreas Färber
@ 2015-09-09 16:11     ` Eduardo Habkost
  2015-09-10  1:09       ` Zhu Guihua
  0 siblings, 1 reply; 6+ messages in thread
From: Eduardo Habkost @ 2015-09-09 16:11 UTC (permalink / raw)
  To: Andreas Färber
  Cc: Zhu Guihua, mst, qemu-devel, imammedo, Chen Fan, Paolo Bonzini

On Mon, Sep 07, 2015 at 04:22:10PM +0200, Andreas Färber wrote:
> Am 07.09.2015 um 13:29 schrieb Paolo Bonzini:
> > On 21/08/2015 11:34, Zhu Guihua wrote:
> >> @@ -107,14 +111,12 @@ static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
> >>  static inline void x86_topo_ids_from_idx(unsigned nr_cores,
> >>                                           unsigned nr_threads,
> >>                                           unsigned cpu_index,
> >> -                                         unsigned *pkg_id,
> >> -                                         unsigned *core_id,
> >> -                                         unsigned *smt_id)
> >> +                                         X86CPUTopoInfo *topo)
> >>  {
> > 
> > Isn't this function used in hw/i386/pc.c as well?
> 
> In case it gets respun now, in Seattle I had asked Eduardo to update the
> subject with s/CpuTopoInfo/X86CPUTopoInfo/.

I have fixed the subject line when applying to x86, and now added the
following fix to the patch to avoid a respin:

  diff --git a/hw/i386/pc.c b/hw/i386/pc.c
  index 9f2924e..c515fca 100644
  --- a/hw/i386/pc.c
  +++ b/hw/i386/pc.c
  @@ -1938,10 +1938,10 @@ static void pc_machine_initfn(Object *obj)
   
   static unsigned pc_cpu_index_to_socket_id(unsigned cpu_index)
   {
  -    unsigned pkg_id, core_id, smt_id;
  +    X86CPUTopoInfo topo;
       x86_topo_ids_from_idx(smp_cores, smp_threads, cpu_index,
  -                          &pkg_id, &core_id, &smt_id);
  -    return pkg_id;
  +                          &topo);
  +    return topo.pkg_id;
   }
   
   static void pc_machine_class_init(ObjectClass *oc, void *data)

-- 
Eduardo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification
  2015-09-09 16:11     ` Eduardo Habkost
@ 2015-09-10  1:09       ` Zhu Guihua
  0 siblings, 0 replies; 6+ messages in thread
From: Zhu Guihua @ 2015-09-10  1:09 UTC (permalink / raw)
  To: Eduardo Habkost, Andreas Färber
  Cc: Chen Fan, Paolo Bonzini, imammedo, qemu-devel, mst


On 09/10/2015 12:11 AM, Eduardo Habkost wrote:
> On Mon, Sep 07, 2015 at 04:22:10PM +0200, Andreas Färber wrote:
>> Am 07.09.2015 um 13:29 schrieb Paolo Bonzini:
>>> On 21/08/2015 11:34, Zhu Guihua wrote:
>>>> @@ -107,14 +111,12 @@ static inline apic_id_t apicid_from_topo_ids(unsigned nr_cores,
>>>>   static inline void x86_topo_ids_from_idx(unsigned nr_cores,
>>>>                                            unsigned nr_threads,
>>>>                                            unsigned cpu_index,
>>>> -                                         unsigned *pkg_id,
>>>> -                                         unsigned *core_id,
>>>> -                                         unsigned *smt_id)
>>>> +                                         X86CPUTopoInfo *topo)
>>>>   {
>>> Isn't this function used in hw/i386/pc.c as well?
>> In case it gets respun now, in Seattle I had asked Eduardo to update the
>> subject with s/CpuTopoInfo/X86CPUTopoInfo/.
> I have fixed the subject line when applying to x86, and now added the
> following fix to the patch to avoid a respin:
>
>    diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>    index 9f2924e..c515fca 100644
>    --- a/hw/i386/pc.c
>    +++ b/hw/i386/pc.c
>    @@ -1938,10 +1938,10 @@ static void pc_machine_initfn(Object *obj)
>     
>     static unsigned pc_cpu_index_to_socket_id(unsigned cpu_index)
>     {
>    -    unsigned pkg_id, core_id, smt_id;
>    +    X86CPUTopoInfo topo;
>         x86_topo_ids_from_idx(smp_cores, smp_threads, cpu_index,
>    -                          &pkg_id, &core_id, &smt_id);
>    -    return pkg_id;
>    +                          &topo);
>    +    return topo.pkg_id;
>     }
>     
>     static void pc_machine_class_init(ObjectClass *oc, void *data)
>

I am sorry for my carelessness, thanks for your work.

Regards,
Zhu

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-09-10  1:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-21  9:34 [Qemu-devel] [PATCH] cpu: introduce CpuTopoInfo structure for argument simplification Zhu Guihua
2015-08-21 16:25 ` Eduardo Habkost
2015-09-07 11:29 ` Paolo Bonzini
2015-09-07 14:22   ` Andreas Färber
2015-09-09 16:11     ` Eduardo Habkost
2015-09-10  1:09       ` Zhu Guihua

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).