------- Comment From <email address hidden> 2018-04-13 10:57 EDT-------
(In reply to comment #6)
> TL;DR I'd ask you to:
> - evaluate if a (much) simpler fix would be available
Yeah, I believe we can come up with something slightly simpler.
The kernel for 18.04 is 4.15, hence KVM supports setting the VSMT, and we
can drop all the patches that deal with kvmppc_smt_threads() != spapr->vsmt.
This means the following patches can be dropped from the backport:
and we also need to register dummy ICPs later, to "fix just the issue". This requires
to adapt lp-1763468-9-spapr-register-dummy-ICPs-later.patch to the fact that
xics_max_server_number() doesn't take arguments. The following does the trick:
------- Comment From <email address hidden> 2018-04-13 10:57 EDT-------
(In reply to comment #6)
> TL;DR I'd ask you to:
> - evaluate if a (much) simpler fix would be available
Yeah, I believe we can come up with something slightly simpler.
The kernel for 18.04 is 4.15, hence KVM supports setting the VSMT, and we smt_threads( ) != spapr->vsmt.
can drop all the patches that deal with kvmppc_
This means the following patches can be dropped from the backport:
lp-1763468- 1-spapr- Allow-some- cases-where- we-can- t-set-VSMT- mode-.patch 4-spapr- use-spapr- vsmt-to- compute- VCPU-ids. patch
lp-1763468-
These ones are cleanup and can be dropped:
lp-1763468- 5-spapr- move-VCPU- calculation- to-core- machine- code.patch 6-spapr- rename- spapr_vcpu_ id-to-spapr_ get_vcpu_ id.patch 7-spapr- consolidate- the-VCPU- id-numbering- logic-in- a-s.patch
lp-1763468-
lp-1763468-
This one fixes a regression from the above cleanup and can be dropped:
lp-1763468- 8-spapr- fix-missing- CPU-core- nodes-in- DT-when- running- .patch
But we still need to adjust the default VSMT value, so we want to keep these:
lp-1763468- 2-spapr- Adjust- default- VSMT-value- for-better- migration. patch 3-spapr- set-vsmt- to-MAX- 8-smp_threads. patch
lp-1763468-
and we also need to register dummy ICPs later, to "fix just the issue". This requires 9-spapr- register- dummy-ICPs- later.patch to the fact that server_ number( ) doesn't take arguments. The following does the trick:
to adapt lp-1763468-
xics_max_
perl -i -p -e 's/xics_ max_server_ number\ (spapr\ )/xics_ max_server_ number( )/' \ 9-spapr- register- dummy-ICPs- later.patch
lp-1763468-
So you end up with 3 patches and a nicer diffstat:
hw/ppc/spapr.c | 35 +++++++ +++++++ ++++++- ------- -------
1 file changed, 20 insertions(+), 15 deletions(-)
Is it enough for you to go forward ?