linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).