All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ira Snyder <iws@ovro.caltech.edu>
To: David Miller <davem@davemloft.net>,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	shemminger@vyatta.com, arnd@arndb.de, netdev@vger.kernel.org
Cc: Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: [PATCH RFC v5] net: add PCINet driver
Date: Thu, 8 Jan 2009 13:51:27 -0800	[thread overview]
Message-ID: <20090108215127.GA28935@ovro.caltech.edu> (raw)
In-Reply-To: <20090108192716.GA19863@ovro.caltech.edu>

On Thu, Jan 08, 2009 at 11:27:16AM -0800, Ira Snyder wrote:
> On Thu, Jan 08, 2009 at 11:16:10AM -0800, David Miller wrote:
> > From: Ira Snyder <iws@ovro.caltech.edu>
> > Date: Wed, 7 Jan 2009 11:50:52 -0800
> > 
> > > This adds support to Linux for a virtual ethernet interface which uses the
> > > PCI bus as its transport mechanism. It creates a simple, familiar, and fast
> > > method of communication for two devices connected by a PCI interface.
> > 
> > Well, it looks like much more than that to me.
> > 
> > What is this UART thing in here for?
> > 
> > I can only assume it's meant to be used as a console port between the
> > x86 host and the powerpc nodes.
> > 
> 
> Exactly right. I needed it to tell the U-Boot bootloader to tftp the
> kernel and boot the board. These boards don't keep their PCI settings
> (assigned by the BIOS at boot) over a soft or hard reset.
> 
> I couldn't think of a better way to get them started.
> 
> > You haven't even mentioned this UART aspect even indirectly in the
> > commit message.
> > 
> 
> Sorry, I'll add something about it.
> 
> > This just looks like yet another set of virtualization drivers
> > to me.  You could have just have easily built this using your
> > own PCI backplane framework, and using the virtio stuff on top.
> > 
> > And the virtio stuff has all kinds of snazzy optimizations that
> > will likely improve your throughput, it has console drivers that
> > distributions already probe for and attach appropriately, etc.
> > 
> > In short I really don't like this conceptually, it can be done
> > so much better using facilities we already have that are
> > heavily optimized and userland understands already.
> 
> I've had a really hard time understanding the virtio code. I haven't
> been able to find much in the way of documentation for it. Can you point
> me to some code that does anything vaguely similar to what you are
> suggesting?
> 
> Arnd Bergmann said that there is a similar driver (for different
> hardware) that uses virtio, but it is very slow, because it doesn't use
> the DMA controller to transfer data. I need at very minimum 40MB/sec of
> client -> host data transfer.
> 

Rusty, since you wrote the virtio code, can you point me at the things I
would need to implement to use virtio over the PCI bus.

The guests (PowerPC computers running Linux) are PCI cards in the host
system (an Intel Pentium3-M system). The guest computers can access all
of the host's memory. The guests provide a 1MB (movable) window into
their memory.

The PowerPC computers also have a DMA controller, which I've used to get
better throughput from my driver. I have a way to create interrupts to
both the host and guest systems.

I've read your paper titled: "virtio: Towards a De-Facto Standard For
Virtual I/O Devices"

If I read that correctly, then I should implement all of the functions
in struct virtqueue_ops appropriately, and the existing virtio drivers
should just work. The only concern I have there is how to make guest ->
host transfer use the DMA controller. I've done all programming of it
from the guest kernel, using the Linux DMAEngine API.

Are there any other implementations other than virtio_ring?

I appreciate any input you can give. If I should be CCing someone else,
just let me know and I'll drop you from the CC list.

Thanks,
Ira

  reply	other threads:[~2009-01-08 21:51 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-07 19:50 [PATCH RFC v5] net: add PCINet driver Ira Snyder
2009-01-07 19:50 ` Ira Snyder
2009-01-08 19:16 ` David Miller
2009-01-08 19:16 ` David Miller
2009-01-08 19:16 ` David Miller
2009-01-08 19:16   ` David Miller
2009-01-08 19:27   ` Ira Snyder
2009-01-08 19:27     ` Ira Snyder
2009-01-08 21:51     ` Ira Snyder [this message]
2009-01-10 23:32       ` Benjamin Herrenschmidt
2009-01-10 23:32         ` Benjamin Herrenschmidt
2009-01-12 17:56         ` Arnd Bergmann
2009-01-12 17:56           ` Arnd Bergmann
2009-01-13  2:32       ` Rusty Russell
2009-01-13  2:32         ` Rusty Russell
2009-01-13  3:34         ` Ira Snyder
2009-01-13  3:34           ` Ira Snyder
2009-01-13 16:33           ` Arnd Bergmann
2009-01-13 16:33             ` Arnd Bergmann
2009-01-13 16:40             ` Ira Snyder
2009-01-13 16:40               ` Ira Snyder
2009-01-13 17:42               ` Arnd Bergmann
2009-01-13 17:42                 ` Arnd Bergmann
2009-01-15  0:12                 ` Ira Snyder
2009-01-15  0:12                   ` Ira Snyder
2009-01-15 12:58                   ` Arnd Bergmann
2009-01-15 12:58                     ` Arnd Bergmann
2009-01-15 16:54                     ` Ira Snyder
2009-01-15 16:54                       ` Ira Snyder
2009-01-15 17:53                       ` Arnd Bergmann
2009-01-15 17:53                         ` Arnd Bergmann
2009-01-15 18:20                         ` Ira Snyder
2009-01-15 18:20                           ` Ira Snyder
2009-01-15 20:57                           ` Arnd Bergmann
2009-01-15 23:27                             ` Ira Snyder
2009-01-15 23:27                               ` Ira Snyder
2009-01-15 19:21                         ` Ira Snyder
2009-01-15 19:21                           ` Ira Snyder
2009-01-15 21:22                           ` Arnd Bergmann
2009-01-15 21:22                             ` Arnd Bergmann
2009-01-15 21:40                             ` Ira Snyder
2009-01-15 21:40                               ` Ira Snyder
2009-01-15 22:53                               ` Arnd Bergmann
2009-01-15 22:53                                 ` Arnd Bergmann
2009-01-15 23:31                                 ` Ira Snyder
2009-01-15 23:31                                   ` Ira Snyder
2009-01-16  9:15                               ` Jan-Bernd Themann
2009-01-16  9:15                               ` Jan-Bernd Themann
2009-01-08 19:16 ` David Miller
  -- strict thread matches above, loose matches on Subject: below --
2009-01-07 19:50 Ira Snyder
2009-01-07 19:50 Ira Snyder
2009-01-07 19:50 Ira Snyder

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=20090108215127.GA28935@ovro.caltech.edu \
    --to=iws@ovro.caltech.edu \
    --cc=arnd@arndb.de \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=netdev@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=shemminger@vyatta.com \
    /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.