From: Subrata M. <tos...@gm...> - 2008-06-15 16:03:48
|
Hi Steiner, On Sun, Jun 15, 2008 at 7:29 PM, <st...@sg...> 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 I have been struggling for quite sometime to revive those few device driver test cases in LTP: ( http://ltp.cvs.sourceforge.net/ltp/ltp/testcases/kernel/device-drivers/) One of those few options that i have is to import new test cases for device drivers as well, like the same way other kernel test cases are included in LTP. As you said all the regression tests pass on your device driver, i would like to know if you can contribute these tests/testcases under GPL to LTP for further use by the community. There is no specific platform by which the existing device drivers tests work, expect that they all are run individually/separately for the best reasons known. Regards-- Subrata > 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. > > Open Issues: > - use of /proc vs. /sys for resource allocation statistics > - inline macros for GRU kernel instructions > - __ia64__ -> CONFIG_IA64, etc. > - Use of hugepages (currently, GRU returns errors > to user if a hugepage reference is attempted) > - 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() - (patch 6) > > > > --- jack > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to maj...@vg... > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- Regards & Thanks-- Subrata |