From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Pavel Machek <pavel@ucw.cz>
Cc: "Marek Behún" <kabel@kernel.org>,
linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org,
linuxarm@huawei.com, mauro.chehab@huawei.com,
gregkh@linuxfoundation.org
Subject: Re: [PATCH v2 16/17] leds: leds-nuc: add support for changing the ethernet type indicator
Date: Fri, 28 May 2021 13:24:26 +0200 [thread overview]
Message-ID: <20210528132426.5d18565e@coco.lan> (raw)
In-Reply-To: <20210526144751.GA2141@amd>
Em Wed, 26 May 2021 16:47:51 +0200
Pavel Machek <pavel@ucw.cz> escreveu:
> Hi!
>
> > > > See, there's nothing that the driver can possible do with
> > > > rx, tx, link, interval, device_name/device, as the the BIOS allows
> > > > to set to "LAN1", "LAN2" or "LAN1+LAN2". the WMI interface doesn't
> > > > provide *any* information about what LAN1 means.
> > >
> > > On the contrary, there is something the driver can do with these
> > > attributes. If the specific combination is not supported, the driver
> > > should return -EOPNOTSUPP in the trigger_offload method and let the
> > > netdev trigger do the work in software.
> >
> > Letting netdev to trigger is something we don't want to allow, as this
> > can cause side effects, making it doing slow the system due to BIOS calls
> > for no good reason.
>
> I'm with Marek here. Please listen to him.
>
> Yes, operating LEDs can cost some CPU cycles. That's the case on most
> hardware. Yet we want to support most triggers on most hardware.
There are two separate things here:
1. a "normal" LED operation can indeed take some CPU cycles, specially
if done via an I2C bus. Yet, the Kernel will still be kept running.
A BIOS call means that the Kernel will remain interrupted until when
the BIOS decide to return control back to it. This affects all CPUs,
and not just the one that would be busy setting the LED.
So, it is not a matter of just wasting some CPU cycles, but, instead,
on potentially preventing all CPUs to run Kernel code, if the BIOS
decides to lock until it finishes the LED setting and decides to
return the control back to Linux.
In practice, depending on what workload is used, their real time
requirements, and what the BIOS does (which may vary from device
to device and on different BIOS versions) this could cause loses.
This will mainly affect Real Time (e. g. audio and video apps).
A realistic test would be to make the LED blink as fast as possible,
while a pro-Audio device using JACK outputs something using the
smallest possible delay and see if blinking the leds would cause
any audio issues.
While I'm not against allowing using a software-triggered
event, as this *can* cause userspace problems, IMO the user needs
to explicitly allow the usage of it and be aware when a software
trigger is used. Letting the LEDs core or driver to fallback
to software and cause disturbance at userspace doesn't sound right.
2. a netdev trigger monitors a different event than the hardware
event.
See, if we have something like:
LAN1 ----> eno1 ---> eno1.100 # VLAN 100 traffic at eno1
port |
+-> eno1.200 # VLAN 200 traffic at eno1
LAN2 ---> enp5s0 ---> enp5s0.100 # VLAN 100 traffic at enp5s0
port |
+-> enp5s0.200 # VLAN 200 traffic at enp5s0
The hardware triggered event monitors a group of physical interfaces,
e. g.:
- none
- LAN1
- LAN2
- both LAN1 and LAN2 (default)
The netdev trigger monitors software events at the network stack.
So, it can be set to monitor a single software representation of an
interface, e. g. it can monitor either:
- eno1
- enp5so
- eno1.100
- eno1.200
- enp5s0.100
- enp5so.200
It doesn't allow monitoring multiple interfaces at the same time.
So, it is not possible to monitor both eno1 and enp5so.
Also, even if it would be possible, what hardware detects could
be different than what the network stack detects.
On other words, even if we keep the BIOS default on front2 led
and set front3 led to netdev trigger for eno1 they will blink
differently, as one would be monitoring a single interface
and another one will monitor both.
It will even more different if netdev is set to monitor,
let's say, VLAN 100 traffic at eno1.100, while hw trigger
is set to LAN1+LAN2.
Thanks,
Mauro
next prev parent reply other threads:[~2021-05-28 11:24 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-18 15:08 [PATCH v2 00/17] Adding support for controlling the leds found on Intel NUC Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 01/17] docs: describe the API used to set NUC LEDs Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 02/17] leds: add support for NUC WMI LEDs Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 03/17] leds: leds-nuc: detect WMI API detection Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 04/17] leds: leds-nuc: add support for changing S0 brightness Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 05/17] leds: leds-nuc: add all types of brightness Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 06/17] leds: leds-nuc: allow changing the LED colors Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 07/17] leds: leds-nuc: add support for WMI API version 1.0 Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 08/17] leds: leds-nuc: add basic support for NUC6 WMI Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 09/17] leds: leds-nuc: add brightness and color for NUC6 API Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 10/17] leds: leds-nuc: Add support to blink behavior for NUC8/10 Mauro Carvalho Chehab
2021-05-19 7:58 ` Marek Behun
2021-05-19 10:09 ` Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 11/17] leds: leds-nuc: get rid of an unused variable Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 12/17] leds: leds-nuc: implement blink control for NUC6 Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 13/17] leds: leds-nuc: better detect NUC6/NUC7 devices Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 14/17] leds: leds-nuc: add support for HDD activity default Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 15/17] leds: leds-nuc: fix software blink behavior logic Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 16/17] leds: leds-nuc: add support for changing the ethernet type indicator Mauro Carvalho Chehab
2021-05-19 8:02 ` Marek Behún
2021-05-19 10:18 ` Mauro Carvalho Chehab
2021-05-19 12:11 ` Marek Behún
2021-05-19 14:24 ` Mauro Carvalho Chehab
2021-05-19 15:55 ` Marek Behún
2021-05-19 18:30 ` Mauro Carvalho Chehab
2021-05-20 11:00 ` Marek Behún
2021-05-20 16:00 ` Mauro Carvalho Chehab
2021-05-20 16:36 ` Marek Behún
2021-05-20 18:59 ` Mauro Carvalho Chehab
2021-05-20 20:07 ` Marek Behún
2021-05-21 9:14 ` Mauro Carvalho Chehab
2021-05-26 14:51 ` Pavel Machek
2021-05-28 11:33 ` Mauro Carvalho Chehab
2021-05-26 14:47 ` Pavel Machek
2021-05-28 11:24 ` Mauro Carvalho Chehab [this message]
2021-05-18 15:09 ` [PATCH v2 17/17] leds: leds-nuc: add support for changing the power limit scheme Mauro Carvalho Chehab
2021-05-19 11:11 ` [PATCH v2 00/17] Adding support for controlling the leds found on Intel NUC Pavel Machek
2021-05-19 12:15 ` Mauro Carvalho Chehab
2021-05-19 19:41 ` Pavel Machek
2021-05-19 23:07 ` Mauro Carvalho Chehab
2021-05-20 16:19 ` Marek Behún
2021-05-20 19:16 ` Mauro Carvalho Chehab
2021-05-20 19:43 ` Marek Behún
2021-05-21 9:57 ` Mauro Carvalho Chehab
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=20210528132426.5d18565e@coco.lan \
--to=mchehab+huawei@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=kabel@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=mauro.chehab@huawei.com \
--cc=pavel@ucw.cz \
/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).