From: "Kristian Høgsberg" <krh@redhat.com>
To: Pieter Palmers <pieterp@joow.be>
Cc: linux-kernel@vger.kernel.org, linux1394-devel@lists.sourceforge.net
Subject: Re: [PATCH 0/4] New firewire stack - updated patches
Date: Wed, 20 Dec 2006 13:39:21 -0500 [thread overview]
Message-ID: <45898359.9020303@redhat.com> (raw)
In-Reply-To: <458956CB.7060004@joow.be>
Pieter Palmers wrote:
> Kristian Høgsberg wrote:
>> Hi,
>>
>> Here's a new set of patches for the new firewire stack. The changes
>> since the last set of patches address the issues that were raised on
>> the list and can be reviewed in detail here:
> .. for some reason I didn't get patch 3/4 and 4/4 on the linux1394-devel
> list, so I'll reply to this one.
>
> I would suggest a reordering of the interrupt flag checks. Currently the
> interrupts that are least likely to occur are checked first. I don't see
> why. I would reorder the check such that ISO interrupts are checked
> first, as they have the most stringent timing constraints and are most
> likely to occur (when using ISO traffic).
All the interrupt handler does is schedule tasklets and they are all handled
before returning to userspace. So not matter how you order them it's going to
take the same time. If you want to defer handling of async traffic to after
your userspace handler has run, you need to schedule a work_struct for
handling the async events.
Having said that, I doubt that the latency between iso interrupt and user
space handler imposed by the irq handler and the tasklets will be a problem.
All the async tasklets do is copy the data out of the DMA buffers, possibly
lookup a corresponding request and eventually call complete() on some struct
completion. The worst case is the bus reset tasklet which does the topology
walk, but even that is pretty fast.
> After processing the ISO interrupts (and maybe the Async ones), a bypass
> could be inserted to exit the interrupt handler when there are no other
> interrupts to be handled. All other interrupts are to report relatively
> rare events or errors (error handling still to be added I assume). The
> effective run-length of the interrupt handler would be shorter using
> such a bypass, especially in the case where there is a lot of ISO traffic.
>
> I'm looking forward to your ISO implementation, and I hope to
> incorporate it into FreeBob really fast.
Sounds great, I'll get to the isochronous receive feature as soon as possible.
I'm open to changing the interrupt handling if we can acheive lower latency,
but we need to be able to measure it before we start making changes.
cheers,
Kristian
next prev parent reply other threads:[~2006-12-20 18:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-20 0:58 [PATCH 0/4] New firewire stack - updated patches Kristian Høgsberg
2006-12-20 10:42 ` Stefan Richter
2006-12-20 17:35 ` Kristian Høgsberg
2006-12-20 18:57 ` Stefan Richter
2006-12-20 20:06 ` Kristian Høgsberg
2006-12-20 21:52 ` Stefan Richter
2006-12-20 23:01 ` Stefan Richter
2006-12-20 20:34 ` Stefan Richter
2006-12-20 15:29 ` Pieter Palmers
2006-12-20 18:39 ` Kristian Høgsberg [this message]
2006-12-21 23:03 ` Stefan Richter
-- strict thread matches above, loose matches on Subject: below --
2006-12-21 11:47 Duncan Beadnell
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=45898359.9020303@redhat.com \
--to=krh@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=pieterp@joow.be \
/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