{"push_id":2915106539,"size":9,"distinct_size":9,"ref":"refs/heads/_9_9__imc_Use_pir_to_core_id___rather_than_cpu_get_core_index___mbox_master","head":"b89c291f23278597ce78e090885587d055138e0d","before":"59e2ad11ede8787f3270a6f4334db1b2b7934732","commits":[{"sha":"85222cc67f7e9490c8dd335ebd580828fa3ae307","author":{"name":"Ryan Grimm","email":"b82eecdfce19ef6c0125840b498d3afc6226dd31@linux.vnet.ibm.com"},"message":"Add basic P9 fused core support\n\nP9 cores can be configured into fused core mode where two core chiplets\nfunction as an 8-threaded, single core.  So, bump four to eight in boot_entry\nwhen in fused core mode and cpu_thread_count in init_boot_cpu.\n\nThe HID, AMOR, TSCR, RPR require the first active thread on that core chiplet\nto load the copy for that core chiplet.  So, send thread 1 of a fused core to\ninit_shared_sprs in boot_entry.\n\nThe code checks for fused core mode in the core thead state register and puts a\nfield in struct cpu_thread.  This flag is checked when updating the HID and in\nXIVE code when setting the special bar.\n\nFor XSCOM, the core ID is the non-fused EX.  So, create macros to arrange the\nbits.  It's fairly verbose but somewhat readable.\n\nThis was tested on a P9 ZZ with 16 fused cores and ran HTX for over 24 hours.\n\nSigned-off-by: Ryan Grimm <grimm@linux.vnet.ibm.com>\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/85222cc67f7e9490c8dd335ebd580828fa3ae307"},{"sha":"d6603a233c7742cbf09000f62773a1e4480f21c9","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"hdat: Workaround HostBoot bug with fused core\n\nThe TADA array is missing half of the secondary threads\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/d6603a233c7742cbf09000f62773a1e4480f21c9"},{"sha":"e03f708e696e67fd2ea70b1f16d5cbd8426dcc77","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"xive: Set the fused core mode properly\n\nSet or clear the fused core mode bit in the XIVE inits\nproperly. While HostBoot is supposed to do it, I prefer\nnot depending on it doing the right thing, since we already\nconfigure that register ourselves anyway.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/e03f708e696e67fd2ea70b1f16d5cbd8426dcc77"},{"sha":"7c4cc8da18cd298b30c7202f104c1532b8d46b5d","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"chip: Fix pir_to_thread_id for fused cores\n\npir_to_core_id() and pir_to_thread_id() are extensively\nused by the direct controls code and are expected to return\nthe \"normal\" (non-fused, aka EC) core/thread IDs.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/7c4cc8da18cd298b30c7202f104c1532b8d46b5d"},{"sha":"8a109a58e8cb4c11d6791b9db682fd5fd146927d","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"cpu: Keep track of the \"ec_primary\" in big core more\n\nThe \"EC\" primary is the primary thread of an EC, ie, the corresponding\nsmall core \"half\" of the big core where the thread resides.\n\nIt will be necessary for the direct controls to target the right\nhalf when doing special wakeups among others.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/8a109a58e8cb4c11d6791b9db682fd5fd146927d"},{"sha":"00cfb0c3f26e35d3d33ef706e8f46cab05a21210","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"direct-ctl: Use the EC primary for special wakeups\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/00cfb0c3f26e35d3d33ef706e8f46cab05a21210"},{"sha":"f6e70b69c77dabe51042ab002abb891846dbc88f","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"slw: Limit fused cores P9 to STOP0/1\n\nLinux doesn't know how to properly restore state on \"both halves\" of\na fused core, so limit ourselves to STOP states that don't require\nHV state restore for bare metal kernels (KVM is still broken) until\nwe add a new representation for STOP states.\n\nThe new representation will have per-state versioning so that we\ncan control their individual enablement based on whether the OS\nhas the necessary workarounds to make them work.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/f6e70b69c77dabe51042ab002abb891846dbc88f"},{"sha":"6a1eb9f8858e4f791d18d0b7bb2dd4b4a1aef3c7","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"cpu: Make cpu_get_core_index() return the fused core number\n\ncpu_get_core_index() currently uses pir_to_core_id() which returns\nan EC number always (ie, a small core number) even in fused core\nmode. This is inconsistent with cpu_get_thread_index() which returns\na thread within a fused core (0...7) on P9.\n\nSo let's make things consistent and document it.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/6a1eb9f8858e4f791d18d0b7bb2dd4b4a1aef3c7"},{"sha":"b89c291f23278597ce78e090885587d055138e0d","author":{"name":"Benjamin Herrenschmidt","email":"a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org"},"message":"imc: Use pir_to_core_id() rather than cpu_get_core_index()\n\nThe IMC HW targets HW ECs, not fused cores on P9\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>","distinct":true,"url":"https://api.github.com/repos/ruscur/skiboot/commits/b89c291f23278597ce78e090885587d055138e0d"}]}
{"actor":{"display_login":"ruscur"}}