From: Jan Kiszka <jan.kiszka@domain.hid>
To: Dmitry Adamushko <dmitry.adamushko@domain.hid>
Cc: xenomai-core <xenomai@xenomai.org>
Subject: [Xenomai-core] [shirq] first test results
Date: Fri, 10 Feb 2006 19:03:28 +0100 [thread overview]
Message-ID: <43ECD570.5000704@domain.hid> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 1491 bytes --]
Hi Dmitry,
some news from the testing front: It works fairly well - and it doesn't
crash =:). We set up a quite demanding test scenario which consists of
two Sick Laser scanners feeding two UART ports at 500 Kbit/s. The UARTs
are on a special PC104 card, sharing the same edge-triggered IRQ line.
We were able to get data from both devices running at the same time. But
we noticed some overruns of MAX_EDGEIRQ_COUNTER (a few per second). The
next step on Monday will be to generate a back-trace with the
ipipe-tracer to see if the system is "just" overloaded or if we are
still facing problems with the driver and/or IRQ layer. Will be very
interesting to see on that radar what's happing.
I attached two patches. One enables xeno_16550A to use the new features,
and the other improves the /proc output of your patch slightly.
Furthermore, we noticed that virtual IRQs (namely the printk forwarder)
get displayed under /proc/xenomai/irq too. Is this useful? We wondered
what IRQ 34 might be until code analysis of Xenomai and Ipipe revealed
it (__ipipe_printk_virq). If it is considered useful, we should at least
mark those irqs virtual in the output or even give them names as well.
Then I stumbled over the xnintr structure. Why do you keep a copy of the
device name? A "const char *" should be enough, we just have to demand
that it will remain valid as long as the xnintr structure itself (i.e.
during the IRQ being attached). Saves a few bytes. :)
Jan
[-- Attachment #1.2: shirq-16550A.patch --]
[-- Type: text/plain, Size: 955 bytes --]
Index: ksrc/drivers/16550A/16550A.c
===================================================================
--- ksrc/drivers/16550A/16550A.c (revision 556)
+++ ksrc/drivers/16550A/16550A.c (working copy)
@@ -238,7 +238,7 @@
int rbytes = 0;
int events = 0;
int modem;
- int ret = RTDM_IRQ_PROPAGATE;
+ int ret = RTDM_IRQ_PROPAGATE | RTDM_IRQ_NOINT;
ctx = rtdm_irq_get_arg(irq_context, struct rt_16550_context);
@@ -446,7 +446,8 @@
ctx = (struct rt_16550_context *)context->dev_private;
ret = rtdm_irq_request(&ctx->irq_handle, irq[dev_id], rt_16550_interrupt,
- 0, context->device->proc_name, ctx);
+ RTDM_IRQTYPE_SHARED|RTDM_IRQTYPE_EDGE,
+ context->device->proc_name, ctx);
if (ret < 0)
return ret;
[-- Attachment #1.3: shirq-timer-name.patch --]
[-- Type: text/plain, Size: 513 bytes --]
--- xenomai/ksrc/nucleus/pod.c.orig 2006-02-10 14:30:32.000000000 +0100
+++ xenomai/ksrc/nucleus/pod.c 2006-02-10 14:30:49.000000000 +0100
@@ -3071,7 +3071,7 @@ unlock_and_exit:
source will be attached directly by the arch-dependent layer
(xnarch_start_timer). */
- xnintr_init(&nkclock,NULL,XNARCH_TIMER_IRQ,tickhandler,NULL,0);
+ xnintr_init(&nkclock,"[timer]",XNARCH_TIMER_IRQ,tickhandler,NULL,0);
xnintr_clock_attach(&nkclock);
__setbits(nkpod->status,XNTIMED);
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next reply other threads:[~2006-02-10 18:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-10 18:03 Jan Kiszka [this message]
2006-02-11 11:31 ` [Xenomai-core] Re: [shirq] first test results Dmitry Adamushko
2006-02-11 12:59 ` Jan Kiszka
2006-02-11 18:58 ` Dmitry Adamushko
2006-02-12 22:36 ` Jan Kiszka
2006-02-13 18:44 ` Jan Kiszka
2006-02-14 8:07 ` 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=43ECD570.5000704@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.