Message ID | 20240118121542.748351-3-maobibo@loongson.cn (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | irqchip/loongson-eiointc: Refine irq affinity setting during resume | expand |
I can give an Acked-by if these lines are also removed in our internal repo. Huacai On Thu, Jan 18, 2024 at 8:15 PM Bibo Mao <maobibo@loongson.cn> wrote: > > During suspend and resume, CPUs except CPU0 are hot-unpluged and IRQs > are migrated to CPU0. So it is not necessary to restore irq affinity for > eiointc irq controller when system resumes. This patch removes the piece > of code about irq affinity restoring in function eiointc_resume. > > Signed-off-by: Bibo Mao <maobibo@loongson.cn> > --- > drivers/irqchip/irq-loongson-eiointc.c | 16 ---------------- > 1 file changed, 16 deletions(-) > > diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c > index 6143adb1b73b..86f4faad0695 100644 > --- a/drivers/irqchip/irq-loongson-eiointc.c > +++ b/drivers/irqchip/irq-loongson-eiointc.c > @@ -315,23 +315,7 @@ static int eiointc_suspend(void) > > static void eiointc_resume(void) > { > - int i, j; > - struct irq_desc *desc; > - struct irq_data *irq_data; > - > eiointc_router_init(0); > - > - for (i = 0; i < nr_pics; i++) { > - for (j = 0; j < eiointc_priv[0]->vec_count; j++) { > - desc = irq_resolve_mapping(eiointc_priv[i]->eiointc_domain, j); > - if (desc && desc->handle_irq && desc->handle_irq != handle_bad_irq) { > - raw_spin_lock(&desc->lock); > - irq_data = irq_domain_get_irq_data(eiointc_priv[i]->eiointc_domain, irq_desc_get_irq(desc)); > - eiointc_set_irq_affinity(irq_data, irq_data->common->affinity, 0); > - raw_spin_unlock(&desc->lock); > - } > - } > - } > } > > static struct syscore_ops eiointc_syscore_ops = { > -- > 2.39.3 >
My work area is hypervisor and I find gaps between other architectures and hypervisors, try to keep up. And We prepare to provide eiointc virtualization extension patch, so there is such patch. For internal repo, you can give suggestion in internal forum to driver owner. This is linux kernel mainline forum, I suggest we had better discuss patch based on mainline base code. Regards Bibo Mao On 2024/1/24 下午5:56, Huacai Chen wrote: > I can give an Acked-by if these lines are also removed in our internal repo. > > Huacai > > On Thu, Jan 18, 2024 at 8:15 PM Bibo Mao <maobibo@loongson.cn> wrote: >> >> During suspend and resume, CPUs except CPU0 are hot-unpluged and IRQs >> are migrated to CPU0. So it is not necessary to restore irq affinity for >> eiointc irq controller when system resumes. This patch removes the piece >> of code about irq affinity restoring in function eiointc_resume. >> >> Signed-off-by: Bibo Mao <maobibo@loongson.cn> >> --- >> drivers/irqchip/irq-loongson-eiointc.c | 16 ---------------- >> 1 file changed, 16 deletions(-) >> >> diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c >> index 6143adb1b73b..86f4faad0695 100644 >> --- a/drivers/irqchip/irq-loongson-eiointc.c >> +++ b/drivers/irqchip/irq-loongson-eiointc.c >> @@ -315,23 +315,7 @@ static int eiointc_suspend(void) >> >> static void eiointc_resume(void) >> { >> - int i, j; >> - struct irq_desc *desc; >> - struct irq_data *irq_data; >> - >> eiointc_router_init(0); >> - >> - for (i = 0; i < nr_pics; i++) { >> - for (j = 0; j < eiointc_priv[0]->vec_count; j++) { >> - desc = irq_resolve_mapping(eiointc_priv[i]->eiointc_domain, j); >> - if (desc && desc->handle_irq && desc->handle_irq != handle_bad_irq) { >> - raw_spin_lock(&desc->lock); >> - irq_data = irq_domain_get_irq_data(eiointc_priv[i]->eiointc_domain, irq_desc_get_irq(desc)); >> - eiointc_set_irq_affinity(irq_data, irq_data->common->affinity, 0); >> - raw_spin_unlock(&desc->lock); >> - } >> - } >> - } >> } >> >> static struct syscore_ops eiointc_syscore_ops = { >> -- >> 2.39.3 >>
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c index 6143adb1b73b..86f4faad0695 100644 --- a/drivers/irqchip/irq-loongson-eiointc.c +++ b/drivers/irqchip/irq-loongson-eiointc.c @@ -315,23 +315,7 @@ static int eiointc_suspend(void) static void eiointc_resume(void) { - int i, j; - struct irq_desc *desc; - struct irq_data *irq_data; - eiointc_router_init(0); - - for (i = 0; i < nr_pics; i++) { - for (j = 0; j < eiointc_priv[0]->vec_count; j++) { - desc = irq_resolve_mapping(eiointc_priv[i]->eiointc_domain, j); - if (desc && desc->handle_irq && desc->handle_irq != handle_bad_irq) { - raw_spin_lock(&desc->lock); - irq_data = irq_domain_get_irq_data(eiointc_priv[i]->eiointc_domain, irq_desc_get_irq(desc)); - eiointc_set_irq_affinity(irq_data, irq_data->common->affinity, 0); - raw_spin_unlock(&desc->lock); - } - } - } } static struct syscore_ops eiointc_syscore_ops = {
During suspend and resume, CPUs except CPU0 are hot-unpluged and IRQs are migrated to CPU0. So it is not necessary to restore irq affinity for eiointc irq controller when system resumes. This patch removes the piece of code about irq affinity restoring in function eiointc_resume. Signed-off-by: Bibo Mao <maobibo@loongson.cn> --- drivers/irqchip/irq-loongson-eiointc.c | 16 ---------------- 1 file changed, 16 deletions(-)