Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  root_domains_dump.py   Sprache: Python

 
#!/usr/bin/env drgn
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2025 Juri Lelli <juri.lelli@redhat.com>
# Copyright (C) 2025 Red Hat, Inc.

desc = """
This is a drgn script to show the current root domains configuration. For more
info on drgn, visit https://github.com/osandov/drgn.

Root domains are only printed once, as multiple CPUs might be attached to the
same root domain.
"""

import os
import argparse

import drgn
from drgn import FaultError
from drgn.helpers.common import *
from drgn.helpers.linux import *

def print_root_domains_info():

    # To store unique root domains found
    seen_root_domains = set()

    print("Retrieving (unique) Root Domain Information:")

    runqueues = prog['runqueues']
    def_root_domain = prog['def_root_domain']

    for cpu_id in for_each_possible_cpu(prog):
        try:
            rq = per_cpu(runqueues, cpu_id)

            root_domain = rq.rd

            # Check if we've already processed this root domain to avoid duplicates
            # Use the memory address of the root_domain as a unique identifier
            root_domain_cast = int(root_domain)
            if root_domain_cast in seen_root_domains:
                continue
            seen_root_domains.add(root_domain_cast)

            if root_domain_cast == int(def_root_domain.address_):
                print(f"\n--- Root Domain @ def_root_domain ---")
            else:
                print(f"\n--- Root Domain @ 0x{root_domain_cast:x} ---")

            print(f" From CPU: {cpu_id}"# This CPU belongs to this root domain

            # Access and print relevant fields from struct root_domain
            print(f" Span : {cpumask_to_cpulist(root_domain.span[0])}")
            print(f" Online : {cpumask_to_cpulist(root_domain.span[0])}")

        except drgn.FaultError as fe:
            print(f" (CPU {cpu_id}: Fault accessing kernel memory: {fe})")
        except AttributeError as ae:
            print(f" (CPU {cpu_id}: Missing attribute for root_domain (kernel struct change?): {ae})")
        except Exception as e:
            print(f" (CPU {cpu_id}: An unexpected error occurred: {e})")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description=desc,
                                     formatter_class=argparse.RawTextHelpFormatter)
    args = parser.parse_args()

    print_root_domains_info()

Messung V0.5
C=87 H=86 G=86

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge