mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Craig Gallek <kraigatgoog@gmail.com>
Cc: David Decotigny <decot@google.com>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5] genirq: Machine-parsable version of /proc/interrupts
Date: Tue, 13 Sep 2016 16:50:34 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.20.1609131642410.6233@nanos> (raw)
In-Reply-To: <1473689534-125511-1-git-send-email-kraigatgoog@gmail.com>

On Mon, 12 Sep 2016, Craig Gallek wrote:

> From: Craig Gallek <kraig@google.com>
 
> Add struct kobject to struct irq_desc to allow for easy export
> to sysfs.  This allows for much simpler userspace-parsing of
> the information contained in struct irq_desc.

This lacks a rationale WHY we want to add this. Something like:

"/proc/interrupts is hard to parse by tools because <add content>."

Then add some blurb why and how a sysfs based interface solves the above
problem.

The fact that you add a kobject is an implementation detail and completely
irrelevant for the changelog. We can see that from the patch.
 
> Note that sysfs is not available at the time of early irq initialization.
> These interrupts are accounted for using a postcore_initcall callback.

That want's to be documented in the code .
 
>  /*
>   * Core internal functions to deal with irq descriptors
> @@ -45,6 +46,7 @@ struct pt_regs;
>   * @rcu:		rcu head for delayed free
>   * @dir:		/proc/irq/ procfs entry
>   * @name:		flow handler name for /proc/interrupts output
> + * @kobj:		kobject used to represent this struct in sysfs
>   */
>  struct irq_desc {
>  	struct irq_common_data	irq_common_data;
> @@ -92,6 +94,7 @@ struct irq_desc {
>  	int			parent_irq;
>  	struct module		*owner;
>  	const char		*name;
> +	struct kobject		kobj;

Can you please move that into the CONFIG_SPARSE_IRQ conditional section
where we have the rcu head ?

> +
> +#ifdef CONFIG_SPARSE_IRQ
> +#ifdef CONFIG_SYSFS

We use 

#if defined(A) && defined(B)

but please move it into the #ifdef SYSFS section which you add anyway.

> +static int __init irq_sysfs_init(void)
> +{
> +	struct irq_desc *desc;
> +	int irq;
> +
> +	irq_kobj_base = kobject_create_and_add("irq", kernel_kobj);
> +	if (!irq_kobj_base)
> +		return -ENOMEM;

This is racy versus a concurrent interrupt setup. You need to move that
into the sparse locked section.

> +
> +	irq_lock_sparse();
> +	for_each_irq_desc(irq, desc)
> +		irq_sysfs_add(irq, desc);
> +	irq_unlock_sparse();

Thanks,

	tglx

  reply	other threads:[~2016-09-13 14:53 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-26 14:25 [PATCH RESEND] " Craig Gallek
2016-08-10 15:26 ` Craig Gallek
2016-09-02 13:52   ` Thomas Gleixner
2016-09-02 14:59 ` Thomas Gleixner
2016-09-06 20:55   ` Craig Gallek
2016-09-09  6:15     ` Thomas Gleixner
2016-09-08 17:34 ` [PATCH v2] " Craig Gallek
2016-09-08 17:57   ` Randy Dunlap
2016-09-08 20:25   ` [PATCH v3] " Craig Gallek
2016-09-08 22:00     ` Randy Dunlap
2016-09-08 22:15       ` Craig Gallek
2016-09-09 12:39         ` Thomas Gleixner
2016-09-09 16:28   ` [PATCH v4] " Craig Gallek
2016-09-09 23:19     ` Thomas Gleixner
2016-09-12 14:12     ` [PATCH v5] " Craig Gallek
2016-09-13 14:50       ` Thomas Gleixner [this message]
2016-09-13 16:14       ` [PATCH v6] " Craig Gallek
2016-09-14 13:34         ` [tip:irq/core] genirq: Expose interrupt information through sysfs tip-bot for Craig Gallek
2016-09-14 13:36         ` [PATCH v6] genirq: Machine-parsable version of /proc/interrupts Thomas Gleixner
2016-09-14 13:59           ` Craig Gallek

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=alpine.DEB.2.20.1609131642410.6233@nanos \
    --to=tglx@linutronix.de \
    --cc=decot@google.com \
    --cc=kraigatgoog@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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

all inboxes | Powered by JetHome®