public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 00/13] GRU Driver V3 -  Overview
@ 2008-07-03 21:33 steiner
  2008-07-03 21:33 ` [patch 01/13] GRU Driver V3 - hardware data structures steiner
                   ` (12 more replies)
  0 siblings, 13 replies; 33+ messages in thread
From: steiner @ 2008-07-03 21:33 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: mingo, tglx, holt, andrea

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.

The GRU contains a large TLB that is functionally very similar to processor TLBs.
Because the external contains a TLB with user virtual address, it requires
callouts from the core VM system when certain types of changes are made to
the process page tables. There are several MMUOPS patches currently being
discussed but none has been accepted into the kernel. The GRU driver
is built using version V18 from Andrea Arcangeli.

Changes from V1 -> V2

	- lots of macro cleanup in gru_headers.h
	- coverted numerous macros to inline functions
	- deleted all (most) macros & functions that were used only
	  on the system simulator.
	- removed open coded ROUND_UP()
	- added missing EXPORTS
	- changed "address" parameteres to GRU kernel instructions
	  from void* to unsigned long. The values are physical addresses
	  (virtual is used only in user mode)
	- added GRU_DEBUG config option to enable GRU debug code.

Changes from V2 -> V3
	- verified again 2.6.26-rc8-mm1 with mmuops patch
	- A few trivial cleanups (spelling, etc)
	- Fixed __ia64__  -> CONFIG_IA64, etc.
	- Hugepages not supported yet. Fault will be return to user
	  if hugepage is referenced by GRU.


Open Issues:
	- use of /proc vs. /sys for resource allocation statistics
	- inline macros for GRU kernel instructions
	- Need better algorithms to handle oversubscription of
	  GRU resources. Current algorithm is functional but
	  crude.

Areas of Special Concern - would like careful community review:
	- use of get_user_pages() & follow_page()



--- jack


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2008-07-11  3:30 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-03 21:33 [patch 00/13] GRU Driver V3 - Overview steiner
2008-07-03 21:33 ` [patch 01/13] GRU Driver V3 - hardware data structures steiner
2008-07-03 21:33 ` [patch 02/13] GRU Driver V3 - GRU instructions & macros steiner
2008-07-03 21:33 ` [patch 03/13] GRU Driver V3 - driver internal header files steiner
2008-07-03 21:33 ` [patch 04/13] GRU Driver V3 - kernel services " steiner
2008-07-03 21:33 ` [patch 05/13] GRU Driver V3 - driver initialization, file & vma ops steiner
2008-07-03 21:33 ` [patch 06/13] GRU Driver V3 - page faults & exceptions steiner
2008-07-03 21:33 ` [patch 07/13] GRU Driver V3 - kernel services provide by driver steiner
2008-07-03 21:33 ` [patch 08/13] GRU Driver V3 - resource management steiner
2008-07-03 21:33 ` [patch 09/13] GRU Driver V3 - /proc interfaces steiner
2008-07-03 21:33 ` [patch 10/13] GRU Driver V3 - TLB flushing, MMUOPS callouts steiner
2008-07-03 21:33 ` [patch 11/13] GRU Driver V3 - driver makefile steiner
2008-07-03 21:34 ` [patch 12/13] GRU Driver V3 - export is_uv_system(), zap_page_range() & follow_page() steiner
2008-07-04  7:39   ` Christoph Hellwig
2008-07-07 14:39     ` Jack Steiner
2008-07-07 14:54       ` Andrea Arcangeli
2008-07-07 16:29       ` Hugh Dickins
2008-07-07 16:53         ` Jack Steiner
2008-07-08  2:16           ` Nick Piggin
2008-07-09 19:11             ` Jack Steiner
2008-07-10  7:31               ` Nick Piggin
2008-07-10 13:29                 ` Jack Steiner
2008-07-10 14:21                   ` Nick Piggin
2008-07-10 16:33                     ` Jack Steiner
2008-07-10 16:52                       ` Nick Piggin
2008-07-10 17:20                         ` Jack Steiner
2008-07-11  3:30                           ` Nick Piggin
2008-07-07 18:58         ` Arjan van de Ven
2008-07-07 19:29           ` Jack Steiner
2008-07-07 21:03             ` Andrea Arcangeli
2008-07-07 14:45     ` Christoph Lameter
2008-07-07 17:58     ` Jack Steiner
2008-07-03 21:34 ` [patch 13/13] GRU Driver V3 - driver/misc Makefile & Kconfig changes steiner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox