On 1/28/22 19:54, Claudio Imbrenda wrote:
On s390x there are no guarantees about the CPU addresses, except that they shall be unique. This means that in some environments, it's possible that there is no match between the CPU address and its position (index) in the list of available CPUs returned by the system.
While I support this patch set I've yet to find an environment where this gave me headaches.
This series fixes a small bug in the SMP initialization code, adds a guarantee that the boot CPU will always have index 0, and introduces some functions to allow tests to use CPU indexes instead of using hardcoded CPU addresses. This will allow the tests to run successfully in more environments (e.g. z/VM, LPAR).
I'm wondering if we should do it the other way round and make the smp_* functions take a idx instead of a cpu addr. The only instance where this gets a bit ugly is the sigp calls which we would also need to convert.
Some existing tests are adapted to take advantage of the new functionalities. Claudio Imbrenda (5): lib: s390x: smp: add functions to work with CPU indexes lib: s390x: smp: guarantee that boot CPU has index 0 s390x: smp: avoid hardcoded CPU addresses s390x: firq: avoid hardcoded CPU addresses s390x: skrf: avoid hardcoded CPU addresses lib/s390x/smp.h | 2 ++ lib/s390x/smp.c | 28 ++++++++++++----- s390x/firq.c | 17 +++++----- s390x/skrf.c | 8 +++-- s390x/smp.c | 83 ++++++++++++++++++++++++++----------------------- 5 files changed, 79 insertions(+), 59 deletions(-)