netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Linux regressions mailing list <regressions@lists.linux.dev>,
	Pavel Machek <pavel@ucw.cz>, Lee Jones <lee@kernel.org>,
	Linux LEDs <linux-leds@vger.kernel.org>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, johanneswueller@gmail.com,
	"Russell King (Oracle)" <linux@armlinux.org.uk>,
	Genes Lists <lists@sapience.com>
Subject: Re: Hung tasks due to a AB-BA deadlock between the leds_list_lock rwsem and the rtnl mutex
Date: Fri, 31 May 2024 14:54:43 +0200	[thread overview]
Message-ID: <01fc2e30-eafe-495c-a62d-402903fd3e2a@lunn.ch> (raw)
In-Reply-To: <618601d8-f82a-402f-bf7f-831671d3d83f@redhat.com>

> I actually have been looking at a ledtrig-netdev lockdep warning yesterday
> which I believe is the same thing. I'll include the lockdep trace below.
> 
> According to lockdep there indeed is a ABBA (ish) cyclic deadlock with
> the rtnl mutex vs led-triggers related locks. I believe that this problem
> may be a pre-existing problem but this now actually gets hit in kernels >=
> 6.9 because of commit 66601a29bb23 ("leds: class: If no default trigger is
> given, make hw_control trigger the default trigger"). Before that commit
> the "netdev" trigger would not be bound / set as phy LEDs trigger by default.
> 
> +Cc Heiner Kallweit who authored that commit.
> 
> The netdev trigger typically is not needed because the PHY LEDs are typically
> under hw-control and the netdev trigger even tries to leave things that way
> so setting it as the active trigger for the LED class device is basically
> a no-op. I guess the goal of that commit is correctly have the triggers
> file content reflect that the LED is controlled by a netdev and to allow
> changing the hw-control mode without the user first needing to set netdev
> as trigger before being able to change the mode.

It was not the intention that this triggers is loaded for all
systems. It should only be those that actually have LEDs which can be
controlled:

drivers/net/ethernet/realtek/r8169_leds.c:	led_cdev->hw_control_trigger = "netdev";
drivers/net/ethernet/realtek/r8169_leds.c:	led_cdev->hw_control_trigger = "netdev";
drivers/net/ethernet/intel/igc/igc_leds.c:	led_cdev->hw_control_trigger = "netdev";
drivers/net/dsa/qca/qca8k-leds.c:		port_led->cdev.hw_control_trigger = "netdev";
drivers/net/phy/phy_device.c:		cdev->hw_control_trigger = "netdev";

Reverting this patch does seem like a good way forward, but i would
also like to give Heiner a little bit of time to see if he has a quick
real fix.

     Andrew

  parent reply	other threads:[~2024-05-31 12:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-30 12:53 6.9.3 Hung tasks Genes Lists
2024-05-30 13:36 ` Genes Lists
2024-05-30 14:04   ` Russell King (Oracle)
2024-05-30 16:23     ` Genes Lists
2024-05-31  8:39     ` Hung tasks due to a AB-BA deadlock between the leds_list_lock rwsem and the rtnl mutex (was: 6.9.3 Hung tasks) Linux regression tracking (Thorsten Leemhuis)
2024-05-31  9:50       ` Hung tasks due to a AB-BA deadlock between the leds_list_lock rwsem and the rtnl mutex Hans de Goede
2024-05-31 10:22         ` Hans de Goede
2024-06-01 20:05           ` Hans de Goede
2024-05-31 11:55         ` Genes Lists
2024-05-31 12:54         ` Andrew Lunn [this message]
2024-05-31 13:11           ` Hans de Goede
2024-05-31 13:29             ` Andrew Lunn
2024-05-31 13:36               ` Hans de Goede
2024-06-06 12:01           ` Hans de Goede
2024-06-06 13:12             ` Andrew Lunn
2024-06-06 13:39               ` Jakub Kicinski
2024-06-06 14:25                 ` Genes Lists
2024-06-07 10:22                   ` Hans de Goede
2024-06-07 11:27                     ` Genes Lists
2024-06-07 10:19                 ` Hans de Goede
2024-06-24 19:57           ` Heiner Kallweit

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=01fc2e30-eafe-495c-a62d-402903fd3e2a@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hdegoede@redhat.com \
    --cc=hkallweit1@gmail.com \
    --cc=johanneswueller@gmail.com \
    --cc=kuba@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=lists@sapience.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pavel@ucw.cz \
    --cc=regressions@lists.linux.dev \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).