[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <79ec0069-553b-cac1-5ec7-d68c757619a5@roeck-us.net>
Date: Mon, 5 Jul 2021 11:23:27 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Marc Zyngier <maz@...nel.org>
Cc: linux-kernel@...r.kernel.org, tglx@...utronix.de
Subject: Re: [irqchip: irq/irqchip-next] irqdomain: Protect the linear revmap
with RCU
Hi Marc,
On 7/5/21 11:01 AM, Marc Zyngier wrote:
> Hi Guenter,
>
> On Mon, 05 Jul 2021 18:23:52 +0100,
> Guenter Roeck <linux@...ck-us.net> wrote:
>>
>> Hi,
>>
>> On Fri, Jun 11, 2021 at 01:54:36PM -0000, irqchip-bot for Marc Zyngier wrote:
>>> The following commit has been merged into the irq/irqchip-next branch of irqchip:
>>>
>>> Commit-ID: d4a45c68dc81f9117ceaff9f058d5fae674181b9
>>> Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/d4a45c68dc81f9117ceaff9f058d5fae674181b9
>>> Author: Marc Zyngier <maz@...nel.org>
>>> AuthorDate: Mon, 05 Apr 2021 12:57:27 +01:00
>>> Committer: Marc Zyngier <maz@...nel.org>
>>> CommitterDate: Thu, 10 Jun 2021 13:09:18 +01:00
>>>
>>> irqdomain: Protect the linear revmap with RCU
>>>
>>> It is pretty odd that the radix tree uses RCU while the linear
>>> portion doesn't, leading to potential surprises for the users,
>>> depending on how the irqdomain has been created.
>>>
>>> Fix this by moving the update of the linear revmap under
>>> the mutex, and the lookup under the RCU read-side lock.
>>>
>>> The mutex name is updated to reflect that it doesn't only
>>> cover the radix-tree anymore.
>>>
>>> Signed-off-by: Marc Zyngier <maz@...nel.org>
>>
>> This patch results in various RCU warnings when booting mipsel images
>> in qemu. I can not revert the patch due to subsequent changes, so I
>> don't know if a simple revert fixes the problem. Log messages and
>> bisect log see below.
>
> Thanks for the heads up. Do you have a config file I can use to
> reproduce this? The QEMU invocation runes would certainly help too.
>
> It strikes me that in drivers/irqchip/irq-mips-cpu.c,
> plat_irq_dispatch() now uses the irqdomain resolution before
> irq_enter() took place. That's certainly a latent bug. I'll fix that
> regardless, but I'd like to make sure this is what you are seeing too.
>
See http://server.roeck-us.net/qemu/mipsel/
config Complete configuration file
defconfig Shortened configuration file
rootfs.cpio root file system (initrd)
run.sh qemu run script (tested with qemu 4.2.1 and 6.0.0)
vmlinux Kernel image experiencing the problem (v5.13-9883-gaf9efb8b661)
Hope this helps,
Guenter
Powered by blists - more mailing lists