lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260108053212.642478-1-changwoo@igalia.com>
Date: Thu,  8 Jan 2026 14:32:08 +0900
From: Changwoo Min <changwoo@...lia.com>
To: lukasz.luba@....com,
	rafael@...nel.org,
	donald.hunter@...il.com,
	kuba@...nel.org,
	davem@...emloft.net,
	edumazet@...gle.com,
	pabeni@...hat.com,
	horms@...nel.org,
	lenb@...nel.org,
	pavel@...nel.org,
	changwoo@...lia.com
Cc: kernel-dev@...lia.com,
	linux-pm@...r.kernel.org,
	netdev@...r.kernel.org,
	sched-ext@...ts.linux.dev,
	linux-kernel@...r.kernel.org
Subject: [PATCH v2 for 6.19 0/4] Revise the EM YNL spec to be clearer

This patch set addresses all the concerns raised at [1] to make the EM YNL spec
clearer. It includes the following changes:

- Fix the lint errors (1/4). 
- Rename em.yaml to dev-energymodel.yaml (2/4).  “dev-energymodel” was used
  instead of “device-energy-model”, which was originally proposed [2], because
  the netlink protocol name cannot exceed GENL_NAMSIZ(16). In addition, docs
  strings and flags attributes were added.
- Change cpus' type from string to u64 array of CPU ids (3/4).
- Add dump to get-perf-domains in the EM YNL spec (4/4). A user can fetch
  either information about a specific performance domain with do or information
  about all performance domains with dump. 

ChangeLog v1 -> v2:
- Remove perf-domains in the YNL spec, as do and dump of get-perf-domains
  share the reply format using perf-domain-attrs (4/4).
- Add example outputs of get-perf-domains and get-perf-table for ease of
  understanding (cover letter).

This can be tested using the tool, tools/net/ynl/pyynl/cli.py, for example,
with the following commands:

  $> tools/net/ynl/pyynl/cli.py \
     --spec Documentation/netlink/specs/dev-energymodel.yaml \
     --dump get-perf-domains

    > [{'cpus': [0, 1],                                                                     
    >   'flags': {'perf-domain-skip-inefficiencies', 'perf-domain-microwatts'},             
    >   'perf-domain-id': 0},                                                               
    >  {'cpus': [2, 3, 4], 'flags': {'perf-domain-microwatts'}, 'perf-domain-id': 1},       
    >  {'cpus': [5, 6], 'flags': {'perf-domain-microwatts'}, 'perf-domain-id': 2},          
    >  {'cpus': [7], 'flags': {'perf-domain-microwatts'}, 'perf-domain-id': 3}] 

  $> tools/net/ynl/pyynl/cli.py \
     --spec Documentation/netlink/specs/dev-energymodel.yaml \
     --do get-perf-domains --json '{"perf-domain-id": 0}'

    > {'cpus': [0, 1],                                                                    
    >  'flags': {'perf-domain-skip-inefficiencies', 'perf-domain-microwatts'},            
    >  'perf-domain-id': 0}

  $> tools/net/ynl/pyynl/cli.py \
     --spec Documentation/netlink/specs/dev-energymodel.yaml \
     --do get-perf-table --json '{"perf-domain-id": 0}'

    > {'perf-domain-id': 0,                                                               
    >  'perf-state': [{'cost': 2984,                                                      
    >                  'flags': {'perf-state-inefficient'},                               
    >                  'frequency': 364800,                                               
    >                  'performance': 34,                                                 
    >                  'power': 10147},                
    >                                                                                                    
    >                 ...
    >                 
    >                 {'cost': 6982,
    >                  'flags': set(),
    >                  'frequency': 2265600,
    >                  'performance': 216,
    >                  'power': 150816}]}

  $> tools/net/ynl/pyynl/cli.py \
     --spec Documentation/netlink/specs/dev-energymodel.yaml \
     --subscribe event  --sleep 10

[1] https://lore.kernel.org/lkml/CAD4GDZy-aeWsiY=-ATr+Y4PzhMX71DFd_mmdMk4rxn3YG8U5GA@mail.gmail.com/
[2] https://lore.kernel.org/lkml/CAJZ5v0gpYQwC=1piaX-PNoyeoYJ7uw=DtAGdTVEXAsi4bnSdbA@mail.gmail.com/

Changwoo Min (4):
  PM: EM: Fix yamllint warnings in the EM YNL spec
  PM: EM: Rename em.yaml to dev-energymodel.yaml
  PM: EM: Change cpus' type from string to u64 array in the EM YNL spec
  PM: EM: Add dump to get-perf-domains in the EM YNL spec

 .../netlink/specs/dev-energymodel.yaml        | 175 ++++++++++++++
 Documentation/netlink/specs/em.yaml           | 113 ----------
 MAINTAINERS                                   |   8 +-
 include/uapi/linux/dev_energymodel.h          |  82 +++++++
 include/uapi/linux/energy_model.h             |  63 ------
 kernel/power/em_netlink.c                     | 213 ++++++++++++------
 kernel/power/em_netlink_autogen.c             |  58 +++--
 kernel/power/em_netlink_autogen.h             |  22 +-
 8 files changed, 449 insertions(+), 285 deletions(-)
 create mode 100644 Documentation/netlink/specs/dev-energymodel.yaml
 delete mode 100644 Documentation/netlink/specs/em.yaml
 create mode 100644 include/uapi/linux/dev_energymodel.h
 delete mode 100644 include/uapi/linux/energy_model.h

-- 
2.52.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ