All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs
@ 2016-07-04 15:51 Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 1/5] tests: acpi: add CPU hotplug testcase Igor Mammedov
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Igor Mammedov @ 2016-07-04 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, zhaoshenglong, david, mst

Changelog:
v3->v4:
  - return -1 on failure from numa_get_node_for_cpu()
  - replace SRAT table blob in 5/5 with note to maintainer to add it manually
v1->v3:
  - fix commit message for 4/5
  - add numa_get_node_for_cpu() helper
  - add comment in code explaining why _PXM is being added

Series adds acpi tables tests for CPU hotplug and
makes hotplugged CPUs assigned to correct numa nodes for Linux guests
 + extends CPU hotplug test with numa options

Igor Mammedov (5):
  tests: acpi: add CPU hotplug testcase
  tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs
  numa: reduce code duplication by adding helper numa_get_node_for_cpu()
  acpi: provide _PXM method for CPU devices if QEMU is started numa
    enabled
  tests: acpi: extend cphp testcase with numa check

 hw/acpi/cpu.c                      |  12 ++++++++++++
 hw/arm/virt-acpi-build.c           |   6 ++----
 hw/arm/virt.c                      |   7 +++----
 hw/i386/acpi-build.c               |   7 ++-----
 hw/i386/pc.c                       |   8 +++-----
 hw/ppc/spapr_cpu_core.c            |   6 ++----
 include/sysemu/numa.h              |   3 +++
 numa.c                             |  12 ++++++++++++
 tests/acpi-test-data/pc/APIC.cphp  | Bin 0 -> 160 bytes
 tests/acpi-test-data/pc/DSDT.cphp  | Bin 0 -> 6435 bytes
 tests/acpi-test-data/q35/APIC.cphp | Bin 0 -> 160 bytes
 tests/acpi-test-data/q35/DSDT.cphp | Bin 0 -> 9197 bytes
 tests/bios-tables-test.c           |  30 ++++++++++++++++++++++++++++++
 13 files changed, 69 insertions(+), 22 deletions(-)
 create mode 100644 tests/acpi-test-data/pc/APIC.cphp
 create mode 100644 tests/acpi-test-data/pc/DSDT.cphp
 create mode 100644 tests/acpi-test-data/q35/APIC.cphp
 create mode 100644 tests/acpi-test-data/q35/DSDT.cphp

-- 
2.7.0

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

* [Qemu-devel] [PATCH v4 1/5] tests: acpi: add CPU hotplug testcase
  2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
@ 2016-07-04 15:51 ` Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 2/5] tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs Igor Mammedov
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2016-07-04 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, zhaoshenglong, david, mst

Test with:

    -smp 2,cores=3,sockets=2,maxcpus=6

to capture sparse APIC ID values that default
AMD CPU has in above configuration.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
---
NOTE to maintainer:

following table blobs should be added to git tree as poart of this
commit
after running ./tests/acpi-test-data/rebuild-expected-aml.sh

tests/acpi-test-data/q35/APIC.cphp
tests/acpi-test-data/q35/DSDT.cphp
tests/acpi-test-data/pc/APIC.cphp
tests/acpi-test-data/pc/DSDT.cphp
---
 tests/bios-tables-test.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index 92c90dd..de4019e 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -801,6 +801,32 @@ static void test_acpi_q35_tcg_bridge(void)
     free_test_data(&data);
 }
 
+static void test_acpi_piix4_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_PC;
+    data.variant = ".cphp";
+    test_acpi_one("-machine accel=tcg"
+                  " -smp 2,cores=3,sockets=2,maxcpus=6",
+                  &data);
+    free_test_data(&data);
+}
+
+static void test_acpi_q35_tcg_cphp(void)
+{
+    test_data data;
+
+    memset(&data, 0, sizeof(data));
+    data.machine = MACHINE_Q35;
+    data.variant = ".cphp";
+    test_acpi_one("-machine q35,accel=tcg"
+                  " -smp 2,cores=3,sockets=2,maxcpus=6",
+                  &data);
+    free_test_data(&data);
+}
+
 static uint8_t ipmi_required_struct_types[] = {
     0, 1, 3, 4, 16, 17, 19, 32, 38, 127
 };
@@ -856,6 +882,8 @@ int main(int argc, char *argv[])
         qtest_add_func("acpi/q35/tcg/bridge", test_acpi_q35_tcg_bridge);
         qtest_add_func("acpi/piix4/tcg/ipmi", test_acpi_piix4_tcg_ipmi);
         qtest_add_func("acpi/q35/tcg/ipmi", test_acpi_q35_tcg_ipmi);
+        qtest_add_func("acpi/piix4/tcg/cpuhp", test_acpi_piix4_tcg_cphp);
+        qtest_add_func("acpi/q35/tcg/cpuhp", test_acpi_q35_tcg_cphp);
     }
     ret = g_test_run();
     boot_sector_cleanup(disk);
-- 
2.7.0

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

* [Qemu-devel] [PATCH v4 2/5] tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs
  2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 1/5] tests: acpi: add CPU hotplug testcase Igor Mammedov
@ 2016-07-04 15:51 ` Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 3/5] numa: reduce code duplication by adding helper numa_get_node_for_cpu() Igor Mammedov
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2016-07-04 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, zhaoshenglong, david, mst

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 tests/acpi-test-data/pc/APIC.cphp  | Bin 0 -> 160 bytes
 tests/acpi-test-data/pc/DSDT.cphp  | Bin 0 -> 6435 bytes
 tests/acpi-test-data/q35/APIC.cphp | Bin 0 -> 160 bytes
 tests/acpi-test-data/q35/DSDT.cphp | Bin 0 -> 9197 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 tests/acpi-test-data/pc/APIC.cphp
 create mode 100644 tests/acpi-test-data/pc/DSDT.cphp
 create mode 100644 tests/acpi-test-data/q35/APIC.cphp
 create mode 100644 tests/acpi-test-data/q35/DSDT.cphp

diff --git a/tests/acpi-test-data/pc/APIC.cphp b/tests/acpi-test-data/pc/APIC.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..1bf8a0a63bc1c9b716d937b96eb34b05016b9366
GIT binary patch
literal 160
zcmXwx!3}^Q3`JW6f}%UP3UJYrBwpObWgNv(oJ8%n@zB24pP!~WmxG9S&r6xsF>kdb
z$yhQtNOavFgY<9)W~DJWDKu7Tozi)bd+hVZHk}Lv=1?18ZTnj%1<hjo%=$-Oyrt<4
A0RR91

literal 0
HcmV?d00001

diff --git a/tests/acpi-test-data/pc/DSDT.cphp b/tests/acpi-test-data/pc/DSDT.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..e8b146208eb3877e1cde2cc361c5afd270d194c6
GIT binary patch
literal 6435
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
OTtYbOHt0~$nfQP4P$F9Z

literal 0
HcmV?d00001

diff --git a/tests/acpi-test-data/q35/APIC.cphp b/tests/acpi-test-data/q35/APIC.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..1bf8a0a63bc1c9b716d937b96eb34b05016b9366
GIT binary patch
literal 160
zcmXwx!3}^Q3`JW6f}%UP3UJYrBwpObWgNv(oJ8%n@zB24pP!~WmxG9S&r6xsF>kdb
z$yhQtNOavFgY<9)W~DJWDKu7Tozi)bd+hVZHk}Lv=1?18ZTnj%1<hjo%=$-Oyrt<4
A0RR91

literal 0
HcmV?d00001

diff --git a/tests/acpi-test-data/q35/DSDT.cphp b/tests/acpi-test-data/q35/DSDT.cphp
new file mode 100644
index 0000000000000000000000000000000000000000..6cc28c6daec2b331030ab0600a4d79034c1dfc40
GIT binary patch
literal 9197
zcmb7KU2hx56`duQ)M`mdD`_RmUy)!JO_SCMB{^=<kHF+EMY7^b6iMd;G(g%-S}AFp
zh2j87g8-HS<iigI5;j5mMhAM%Uub?p-Ws4!eJ#+ZqKKcOo_mKw%`7D#)&n_r_MCg?
z?C#7N?ka4B?f+aA!n#q~4yvt{(o2mXM4u&upf-JbHT$;c+z(5Yu9ZvKR_7qcZG4m*
z|0iMTR>k`3ZtwG6@7{+!>rO20e&Ky~_fGu&N4>j(KyTfRU6&f(Q{7gn+qvHeT5T&Q
zzI5~4E?K$!my{O$rJIeQR&u=UJVOsFdBg>$Tdjrp;@7U@bOYH+JKbW~6i)Y6Ewr50
ztwuvQLAzNOemL3PZUy#(*F_M%xH{OF=<m+XyIv>y=lZwHmu`Ok;=STmzxu~-AH43`
z0IcEL!S{Mh0p+2_I;DD-KHSUnIq*L1?^*BR$SR{(2aBKf6;5`0bTB3`^*_wZUMjJA
z^tu;0Qcu~bHp*?K$ASusA7{7PXh$M1#Mj^DgxxvtD4u_zycMoAnqhavztL^Aiz23;
zUQAtg{?v25-XQ-;zbE>=-0|^|7)*cCza#!~Colf>zs!+1a%XV1nyuMcclv`#Tu3Ar
zwh-?K@8-laG#om$ox>noYZbeEIx&D{45m?Q?xfrvU7kAbhm?EYO?3{=Q(FYvQ86tn
ze3kH3Z?wY{qsl4wkWdRil|@i2Z&^VJAN2-4yqo8qO{<Djt#f#-*$z-tUe_G1BaL*)
zU8q>Gh=rHBBCLwFFZM+$`;O=w{&cexj^OFEKgs7~B$0_d(GwO}uZUOheI*5@ox>-i
z?OP+_%zTpQxS1=$BjEGUG6LGdUy^5>#@`!cah8w7Lwi)vbEhiS+v&H{j&tQc7b@F0
zC#y<P#*%lYN<$~)tTd0(kJ7@q;&GY{O0$+o<EBP=a8A$6lX{dw9tU}xMlIM7e!h!u
zE8eBZ`}4~dT>>xoH&3ZXv)!26eDnTX&c@v%>RX#-A=?((8)7a`{cZ|DMFnXDRWUbZ
z=Z}xEG)UYqA{Kzt@)+{~RUt8vpRp-s0y~U|sh}yrOhB25keC<^W7Eu3BcS__vobU-
znSiR0n5qiydx_;dHZv8}mP|Exgu2d*p)<ow1<gpN8azT>XV%b}Wu}5=O`QmJofC%6
z2}9?EsS}~D(=l{9hEB)SiBQ*x6+%1HlZMVoQzt@Qr)%hR4V|v36QQm%XXwlsI&-E@
zgt|_wRND2-8#?o*PK3J7DMRO!p>xXAiBQ)$ZRngfbWWQ(5$ZZ;44pHE&KXlDLS3h4
z==2Poo~aX|u5;GVIcw;gHFYA?b<P<&=M0^5rcQ*q&Ur)UyrFa6)QM2n=^HwIL#J=*
zM5yarFmx^$Iu}fx2z8x{hR#Jp=c1_-p|10sq4S)f^PH&@p{{eu(79yjTrzbc)ODU`
zW^uR@o@ZuhxY(VS%-|#>W;n!NFqjt%<^_|9P-k8=m=_J^MU#n8XI?Uxmkj15lZjAg
zUN)GQ4d!K&iBM-g!A#{cPcT!h@lQymTDTDsQ#r}9QFGa-xop-%C~G<}(4uCbl~!$J
zplGA;&_EHOtPIi!R8bhH#IYq=*zYh<Ic7>iRY*)F4F)Q)%0M+J8K{IZlMECgMxzW=
zVuumcR9;I4Dxo6-MTns@76vM@!-$yb<dT6(C^N}G5h|T9P>E$G3{-=Xfl4Sd$v_b*
zoiI>|WhM+%gOY(tC^N}G5h|T9P>E$G3{-=Xfl4Sd$v_b*oiI>|WhM+%gOY(tC^N}G
z5h|T9P>E$G3{-=Xfl4Sd$v_b*oiI>|WhM+%gOY(tC^N}G5h|T9P>E$G3{-=Xfl4Sd
z$v_b*oiI>|WhM+%gOY(tC^N}G5h|T9P>E$G3{-=Xfl4Sd$v_b*oiI>|WhM+%gOY(t
zC^N}G5h|T9P>E$G3{-=Xfl4Sd$v_b*oiI>|WhM+%gOY(tC^N}G5h|T9P>E$G3{-=X
zfl4Sd$v_b*oiI>|WhM+%gOY(tC^N}G5h|T9P>E$G3{-=Xfl4Sd$v_b*oiI>|WhM+%
zgOY(tC^N}G5h|T9P>E$G3{-=Xfl4Sd$v_b*oiI>|WhM+%gOY(tC^N}G5h|T9P>E$G
z3{-=Xfl4Sd$v_b*oiI>|WhM+%gOY(tC^N}G5h|T9P(+%6BGL^Mp>CiEH3QX{Fi?$2
z2C6a1Ks6=|RAa(GH6|IT#v}vPm@rU{2?N!bWS|<83{+#nKs6=|RAZ8XYD_XvjR^xq
zq^>Ru6cMf%pG-1Pgt!bUB&IsIFi=G5+`>Q+sdGyPicp<fGEjt}@Go>>p<<Bl^N-ad
z`a$|IOJBv#!Ox#f)2~!|RzOc9tVVOE2*=$i(MLcZp(F5YWT#B+4f?3iN7eD?Ydd(n
zG?;wXy}yfxAd^RK&c9yU37V4tGz+uSZtml(n50Kr_@(@S`rHgYYw^3g?u?)o2GPWm
zk@^Jo2u1Z<JdejI^svUkuv@c>?)=BoVloYP6Ij0mR$^rHXXJAU8UjXB^k=(attH;0
zwtJs@X6Q+WIHCb@e6HJSwyX!c!!b~K>K|4wC931G!uPIT(yEuZdI{sxtC#%KtCu>5
z5or$+)!o!%ln=D>0hbRF<%2WI2gCAVvOFG_eQ))lRzBqNVWNC^M)`19zML#?KSueo
zR=&*T%Zc*kGs>5T<u{V$GmlYzLo2_*<u?-LH_j-(F)Uw6md`#$`HEJ)!sRQ8@|82n
zSBB-Q$?_AAQNF5`uX6cnqI~s?@>P_#X(>yV_hfmscwk#WkJ<RCrP=3adCKF9=JhaL
zavHm{W;*OO#?r~YQ`3#j%Q-V0HXvi^WZ$Xj#^%|)nGU;>v2?QU)O2I>#y8Vpt1^~O
z_MMt;Y#uC_>9BtpODFqIO*eL5FPiDFsToTr`%X<acAuUz(_yDGmQMDW>AbKh-w*`u
z?UQHajb^!}?nD<85dJe2G;Xa_-?$h5{;l7w?7#Zv8*lCZ=G8Yv#|j$t&EXw6<+>H?
zoBTI<E00Ip@Ev;J@=YEO^bf95P!uZxJ(mw^TP-VSMlV=F`PT(Y*g+75PUm2bK<S`W
zuCD+Y7TYU$lw8}YIkBM5&S9l;o8KT{EOLBP#h_6u6jlo~0{Mm}<41PT-gr4RaQnOB
zgP>3->`~LA=IY)c*WYzh)LxVAG_}`d+otw)+0Ib=xjny{#cQMDWasMbXKnQ^fzA)<
zK0c0jlie6-EP8_r{p0~s9=kKW&XZ$D>YGPBKg!VAc)UVZG8HnMn%}QZ2d!YsIZKAs
z`=XfZ_wW{^7mH+4T%AG19uve@5obCH$Az=vv5^5CTfK*y_MkeRitmNfQ@QE!T!16j
z=|ZE)V7t}MpC$Cv>oqo5D313|(G|O?WG_KqOLpQEoI1MB`*>f2I})=Kf4IAGYdJ@B
zgW(2_itX8)>j*pxpk1P$>(cC?n?m^0c)8flkutHn_u4ScDsLu@G}x$((pXj^jisfr
zI8BvCvxWydRB!5JG_>Oy<w>PDPkuBUyce1ojmJ%$WLn3Yl4K@qo<^C{b~001&y+sN
zbR7?Vl9{j%8fCIG$xODM$v(;S9Bq{o>ae95Wy)lenKF8&3^Mr_vFubD<!-sKhRMON
z6ln>f8RczV(_U&8uSL~{^tGwRR-;fX+`xsU<uiKq4{z+hv$8w3g8K8kcOOjlqj0N<
z*M0cm(6OR=uqpgvHbMz;atzb6bCr%AAAj-7&w9j&dl8nL!F)fW`50jmVHR5yJX{?3
z{fMR(_tHe7Xun5Ohmssw{<Vk}X)SI1w_U*rbN#5?>JC>dM)&;UQiOdxmMA#{g>|Cl
zjq9`PZsEa?g~-c$fKR&o`0iN#sjgvoj9)=Sbf+=cx@^v&S(VKn*2}8*X*7qui&62V
zA@%~A)i`RFszjnjof4r@uM&Y8bxN{N-P9m11$>y;1OGGXqvQJ&TiiLzoz}fk54Gxa
ztUd@Q`qV8Td3|km*}e23T=hgUNhO&ik>#zgxh~Rop$W}taEHxB45%AZWjY*Fayl5(
zIO)*v3K4D8ym8(CLDYCDvXU1dMsHVL)SmyN2<wDB2HK0Z%P+*Q;b0(B`d1<>E~zn~
zh3?@1JihUHFEI34+|mAd%!GB_Cg`rGTh*)Or9;bqpP-lPr3v?sA5DoAp8U~?p%1()
zf0Tcew;c3a^5lJs!;kW#c#2QsfAy2=;-u2AUHVH2K0*_h{=Pas{`+^s=JWJYJ+Lub
z<-czvrXlrf+ZX(MM7!wb<c6BJFDu!Vtc5r8-cz?Rb6e}(xvWj=DB9P%bB^t%Tr8J}
zo}(jF)ceJW<j&zU8!rZO>o~Pjj&5PCUn6v)ikI;+v`O-U>D&BvJaV+{7q20_8fXK<
z&wW=c(Y~tMh?@967S~<s94u3irh9*dW&%Fy)T*O}TVkbiaG3x_ant45jC&1h1TP7=
z#Q5iz1<9u^7u_BBXay^NmKKbZw_(eF)yTC91^kZ!{o_mL@ab0JXEMMgvjjHTt<@0A
R7B$vXW1Sn>MzGZu{|B7Hnt1>K

literal 0
HcmV?d00001

-- 
2.7.0

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

* [Qemu-devel] [PATCH v4 3/5] numa: reduce code duplication by adding helper numa_get_node_for_cpu()
  2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 1/5] tests: acpi: add CPU hotplug testcase Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 2/5] tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs Igor Mammedov
@ 2016-07-04 15:51 ` Igor Mammedov
  2016-07-05  1:09   ` Shannon Zhao
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 4/5] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled Igor Mammedov
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Igor Mammedov @ 2016-07-04 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, zhaoshenglong, david, mst

Replace repeated pattern

    for (i = 0; i < nb_numa_nodes; i++) {
        if (test_bit(idx, numa_info[i].node_cpu)) {
           ...
           break;

with a helper function to lookup numa node index for cpu.

Suggested-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/arm/virt-acpi-build.c |  6 ++----
 hw/arm/virt.c            |  7 +++----
 hw/i386/acpi-build.c     |  7 ++-----
 hw/i386/pc.c             |  8 +++-----
 hw/ppc/spapr_cpu_core.c  |  6 ++----
 include/sysemu/numa.h    |  3 +++
 numa.c                   | 12 ++++++++++++
 7 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 28fc59c..97f0696 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -426,11 +426,9 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info)
     uint32_t *cpu_node = g_malloc0(guest_info->smp_cpus * sizeof(uint32_t));
 
     for (i = 0; i < guest_info->smp_cpus; i++) {
-        for (j = 0; j < nb_numa_nodes; j++) {
-            if (test_bit(i, numa_info[j].node_cpu)) {
+        j = numa_get_node_for_cpu(i);
+        if (j != -1) {
                 cpu_node[i] = j;
-                break;
-            }
         }
     }
 
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 6e098af..3c02b81 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -411,10 +411,9 @@ static void fdt_add_cpu_nodes(const VirtBoardInfo *vbi)
                                   armcpu->mp_affinity);
         }
 
-        for (i = 0; i < nb_numa_nodes; i++) {
-            if (test_bit(cpu, numa_info[i].node_cpu)) {
-                qemu_fdt_setprop_cell(vbi->fdt, nodename, "numa-node-id", i);
-            }
+        i = numa_get_node_for_cpu(cpu);
+        if (i != -1) {
+            qemu_fdt_setprop_cell(vbi->fdt, nodename, "numa-node-id", i);
         }
 
         g_free(nodename);
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 5a594be..11fddfc 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2344,18 +2344,15 @@ build_srat(GArray *table_data, BIOSLinker *linker, MachineState *machine)
     srat->reserved1 = cpu_to_le32(1);
 
     for (i = 0; i < apic_ids->len; i++) {
-        int j;
+        int j = numa_get_node_for_cpu(i);
         int apic_id = apic_ids->cpus[i].arch_id;
 
         core = acpi_data_push(table_data, sizeof *core);
         core->type = ACPI_SRAT_PROCESSOR_APIC;
         core->length = sizeof(*core);
         core->local_apic_id = apic_id;
-        for (j = 0; j < nb_numa_nodes; j++) {
-            if (test_bit(i, numa_info[j].node_cpu)) {
+        if (j != -1) {
                 core->proximity_lo = j;
-                break;
-            }
         }
         memset(core->proximity_hi, 0, 3);
         core->local_sapic_eid = 0;
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 44a8f3b..7b81e01 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -780,11 +780,9 @@ static FWCfgState *bochs_bios_init(AddressSpace *as, PCMachineState *pcms)
     for (i = 0; i < max_cpus; i++) {
         unsigned int apic_id = x86_cpu_apic_id_from_index(i);
         assert(apic_id < pcms->apic_id_limit);
-        for (j = 0; j < nb_numa_nodes; j++) {
-            if (test_bit(i, numa_info[j].node_cpu)) {
-                numa_fw_cfg[apic_id + 1] = cpu_to_le64(j);
-                break;
-            }
+        j = numa_get_node_for_cpu(i);
+        if (j != -1) {
+            numa_fw_cfg[apic_id + 1] = cpu_to_le64(j);
         }
     }
     for (i = 0; i < nb_numa_nodes; i++) {
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index a384db5..9778094 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -69,11 +69,9 @@ void spapr_cpu_init(sPAPRMachineState *spapr, PowerPCCPU *cpu, Error **errp)
     }
 
     /* Set NUMA node for the added CPUs  */
-    for (i = 0; i < nb_numa_nodes; i++) {
-        if (test_bit(cs->cpu_index, numa_info[i].node_cpu)) {
+    i = numa_get_node_for_cpu(cs->cpu_index);
+    if (i != -1) {
             cs->numa_node = i;
-            break;
-        }
     }
 
     xics_cpu_setup(spapr->xics, cpu);
diff --git a/include/sysemu/numa.h b/include/sysemu/numa.h
index bb184c9..422eb33 100644
--- a/include/sysemu/numa.h
+++ b/include/sysemu/numa.h
@@ -32,4 +32,7 @@ void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node);
 void numa_unset_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node);
 uint32_t numa_get_node(ram_addr_t addr, Error **errp);
 
+/* on success returns node index in numa_info,
+ * on failure returns -1 */
+int numa_get_node_for_cpu(int idx);
 #endif
diff --git a/numa.c b/numa.c
index 572712c..f75d4a4 100644
--- a/numa.c
+++ b/numa.c
@@ -548,3 +548,15 @@ MemdevList *qmp_query_memdev(Error **errp)
     object_child_foreach(obj, query_memdev, &list);
     return list;
 }
+
+int numa_get_node_for_cpu(int idx)
+{
+    int i;
+
+    for (i = 0; i < nb_numa_nodes; i++) {
+        if (test_bit(idx, numa_info[i].node_cpu)) {
+            return i;
+        }
+    }
+    return -1;
+}
-- 
2.7.0

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

* [Qemu-devel] [PATCH v4 4/5] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled
  2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
                   ` (2 preceding siblings ...)
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 3/5] numa: reduce code duplication by adding helper numa_get_node_for_cpu() Igor Mammedov
@ 2016-07-04 15:51 ` Igor Mammedov
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 5/5] tests: acpi: extend cphp testcase with numa check Igor Mammedov
  2016-07-18  7:51 ` [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
  5 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2016-07-04 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, zhaoshenglong, david, mst

Workaround for long standing issue where Linux kernel
assigns hotplugged CPU to 1st numa node as it discards
proximity for possible CPUs from SRAT after it's parsed.

_PXM method allows linux query proximity directly from
hotplugged CPU object, which allows Linux to assing CPU
to the correct numa node.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
---
 hw/acpi/cpu.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index c13b65c..fefab11 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -4,6 +4,7 @@
 #include "qapi/error.h"
 #include "qapi-event.h"
 #include "trace.h"
+#include "sysemu/numa.h"
 
 #define ACPI_CPU_HOTPLUG_REG_LEN 12
 #define ACPI_CPU_SELECTOR_OFFSET_WR 0
@@ -503,6 +504,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
 
         /* build Processor object for each processor */
         for (i = 0; i < arch_ids->len; i++) {
+            int j;
             Aml *dev;
             Aml *uid = aml_int(i);
             GArray *madt_buf = g_array_new(0, 1, 1);
@@ -546,6 +548,16 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
                           aml_arg(1), aml_arg(2))
             );
             aml_append(dev, method);
+
+            /* Linux guests discard SRAT info for non-present CPUs
+             * as a result _PXM is required for all CPUs which might
+             * be hot-plugged. For simplicity, add it for all CPUs.
+             */
+            j = numa_get_node_for_cpu(i);
+            if (j != -1) {
+                aml_append(dev, aml_name_decl("_PXM", aml_int(j)));
+            }
+
             aml_append(cpus_dev, dev);
         }
     }
-- 
2.7.0

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

* [Qemu-devel] [PATCH v4 5/5] tests: acpi: extend cphp testcase with numa check
  2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
                   ` (3 preceding siblings ...)
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 4/5] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled Igor Mammedov
@ 2016-07-04 15:51 ` Igor Mammedov
  2016-07-18  7:51 ` [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
  5 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2016-07-04 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, zhaoshenglong, david, mst

so it would be possible to verify _PXM generation in
DSDT and SRAT tables.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
---
NOTE to maintainer:

following table blobs should be updated/added in git tree as part
of this commit after running
./tests/acpi-test-data/rebuild-expected-aml.sh

tests/acpi-test-data/q35/DSDT.cphp
tests/acpi-test-data/pc/DSDT.cphp

new tables
tests/acpi-test-data/pc/SRAT.cphp
tests/acpi-test-data/q35/SRAT.cphp
---
 tests/bios-tables-test.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index de4019e..3796089 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -809,7 +809,8 @@ static void test_acpi_piix4_tcg_cphp(void)
     data.machine = MACHINE_PC;
     data.variant = ".cphp";
     test_acpi_one("-machine accel=tcg"
-                  " -smp 2,cores=3,sockets=2,maxcpus=6",
+                  " -smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -numa node -numa node",
                   &data);
     free_test_data(&data);
 }
@@ -822,7 +823,8 @@ static void test_acpi_q35_tcg_cphp(void)
     data.machine = MACHINE_Q35;
     data.variant = ".cphp";
     test_acpi_one("-machine q35,accel=tcg"
-                  " -smp 2,cores=3,sockets=2,maxcpus=6",
+                  " -smp 2,cores=3,sockets=2,maxcpus=6"
+                  " -numa node -numa node",
                   &data);
     free_test_data(&data);
 }
-- 
2.7.0

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

* Re: [Qemu-devel] [PATCH v4 3/5] numa: reduce code duplication by adding helper numa_get_node_for_cpu()
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 3/5] numa: reduce code duplication by adding helper numa_get_node_for_cpu() Igor Mammedov
@ 2016-07-05  1:09   ` Shannon Zhao
  0 siblings, 0 replies; 9+ messages in thread
From: Shannon Zhao @ 2016-07-05  1:09 UTC (permalink / raw)
  To: Igor Mammedov, qemu-devel; +Cc: marcel, peter.maydell, david, mst



On 2016/7/4 23:51, Igor Mammedov wrote:
> Replace repeated pattern
> 
>     for (i = 0; i < nb_numa_nodes; i++) {
>         if (test_bit(idx, numa_info[i].node_cpu)) {
>            ...
>            break;
> 
> with a helper function to lookup numa node index for cpu.
> 
> Suggested-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org>

-- 
Shannon

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

* Re: [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs
  2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
                   ` (4 preceding siblings ...)
  2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 5/5] tests: acpi: extend cphp testcase with numa check Igor Mammedov
@ 2016-07-18  7:51 ` Igor Mammedov
  2016-07-27  9:28   ` Igor Mammedov
  5 siblings, 1 reply; 9+ messages in thread
From: Igor Mammedov @ 2016-07-18  7:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, david, mst, zhaoshenglong

On Mon,  4 Jul 2016 17:51:14 +0200
Igor Mammedov <imammedo@redhat.com> wrote:

Ping,

Michael,
it seems that series fell through cracks,
could you pick it up please?

> Changelog:
> v3->v4:
>   - return -1 on failure from numa_get_node_for_cpu()
>   - replace SRAT table blob in 5/5 with note to maintainer to add it manually
> v1->v3:
>   - fix commit message for 4/5
>   - add numa_get_node_for_cpu() helper
>   - add comment in code explaining why _PXM is being added
> 
> Series adds acpi tables tests for CPU hotplug and
> makes hotplugged CPUs assigned to correct numa nodes for Linux guests
>  + extends CPU hotplug test with numa options
> 
> Igor Mammedov (5):
>   tests: acpi: add CPU hotplug testcase
>   tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs
>   numa: reduce code duplication by adding helper numa_get_node_for_cpu()
>   acpi: provide _PXM method for CPU devices if QEMU is started numa
>     enabled
>   tests: acpi: extend cphp testcase with numa check
> 
>  hw/acpi/cpu.c                      |  12 ++++++++++++
>  hw/arm/virt-acpi-build.c           |   6 ++----
>  hw/arm/virt.c                      |   7 +++----
>  hw/i386/acpi-build.c               |   7 ++-----
>  hw/i386/pc.c                       |   8 +++-----
>  hw/ppc/spapr_cpu_core.c            |   6 ++----
>  include/sysemu/numa.h              |   3 +++
>  numa.c                             |  12 ++++++++++++
>  tests/acpi-test-data/pc/APIC.cphp  | Bin 0 -> 160 bytes
>  tests/acpi-test-data/pc/DSDT.cphp  | Bin 0 -> 6435 bytes
>  tests/acpi-test-data/q35/APIC.cphp | Bin 0 -> 160 bytes
>  tests/acpi-test-data/q35/DSDT.cphp | Bin 0 -> 9197 bytes
>  tests/bios-tables-test.c           |  30 ++++++++++++++++++++++++++++++
>  13 files changed, 69 insertions(+), 22 deletions(-)
>  create mode 100644 tests/acpi-test-data/pc/APIC.cphp
>  create mode 100644 tests/acpi-test-data/pc/DSDT.cphp
>  create mode 100644 tests/acpi-test-data/q35/APIC.cphp
>  create mode 100644 tests/acpi-test-data/q35/DSDT.cphp
> 

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

* Re: [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs
  2016-07-18  7:51 ` [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
@ 2016-07-27  9:28   ` Igor Mammedov
  0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2016-07-27  9:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, peter.maydell, mst, zhaoshenglong, david

On Mon, 18 Jul 2016 09:51:01 +0200
Igor Mammedov <imammedo@redhat.com> wrote:

> On Mon,  4 Jul 2016 17:51:14 +0200
> Igor Mammedov <imammedo@redhat.com> wrote:
> 
> Ping,
> 
> Michael,
> it seems that series fell through cracks,
> could you pick it up please?
v2 ping


> 
> > Changelog:
> > v3->v4:
> >   - return -1 on failure from numa_get_node_for_cpu()
> >   - replace SRAT table blob in 5/5 with note to maintainer to add it manually
> > v1->v3:
> >   - fix commit message for 4/5
> >   - add numa_get_node_for_cpu() helper
> >   - add comment in code explaining why _PXM is being added
> > 
> > Series adds acpi tables tests for CPU hotplug and
> > makes hotplugged CPUs assigned to correct numa nodes for Linux guests
> >  + extends CPU hotplug test with numa options
> > 
> > Igor Mammedov (5):
> >   tests: acpi: add CPU hotplug testcase
> >   tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs
> >   numa: reduce code duplication by adding helper numa_get_node_for_cpu()
> >   acpi: provide _PXM method for CPU devices if QEMU is started numa
> >     enabled
> >   tests: acpi: extend cphp testcase with numa check
> > 
> >  hw/acpi/cpu.c                      |  12 ++++++++++++
> >  hw/arm/virt-acpi-build.c           |   6 ++----
> >  hw/arm/virt.c                      |   7 +++----
> >  hw/i386/acpi-build.c               |   7 ++-----
> >  hw/i386/pc.c                       |   8 +++-----
> >  hw/ppc/spapr_cpu_core.c            |   6 ++----
> >  include/sysemu/numa.h              |   3 +++
> >  numa.c                             |  12 ++++++++++++
> >  tests/acpi-test-data/pc/APIC.cphp  | Bin 0 -> 160 bytes
> >  tests/acpi-test-data/pc/DSDT.cphp  | Bin 0 -> 6435 bytes
> >  tests/acpi-test-data/q35/APIC.cphp | Bin 0 -> 160 bytes
> >  tests/acpi-test-data/q35/DSDT.cphp | Bin 0 -> 9197 bytes
> >  tests/bios-tables-test.c           |  30 ++++++++++++++++++++++++++++++
> >  13 files changed, 69 insertions(+), 22 deletions(-)
> >  create mode 100644 tests/acpi-test-data/pc/APIC.cphp
> >  create mode 100644 tests/acpi-test-data/pc/DSDT.cphp
> >  create mode 100644 tests/acpi-test-data/q35/APIC.cphp
> >  create mode 100644 tests/acpi-test-data/q35/DSDT.cphp
> >   
> 
> 

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

end of thread, other threads:[~2016-07-27  9:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-04 15:51 [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 1/5] tests: acpi: add CPU hotplug testcase Igor Mammedov
2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 2/5] tests: DO NOT APPLY: add APIC.cphp and DSDT.cphp blobs Igor Mammedov
2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 3/5] numa: reduce code duplication by adding helper numa_get_node_for_cpu() Igor Mammedov
2016-07-05  1:09   ` Shannon Zhao
2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 4/5] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled Igor Mammedov
2016-07-04 15:51 ` [Qemu-devel] [PATCH v4 5/5] tests: acpi: extend cphp testcase with numa check Igor Mammedov
2016-07-18  7:51 ` [Qemu-devel] [PATCH v4 0/5] fix numa node mapping for hotplugged CPUs Igor Mammedov
2016-07-27  9:28   ` Igor Mammedov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.