From owner-svn-soc-all@FreeBSD.ORG Sat Jun 7 21:36:52 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 69720D4B for ; Sat, 7 Jun 2014 21:36:52 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3C2072463 for ; Sat, 7 Jun 2014 21:36:52 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.8/8.14.8) with ESMTP id s57Laq72068142 for ; Sat, 7 Jun 2014 21:36:52 GMT (envelope-from mihai@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.8/8.14.8/Submit) id s57LapBO068133 for svn-soc-all@FreeBSD.org; Sat, 7 Jun 2014 21:36:51 GMT (envelope-from mihai@FreeBSD.org) Date: Sat, 7 Jun 2014 21:36:51 GMT Message-Id: <201406072136.s57LapBO068133@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to mihai@FreeBSD.org using -f From: mihai@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r269237 - soc2014/mihai/lapic_test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jun 2014 21:36:52 -0000 Author: mihai Date: Sat Jun 7 21:36:51 2014 New Revision: 269237 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=269237 Log: sos2014: mihai: add lapic_test module Added: soc2014/mihai/lapic_test/ soc2014/mihai/lapic_test/Makefile soc2014/mihai/lapic_test/lapic_test.c Added: soc2014/mihai/lapic_test/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/mihai/lapic_test/Makefile Sat Jun 7 21:36:51 2014 (r269237) @@ -0,0 +1,14 @@ +# Note: It is important to make sure you include the makefile after declaring the KMOD and SRCS variables. + +# Declare Name of kernel module +KMOD = lapic_test +# Enumerate Source files for kernel module +SRCS = lapic_test.c + +# Include kernel module makefile +# /usr/src/share/mk/bsd.kmod.mk +.include + +# Not really necessary, 'make clean' will work fine +realclean: clean + rm -f @ machine *~ *core Added: soc2014/mihai/lapic_test/lapic_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/mihai/lapic_test/lapic_test.c Sat Jun 7 21:36:51 2014 (r269237) @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include + +extern int lapic_id(void); + + +#define NO_ITERATIONS 1000000 +static void lapic_test(void) +{ + uint32_t i, x; + uint64_t before, after, ticks_per_exit; + + x = 0; + + before = rdtsc(); + for (i = 0; i < NO_ITERATIONS; i++) + x += lapic_id(); + after = rdtsc(); + + ticks_per_exit = (after - before) / NO_ITERATIONS; + uprintf("lapic_test ticks_per_exit %lu\n", ticks_per_exit); +} + +/* The function called at load/unload. */ +static int event_handler(struct module *module, int event, void *arg) { + int e = 0; /* Error, 0 for normal return status */ + + switch (event) { + case MOD_LOAD: + lapic_test(); + break; + case MOD_UNLOAD: + break; + default: + e = EOPNOTSUPP; /* Error, Operation Not Supported */ + break; + } + + return(e); +} + +static moduledata_t lapic_test_conf = { + "lapic_test", /* module name */ + event_handler, /* event handler */ + NULL /* extra data */ +}; + +DECLARE_MODULE(lapic_test, lapic_test_conf, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);