public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Kristian Høgsberg" <krh@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>,
	LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux1394-devel <linux1394-devel@lists.sourceforge.net>
Subject: [git pull] New firewire stack
Date: Tue, 01 May 2007 16:27:11 -0400	[thread overview]
Message-ID: <4637A29F.6070302@redhat.com> (raw)

Hi Linus,

As you may know, we've been working on a new FireWire stack over on
linux1394-devel.  The main driver behind this work is to get a small,
maintainable and supportable FireWire stack, with an acceptable
backwards compatibility story.

I've been talking to Stefan Richter about it and we feel that the new
stack is ready for inclusion into mainline.  What I'd like to propose
is that we carry both the new and the old stack in mainline for a few
releases.  Once we've reached a satisfactory level of stability and
worked through what regressions there may be, we can consider
deprecating the old stack.  Carrying two FireWire stacks in the kernel
at the same time is not ideal, but it allows for wider testing of the
new stack, while keeping the old stack as a fallback for cases where
regressions make the new stack not usable.

There's a lot of good reasons to switch to the new stack and a lot of
reasons to switch away from the old one.  Highlights:

  - Has been in Fedora rawhide (development branch) and -mm for 3
    months, will be shipping in Fedora 7.

  - Backwards compatible at the library level; existing user space
    libraries have been ported to use the new user space interface.

  - Less than 8k lines of code compared to 30k lines of code in the old
    stack, and a similar size reduction in the sizes of the .ko's.

  - No kernel threads, compared to one subsystem thread and one thread
    per FireWire controller in the old stack.

  - One user space interface to support zero-copy scatter-gather
    streaming, as opposed to the old stacks 4 (was 5) different
    streaming interfaces.

  - Per-device device files, letting userspace set up more finegrained
    access control, such as preventing direct access to FireWire
    storage devices.

Regressions:

  - eth1394 not ported over.  There is nothing preventing this from
    being done, though, but there's a couple of infrastructure bits
    that aren't done yet.

  - No support for the PCILynx chipset.  Nobody has this chipset
    anymore, and the pcilynx driver in the old stack is bit-rotting anyway.

  - Some SBP-2 (storage) devices fail after significant amounts of IO.
    Not clear what the problem is, but I can reproduce it here and am
    working on fixing it.

Please pull from the juju branch in Stefans repo:

git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git juju

thanks,
Kristian

  drivers/Makefile                  |    1 +
  drivers/firewire/Kconfig          |   60 ++
  drivers/firewire/Makefile         |   10 +
  drivers/firewire/fw-card.c        |  544 +++++++++++
  drivers/firewire/fw-cdev.c        |  954 +++++++++++++++++++
  drivers/firewire/fw-device.c      |  781 +++++++++++++++
  drivers/firewire/fw-device.h      |  149 +++
  drivers/firewire/fw-iso.c         |  163 ++++
  drivers/firewire/fw-ohci.c        | 1896 +++++++++++++++++++++++++++++++++++++
  drivers/firewire/fw-ohci.h        |  153 +++
  drivers/firewire/fw-sbp2.c        | 1165 +++++++++++++++++++++++
  drivers/firewire/fw-topology.c    |  519 ++++++++++
  drivers/firewire/fw-topology.h    |   94 ++
  drivers/firewire/fw-transaction.c |  889 +++++++++++++++++
  drivers/firewire/fw-transaction.h |  505 ++++++++++
  drivers/ieee1394/Kconfig          |    2 +
  include/linux/firewire-cdev.h     |  268 ++++++
  17 files changed, 8153 insertions(+), 0 deletions(-)

             reply	other threads:[~2007-05-01 20:28 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-01 20:27 Kristian Høgsberg [this message]
2007-05-01 21:34 ` [git pull] New firewire stack Stefan Richter
2007-05-02  9:00 ` Christoph Hellwig
2007-05-02 12:13   ` Stefan Richter
2007-05-02 12:15     ` [PATCH 1/6] firewire: handling of cards, buses, nodes Stefan Richter
2007-05-02 12:16       ` [PATCH 2/6] firewire: isochronous and asynchronous I/O Stefan Richter
2007-05-02 12:17         ` [PATCH 3/6] firewire: char device interface Stefan Richter
2007-05-02 12:18           ` [PATCH 4/6] firewire: OHCI-1394 lowlevel driver Stefan Richter
2007-05-02 12:18             ` [PATCH 5/6] firewire: SBP-2 highlevel driver Stefan Richter
2007-05-02 12:19               ` [PATCH 6/6] firewire: add it all to kbuild Stefan Richter
2007-05-02 18:05                 ` Stefan Richter
2007-05-02 19:44                 ` Christoph Hellwig
2007-05-02 23:01                   ` Stefan Richter
2007-05-03  4:15                     ` Sam Ravnborg
2007-05-03  8:10                     ` Christoph Hellwig
2007-05-08  0:14                       ` Kristian Høgsberg
2007-05-02 19:44               ` [PATCH 5/6] firewire: SBP-2 highlevel driver Christoph Hellwig
2007-05-02 21:53                 ` Stefan Richter
2007-05-02 22:10                   ` Stefan Richter
2007-05-04  9:53                   ` Christoph Hellwig
2007-05-04 11:20                     ` Stefan Richter
2007-05-09 21:05                 ` Kristian Høgsberg
2007-05-09 21:48                   ` Stefan Richter
2007-05-09 21:57                   ` Stefan Richter
2007-05-09 22:13                     ` Kristian Høgsberg
2007-05-09 22:56                       ` Stefan Richter
2007-05-04 11:11             ` [PATCH 4/6] firewire: OHCI-1394 lowlevel driver Christoph Hellwig
2007-05-09 23:40               ` Kristian Høgsberg
2007-05-02 15:35           ` [PATCH 3/6] firewire: char device interface John Stoffel
2007-05-02 16:06             ` Stefan Richter
2007-05-02 21:11             ` Kristian Høgsberg
2007-05-04  9:48               ` Christoph Hellwig
2007-05-08  0:19                 ` Kristian Høgsberg
2007-05-02 19:30           ` Christoph Hellwig
2007-05-08  0:08             ` Kristian Høgsberg
2007-05-02 19:29         ` [PATCH 2/6] firewire: isochronous and asynchronous I/O Christoph Hellwig
2007-05-03  0:08           ` Kristian Høgsberg
2007-05-03  8:54             ` Stefan Richter
2007-05-02 15:55       ` [PATCH 1/6] firewire: handling of cards, buses, nodes Pekka Enberg
2007-05-02 19:16         ` Stefan Richter
2007-05-02 20:35           ` Pekka Enberg
2007-05-07 22:02             ` Kristian Høgsberg
2007-05-02 21:16         ` Kristian Høgsberg
2007-05-02 19:22       ` Christoph Hellwig
2007-05-07 23:42         ` Kristian Høgsberg
2007-05-02 20:00     ` [git pull] New firewire stack Kristian Høgsberg
2007-05-02 12:21 ` Olaf Hering
2007-05-02 12:48   ` Stefan Richter
2007-05-02 13:56     ` Gene Heskett
2007-05-02 18:51       ` Stefan Richter
2007-05-02 15:27     ` Adrian Bunk
2007-05-02 20:03       ` Kristian Høgsberg
2007-05-02 19:53   ` Kristian Høgsberg
2007-05-02 20:03     ` Olaf Hering
2007-05-10 17:26 ` [git pull] New firewire stack (updated) Stefan Richter
2007-05-10 17:38   ` Christoph Hellwig
2007-05-10 17:51     ` Adrian Bunk
2007-05-10 17:56     ` Stefan Richter
2007-05-10 18:05     ` Stefan Richter
     [not found] <mailman.197656.1178135675.32383.linux1394-devel@lists.sourceforge.net>
2007-05-03  0:04 ` [git pull] New firewire stack Jonathan Woithe
2007-05-03  8:22   ` Stefan Richter
2007-05-03 11:48     ` Olaf Hering
2007-05-03 13:30       ` Stefan Richter
2007-05-03 16:34         ` Adrian Bunk
2007-05-03 17:33           ` Kristian Høgsberg
2007-05-04  5:54             ` Bill Fink
2007-05-05 21:17       ` Olaf Hering
2007-05-08  0:28         ` Kristian Høgsberg
2007-05-03 23:07     ` Jonathan Woithe

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=4637A29F.6070302@redhat.com \
    --to=krh@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=torvalds@linux-foundation.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