On Fri, Apr 16, 2021 at 06:02:16PM -0300, Daniel Henrique Barboza wrote: > The RTAS set-indicator call, when attempting to UNISOLATE a DRC that is > already UNISOLATED or CONFIGURED, returns RTAS_OK and does nothing else > for both QEMU and phyp. This gives us an opportunity to use this > behavior to signal the hypervisor layer when an error during device > removal happens, allowing it to do a proper error handling, while not > breaking QEMU/phyp implementations that don't have this support. > > This patch introduces this idea by unisolating all CPU DRCs that failed > to be removed by dlpar_cpu_remove_by_index(), when handling the > PSERIES_HP_ELOG_ID_DRC_INDEX event. This is being done for this event > only because its the only CPU removal event QEMU uses, and there's no > need at this moment to add this mechanism for phyp only code. > > Signed-off-by: Daniel Henrique Barboza <danielhb...@gmail.com>
Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> except... > --- > arch/powerpc/platforms/pseries/hotplug-cpu.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c > b/arch/powerpc/platforms/pseries/hotplug-cpu.c > index 12cbffd3c2e3..ed66895c2f51 100644 > --- a/arch/powerpc/platforms/pseries/hotplug-cpu.c > +++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c > @@ -802,8 +802,15 @@ int dlpar_cpu(struct pseries_hp_errorlog *hp_elog) > case PSERIES_HP_ELOG_ACTION_REMOVE: > if (hp_elog->id_type == PSERIES_HP_ELOG_ID_DRC_COUNT) > rc = dlpar_cpu_remove_by_count(count); > - else if (hp_elog->id_type == PSERIES_HP_ELOG_ID_DRC_INDEX) > + else if (hp_elog->id_type == PSERIES_HP_ELOG_ID_DRC_INDEX) { > rc = dlpar_cpu_remove_by_index(drc_index); > + /* Setting the isolation state of an > UNISOLATED/CONFIGURED > + * device to UNISOLATE is a no-op, but the hypervison > can typo here s/hypervison/hypervisor/ > + * use it as a hint that the cpu removal failed. > + */ > + if (rc) > + dlpar_unisolate_drc(drc_index); > + } > else > rc = -EINVAL; > break; -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature