All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: Dmitry Adamushko <dmitry.adamushko@domain.hid>
Cc: xenomai@xenomai.org
Subject: [Xenomai-core] Re: [patch, minor] irq proc output in intr.c
Date: Tue, 22 Aug 2006 09:41:48 +0200	[thread overview]
Message-ID: <44EAB53C.1020705@domain.hid> (raw)
In-Reply-To: <b647ffbd0608212353u13a450f4w16069329cea3966a@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 3460 bytes --]

Dmitry Adamushko wrote:
> On 19/08/06, Jan Kiszka <jan.kiszka@domain.hid> wrote:
>>
>> just realised that the output of /proc/xenomai/irq is suboptimal (no
>> names) under !CONFIG_XENO_OPT_SHIRQ_LEVEL &&
>> !CONFIG_XENO_OPT_SHIRQ_EDGE...
> 
> 
> 
> It should be ok but just in case, Jan, pls give it a try first. I was not
> able to test a branch with rthal_irq_cookie() (but as I recall it worked
> when it was implemented) as I don't have any driver at hand to be loaded.

Thanks for the patch. I'm posting some comments below.

> 
> TIA,
> 
> 
> Thanks,
>> Jan
>>
>>
> 
> 
> ------------------------------------------------------------------------
> 
> diff -urp xenomai-SVN/include/nucleus/intr.h xenomai-a/include/nucleus/intr.h
> --- xenomai-SVN/include/nucleus/intr.h	2006-07-20 11:09:01.000000000 +0200
> +++ xenomai-a/include/nucleus/intr.h	2006-08-22 09:32:24.000000000 +0200
> @@ -71,7 +71,9 @@ int xnintr_mount(void);
>  
>  void xnintr_clock_handler(void);
>  
> +#if defined(CONFIG_PROC_FS) && defined(__KERNEL__)
>  int xnintr_irq_proc(unsigned int irq, char *str);
> +#endif /* CONFIG_PROC_FS && __KERNEL__ */
>  
>      /* Public interface. */
>  
> diff -urp xenomai-SVN/ksrc/nucleus/intr.c xenomai-a/ksrc/nucleus/intr.c
> --- xenomai-SVN/ksrc/nucleus/intr.c	2006-07-20 12:35:40.000000000 +0200
> +++ xenomai-a/ksrc/nucleus/intr.c	2006-08-22 09:34:28.000000000 +0200
> @@ -691,6 +691,7 @@ int xnintr_mount(void)
>  	return 0;
>  }
>  
> +#if defined(CONFIG_PROC_FS) && defined(__KERNEL__)
>  int xnintr_irq_proc(unsigned int irq, char *str)
>  {
>  	xnintr_shirq_t *shirq;
> @@ -727,6 +728,7 @@ int xnintr_irq_proc(unsigned int irq, ch
>  
>  	return p - str;
>  }
> +#endif /* CONFIG_PROC_FS && __KERNEL__ */
>  
>  #else /* !CONFIG_XENO_OPT_SHIRQ_LEVEL && !CONFIG_XENO_OPT_SHIRQ_EDGE */
>  
> @@ -735,10 +737,31 @@ int xnintr_mount(void)
>  	return 0;
>  }
>  
> +#if defined(CONFIG_PROC_FS) && defined(__KERNEL__)
>  int xnintr_irq_proc(unsigned int irq, char *str)
>  {
> -	return 0;
> +	xnintr_t *intr;
> +	char *p = str;

+	spl_t s;

> +
> +	if (rthal_virtual_irq_p(irq)) {
> +		p += sprintf(p, "         [virtual]");
> +		return p - str;
> +	} else if (irq == XNARCH_TIMER_IRQ) {
> +		p += sprintf(p, "         %s", nkclock.name);
> +		return p - str;
> +	}
> +
> +	xnlock_get_irqsave(&nklock, s);

What's the idea of this lock? I'm asking as xnintr_attach/detach should
not run under nklock, right? So, how can it protect us then?

> +
> +	intr = rthal_irq_cookie(&rthal_domain, irq);
> +	if (intr && *(intr->name))
> +		p += sprintf(p, "        %s", intr->name);
> +
> +	xnlock_put_irqrestore(&nklock, s);
> +
> +	return p - str;
>  }
> +#endif /* CONFIG_PROC_FS && __KERNEL__ */
>  
>  #endif /* CONFIG_XENO_OPT_SHIRQ_LEVEL || CONFIG_XENO_OPT_SHIRQ_EDGE */
>  
> 
> 
> ------------------------------------------------------------------------
> 
> --- ChangeLog-SVN	2006-08-22 02:14:43.000000000 +0200
> +++ ChangeLog	2006-08-22 02:19:21.000000000 +0200
> @@ -10,6 +10,9 @@
>  
>  	* ksrc/nucleus/pipe.c (xnpipe_recv): Re-evaluate the timeout value
>  	as we iterate over the message acquisition.
> +	
> +	* ksrc/nucleus/intr.c (xnintr_irq_proc): Print the names of registered
> +	handlers also in case of non-shared interrupts.
>  
>  2006-08-20  Gilles Chanteperdrix  <gilles.chanteperdrix@xenomai.org>
>  

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

  reply	other threads:[~2006-08-22  7:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-22  6:53 [Xenomai-core] [patch, minor] irq proc output in intr.c Dmitry Adamushko
2006-08-22  7:41 ` Jan Kiszka [this message]
2006-08-22  8:47   ` [Xenomai-core] " Dmitry Adamushko
2006-08-22 13:35     ` Dmitry Adamushko

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=44EAB53C.1020705@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=dmitry.adamushko@domain.hid \
    --cc=xenomai@xenomai.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.