Re: [patch 00/11] GRU Driver

From: Andrew Morton
Date: Thu Jun 12 2008 - 14:04:30 EST


On Thu, 12 Jun 2008 09:05:09 -0500 Jack Steiner <steiner@xxxxxxx> wrote:

> On Thu, Jun 12, 2008 at 03:27:00PM +0200, Ingo Molnar wrote:
> >
> > * steiner@xxxxxxx <steiner@xxxxxxx> wrote:
> >
> > > This series of patches adds a driver for the SGI UV GRU. The driver is
> > > still in development but it currently compiles for both x86_64 & IA64.
> > > All simple regression tests pass on IA64. Although features remain to
> > > be added, I'd like to start the process of getting the driver into the
> > > kernel. Additional kernel drivers will depend on services provide by
> > > the GRU driver.
> > >
> > > The GRU is a hardware resource located in the system chipset. The GRU
> > > contains memory that is mmaped into the user address space. This
> > > memory is used to communicate with the GRU to perform functions such
> > > as load/store, scatter/gather, bcopy, AMOs, etc. The GRU is directly
> > > accessed by user instructions using user virtual addresses. GRU
> > > instructions (ex., bcopy) use user virtual addresses for operands.
> >
> > did i get it right that it's basically a fast, hardware based message
> > passing interface that allows two tasks to communicate via DMA and
> > interrupts, without holding up the CPU?
>
> Yes
>
>
> > If that is the case, wouldnt the
> > proper support model be a network driver, instead of these special
> > ioctls. (a network driver with no checksumming, with scatter-gather,
> > zero-copy and TSO support, etc.)
> >
> > or a filesystem. Anything but special-purpose ioctls ...
>
> The ioctls are not used directly by users.
>
> Users function the GRU by directly writing to the memory that is mmaped into
> GRU space, ie; load/store directly to GRU space. The ioctls are used
> infrequently by libgru.so to configure the driver during user initialization
> and to handle errors that may occur.
>
> For example, here is the code that is required to issue a GRU
> instruction & wait for completion:
>

But could/should it be implemented as (say) a net driver?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/