[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 17/19] xen: don't free percpu areas during suspend
On 07.10.22 12:32, Mykyta Poturai wrote: From: Juergen Gross <jgross@xxxxxxxx> Instead of freeing percpu areas during suspend and allocating them again when resuming keep them. Only free an area in case a cpu didn't come up again when resuming. It should be noted that there is a potential change in behaviour as the percpu areas are no longer zeroed out during suspend/resume. While I have checked the called cpu notifier hooks to cope with that there might be some well hidden dependency on the previous behaviour. OTOH a component not registering itself for cpu down/up and expecting to see a zeroed percpu variable after suspend/resume is kind of broken already. And the opposite case, where a component is not registered to be called for cpu down/up and is not expecting a percpu variable suddenly to be zero due to suspend/resume is much more probable, especially as the suspend/resume functionality seems not to be tested that often. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> I can't remember having written this patch. The one I remember was for x86. Reviewed-by: Dario Faggioli <dfaggioli@xxxxxxxx> I doubt that, reasoning see above. Juergen --- xen/arch/arm/percpu.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xen/arch/arm/percpu.c b/xen/arch/arm/percpu.c index 25442c48fe..0642705544 100644 --- a/xen/arch/arm/percpu.c +++ b/xen/arch/arm/percpu.c @@ -58,10 +58,13 @@ static int cpu_percpu_callback( switch ( action ) { case CPU_UP_PREPARE: + if ( system_state != SYS_STATE_resume ) rc = init_percpu_area(cpu); break; case CPU_UP_CANCELED: case CPU_DEAD: + case CPU_RESUME_FAILED: + if ( system_state != SYS_STATE_suspend ) free_percpu_area(cpu); break; default: Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |