From: Yang Yingliang <yangyingliang@huawei.com> To: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org> Cc: Yang Yingliang <yangyingliang@huawei.com>, Jiang Liu <jiang.liu@linux.intel.com>, Thomas Gleixner <tglx@linutronix.de>, "Marc Zyngier" <marc.zyngier@arm.com>, Mark Rutland <mark.rutland@arm.com>, "Will Deacon" <will.deacon@arm.com>, Russell King - ARM Linux <linux@arm.linux.org.uk>, Hanjun Guo <hanjun.guo@linaro.org> Subject: [RFC PATCH v3 0/3] arm/arm64: fix a migrating irq bug when hotplug cpu Date: Wed, 16 Sep 2015 11:58:24 +0800 [thread overview] Message-ID: <1442375907-11496-1-git-send-email-yangyingliang@huawei.com> (raw) ---- Changes in v3: - introduce config GENERIC_IRQ_MIGRATION for compiling migration.c - rename migrate_irqs in arch/ia64/kernel/irq.c to avoid compiling error Changes in v2: - use the exiting helper to set IRQD_MOVE_PCNTXT flag - use for_each_active_irq() instead of for_each_irq_desc() - add some warn messages when affinity is null or do set affinity failed ---- Hi All, There is a bug: When cpu is disabled, all irqs will be migratged to another cpu. In some cases, a new affinity is different, it needed to be coppied to irq's affinity. But if the type of irq is LPI, it's affinity will not be coppied because of irq_set_affinity's return value. As Marc and Will suggested, I refactor the arm/arm64 migrating interrupts code and fix the migrating irq bug while cpu is offline. I'm trying let the core code do the migrating interrupts matter. kernel/irq/migration.c depends on CONFIG_GENERIC_PENDING_IRQ, so I introduce config GENERIC_IRQ_MIGRATION for compiling migration.c. On ia64, there is a migrate_irqs() in arch/ia64/kernel/irq.c, rename it to avoid compiling error. With the above preparation, move the migrating interrupts code into kernel/irq/migration.c and fix the bug by using irq_do_set_affinity(). Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Russell King - ARM Linux <linux@arm.linux.org.uk> Cc: Hanjun Guo <hanjun.guo@linaro.org> Yang Yingliang (3): genirq: introduce CONFIG_GENERIC_IRQ_MIGRATION ia64: rename migrate_irqs() to avoid compiling error arm/arm64: fix a migrating irq bug when hotplug cpu arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/arm/include/asm/irq.h | 1 - arch/arm/kernel/irq.c | 62 ---------------------------------------- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/irq.h | 1 - arch/arm64/kernel/irq.c | 62 ---------------------------------------- arch/hexagon/Kconfig | 1 + arch/ia64/Kconfig | 1 + arch/ia64/kernel/irq.c | 4 +-- arch/tile/Kconfig | 1 + arch/x86/Kconfig | 1 + include/linux/irq.h | 4 +++ kernel/irq/Kconfig | 4 +++ kernel/irq/Makefile | 2 +- kernel/irq/migration.c | 68 ++++++++++++++++++++++++++++++++++++++++++++ 16 files changed, 86 insertions(+), 129 deletions(-) -- 2.5.0
WARNING: multiple messages have this Message-ID (diff)
From: yangyingliang@huawei.com (Yang Yingliang) To: linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH v3 0/3] arm/arm64: fix a migrating irq bug when hotplug cpu Date: Wed, 16 Sep 2015 11:58:24 +0800 [thread overview] Message-ID: <1442375907-11496-1-git-send-email-yangyingliang@huawei.com> (raw) ---- Changes in v3: - introduce config GENERIC_IRQ_MIGRATION for compiling migration.c - rename migrate_irqs in arch/ia64/kernel/irq.c to avoid compiling error Changes in v2: - use the exiting helper to set IRQD_MOVE_PCNTXT flag - use for_each_active_irq() instead of for_each_irq_desc() - add some warn messages when affinity is null or do set affinity failed ---- Hi All, There is a bug: When cpu is disabled, all irqs will be migratged to another cpu. In some cases, a new affinity is different, it needed to be coppied to irq's affinity. But if the type of irq is LPI, it's affinity will not be coppied because of irq_set_affinity's return value. As Marc and Will suggested, I refactor the arm/arm64 migrating interrupts code and fix the migrating irq bug while cpu is offline. I'm trying let the core code do the migrating interrupts matter. kernel/irq/migration.c depends on CONFIG_GENERIC_PENDING_IRQ, so I introduce config GENERIC_IRQ_MIGRATION for compiling migration.c. On ia64, there is a migrate_irqs() in arch/ia64/kernel/irq.c, rename it to avoid compiling error. With the above preparation, move the migrating interrupts code into kernel/irq/migration.c and fix the bug by using irq_do_set_affinity(). Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Russell King - ARM Linux <linux@arm.linux.org.uk> Cc: Hanjun Guo <hanjun.guo@linaro.org> Yang Yingliang (3): genirq: introduce CONFIG_GENERIC_IRQ_MIGRATION ia64: rename migrate_irqs() to avoid compiling error arm/arm64: fix a migrating irq bug when hotplug cpu arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/arm/include/asm/irq.h | 1 - arch/arm/kernel/irq.c | 62 ---------------------------------------- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/irq.h | 1 - arch/arm64/kernel/irq.c | 62 ---------------------------------------- arch/hexagon/Kconfig | 1 + arch/ia64/Kconfig | 1 + arch/ia64/kernel/irq.c | 4 +-- arch/tile/Kconfig | 1 + arch/x86/Kconfig | 1 + include/linux/irq.h | 4 +++ kernel/irq/Kconfig | 4 +++ kernel/irq/Makefile | 2 +- kernel/irq/migration.c | 68 ++++++++++++++++++++++++++++++++++++++++++++ 16 files changed, 86 insertions(+), 129 deletions(-) -- 2.5.0
next reply other threads:[~2015-09-16 4:02 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-09-16 3:58 Yang Yingliang [this message] 2015-09-16 3:58 ` [RFC PATCH v3 0/3] arm/arm64: fix a migrating irq bug when hotplug cpu Yang Yingliang 2015-09-16 3:58 ` [RFC PATCH v3 1/3] genirq: introduce CONFIG_GENERIC_IRQ_MIGRATION Yang Yingliang 2015-09-16 3:58 ` Yang Yingliang 2015-09-16 8:13 ` Thomas Gleixner 2015-09-16 8:13 ` Thomas Gleixner 2015-09-16 11:07 ` Yang Yingliang 2015-09-16 11:07 ` Yang Yingliang 2015-09-16 3:58 ` [RFC PATCH v3 2/3] ia64: rename migrate_irqs() to avoid compiling error Yang Yingliang 2015-09-16 3:58 ` Yang Yingliang 2015-09-16 8:21 ` Thomas Gleixner 2015-09-16 8:21 ` Thomas Gleixner 2015-09-16 11:13 ` Yang Yingliang 2015-09-16 11:13 ` Yang Yingliang 2015-09-16 3:58 ` [RFC PATCH v3 3/3] arm/arm64: fix a migrating irq bug when hotplug cpu Yang Yingliang 2015-09-16 3:58 ` Yang Yingliang 2015-09-16 8:21 ` Thomas Gleixner 2015-09-16 8:21 ` Thomas Gleixner 2015-09-16 11:15 ` Yang Yingliang 2015-09-16 11:15 ` Yang Yingliang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1442375907-11496-1-git-send-email-yangyingliang@huawei.com \ --to=yangyingliang@huawei.com \ --cc=hanjun.guo@linaro.org \ --cc=jiang.liu@linux.intel.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=marc.zyngier@arm.com \ --cc=mark.rutland@arm.com \ --cc=tglx@linutronix.de \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.