Changeset f272cb8 in mainline


Ignore:
Timestamp:
2006-12-11T19:19:28Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
70b6de1
Parents:
50661ab
Message:

integrate more tests

Location:
kernel
Files:
3 edited
8 moved

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    r50661ab rf272cb8  
    223223                test/debug/mips1.c \
    224224                test/fault/fault1.c \
    225                 test/fpu/fpu1.c
     225                test/fpu/fpu1.c \
     226                test/fpu/sse1.c \
     227                test/fpu/mips2.c \
     228                test/mm/falloc1.c \
     229                test/mm/falloc2.c \
     230                test/mm/mapping1.c \
     231                test/mm/slab1.c \
     232                test/mm/slab2.c \
     233                test/mm/purge1.c
    226234endif
    227235
  • kernel/test/fpu/mips2.c

    r50661ab rf272cb8  
    3737
    3838#include <arch.h>
     39
     40#ifdef mips32
    3941
    4042#define THREADS         50
     
    106108
    107109
    108 void test(void)
     110void test_mips2(void)
    109111{
    110112        thread_t *t;
     
    135137        printf("Test passed.\n");
    136138}
     139
     140#else
     141
     142void test_mips2(void)
     143{
     144        printf("This test is availaible only on MIPS32 platform.\n");
     145}
     146
     147#endif
  • kernel/test/fpu/sse1.c

    r50661ab rf272cb8  
    3737
    3838#include <arch.h>
     39
     40#ifdef CONFIG_BENCH
     41#include <arch/cycle.h>
     42#endif
     43
     44#if (defined(ia32) || defined(amd64) || defined(ia32xen))
    3945
    4046#define THREADS         50
     
    106112
    107113
    108 void test(void)
     114void test_sse1(void)
    109115{
     116#ifdef CONFIG_BENCH
     117        uint64_t t0 = get_cycle();
     118#endif
    110119        thread_t *t;
    111120        int i;
     
    134143               
    135144        printf("Test passed.\n");
     145#ifdef CONFIG_BENCH
     146        uint64_t dt = get_cycle() - t0;
     147        printf("Time: %.*d cycles\n", sizeof(dt) * 2, dt);
     148#endif
    136149}
     150
     151#else
     152
     153void test_sse1(void)
     154{
     155        printf("This test is available only on SSE enabled platforms.");
     156}
     157
     158#endif
  • kernel/test/mm/falloc1.c

    r50661ab rf272cb8  
    3636#include <align.h>
    3737
     38#ifdef CONFIG_BENCH
     39#include <arch/cycle.h>
     40#endif
     41
    3842#define MAX_FRAMES 1024
    3943#define MAX_ORDER 8
    4044#define TEST_RUNS 2
    4145
    42 void test(void) {
     46void test_falloc1(void) {
     47#ifdef CONFIG_BENCH
     48        uint64_t t0 = get_cycle();
     49#endif
    4350        uintptr_t * frames = (uintptr_t *) malloc(MAX_FRAMES*sizeof(uintptr_t), 0);
    4451        int results[MAX_ORDER+1];
     
    8996       
    9097        printf("Test passed.\n");
     98#ifdef CONFIG_BENCH
     99        uint64_t dt = get_cycle() - t0;
     100        printf("Time: %.*d cycles\n", sizeof(dt) * 2, dt);
     101#endif
    91102}
    92103
  • kernel/test/mm/falloc2.c

    r50661ab rf272cb8  
    3838#include <memstr.h>
    3939#include <arch.h>
     40
     41#ifdef CONFIG_BENCH
     42#include <arch/cycle.h>
     43#endif
    4044
    4145#define MAX_FRAMES 256
     
    102106
    103107
    104 void test(void)
     108void test_falloc2(void)
    105109{
     110#ifdef CONFIG_BENCH
     111        uint64_t t0 = get_cycle();
     112#endif
    106113        int i;
    107114
     
    121128
    122129        printf("Test passed.\n");
     130#ifdef CONFIG_BENCH
     131        uint64_t dt = get_cycle() - t0;
     132        printf("Time: %.*d cycles\n", sizeof(dt) * 2, dt);
     133#endif
    123134}
  • kernel/test/mm/mapping1.c

    r50661ab rf272cb8  
    3535#include <debug.h>
    3636
     37#ifdef CONFIG_BENCH
     38#include <arch/cycle.h>
     39#endif
     40
    3741#define PAGE0   0x10000000
    3842#define PAGE1   (PAGE0+PAGE_SIZE)
     
    4145#define VALUE1  0x89abcdef
    4246
    43 void test(void)
     47void test_mapping1(void)
    4448{
     49#ifdef CONFIG_BENCH
     50        uint64_t t0 = get_cycle();
     51#endif
    4552        uintptr_t frame0, frame1;
    4653        uint32_t v0, v1;
     
    4855        printf("Memory management test mapping #1\n");
    4956
    50         frame0 = frame_alloc(ONE_FRAME, FRAME_KA);
    51         frame1 = frame_alloc(ONE_FRAME, FRAME_KA);
     57        frame0 = (uintptr_t) frame_alloc(ONE_FRAME, FRAME_KA);
     58        frame1 = (uintptr_t) frame_alloc(ONE_FRAME, FRAME_KA);
    5259
    5360        printf("Writing %#x to physical address %p.\n", VALUE0, KA2PA(frame0));
     
    8289       
    8390        printf("Test passed.\n");
    84        
     91#ifdef CONFIG_BENCH
     92        uint64_t dt = get_cycle() - t0;
     93        printf("Time: %.*d cycles\n", sizeof(dt) * 2, dt);
     94#endif 
    8595}
  • kernel/test/mm/purge1.c

    r50661ab rf272cb8  
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2727 */
     28
    2829#include <print.h>
    2930#include <test.h>
     
    3637#include <debug.h>
    3738
     39#ifdef ia64
    3840
    3941extern void tlb_invalidate_all(void);
    4042extern void tlb_invalidate_pages(asid_t asid, uintptr_t va, count_t cnt);
     43
    4144void test(void)
    4245{
     
    4649        int i;
    4750                                                                                                                                                                                                                                                                                                                                                                       
    48   entryd.word[0] = 0;
    49   entryd.word[1] = 0;
     51        entryd.word[0] = 0;
     52        entryd.word[1] = 0;
    5053                                                                                               
    51   entryd.p = true;                 /* present */
    52   entryd.ma = MA_WRITEBACK;
    53   entryd.a = true;                 /* already accessed */
    54   entryd.d = true;                 /* already dirty */
    55   entryd.pl = PL_KERNEL;
    56   entryd.ar = AR_READ | AR_WRITE;
    57   entryd.ppn = 0;
    58   entryd.ps = PAGE_WIDTH;
    59 
    60 
    61   entryi.word[0] = 0;
    62   entryi.word[1] = 0;
    63                                                                                                
    64   entryi.p = true;                 /* present */
    65   entryi.ma = MA_WRITEBACK;
    66   entryi.a = true;                 /* already accessed */
    67   entryi.d = true;                 /* already dirty */
    68   entryi.pl = PL_KERNEL;
    69   entryi.ar = AR_READ | AR_EXECUTE;
    70   entryi.ppn = 0;
    71   entryi.ps = PAGE_WIDTH;
    72 
     54        entryd.p = true;                 /* present */
     55        entryd.ma = MA_WRITEBACK;
     56        entryd.a = true;                 /* already accessed */
     57        entryd.d = true;                 /* already dirty */
     58        entryd.pl = PL_KERNEL;
     59        entryd.ar = AR_READ | AR_WRITE;
     60        entryd.ppn = 0;
     61        entryd.ps = PAGE_WIDTH;
    7362       
    74         for(i=0;i<100;i++)
    75         {
    76                 itc_mapping_insert(0+i*(1<<PAGE_WIDTH),8,entryi);
    77                 dtc_mapping_insert(0+i*(1<<PAGE_WIDTH),9,entryd);
    78         }       
     63        entryi.word[0] = 0;
     64        entryi.word[1] = 0;
    7965       
    80 
     66        entryi.p = true;                 /* present */
     67        entryi.ma = MA_WRITEBACK;
     68        entryi.a = true;                 /* already accessed */
     69        entryi.d = true;                 /* already dirty */
     70        entryi.pl = PL_KERNEL;
     71        entryi.ar = AR_READ | AR_EXECUTE;
     72        entryi.ppn = 0;
     73        entryi.ps = PAGE_WIDTH;
     74       
     75        for (i = 0; i < 100; i++) {
     76                itc_mapping_insert(0 + i * (1 << PAGE_WIDTH), 8, entryi);
     77                dtc_mapping_insert(0 + i * (1 << PAGE_WIDTH), 9, entryd);
     78        }
     79       
    8180        tlb_invalidate_pages(8,0x0c000,14);
    8281       
    8382        /*tlb_invalidate_all();*/
    84        
    8583}
     84
     85#else
     86
     87void test_purge1(void)
     88{
     89        printf("This test is availaible only on IA64 platform.\n");
     90}
     91
     92#endif
  • kernel/test/mm/slab1.c

    r50661ab rf272cb8  
    3434#include <panic.h>
    3535#include <memstr.h>
     36
     37#ifdef CONFIG_BENCH
     38#include <arch/cycle.h>
     39#endif
    3640
    3741#define VAL_COUNT   1024
     
    154158}
    155159
    156 void test(void)
     160void test_slab1(void)
    157161{
     162#ifdef CONFIG_BENCH
     163        uint64_t t0 = get_cycle();
     164#endif
    158165        testsimple();
    159166        testthreads();
     167#ifdef CONFIG_BENCH
     168        uint64_t dt = get_cycle() - t0;
     169        printf("Time: %.*d cycles\n", sizeof(dt) * 2, dt);
     170#endif
    160171}
  • kernel/test/mm/slab2.c

    r50661ab rf272cb8  
    211211}
    212212
    213 void test(void)
     213void test_slab2(void)
    214214{
    215215#ifdef CONFIG_BENCH
  • kernel/test/test.c

    r50661ab rf272cb8  
    6666                true
    6767        },
     68        {
     69                "sse1",
     70                "Intel SEE test",
     71                &test_sse1,
     72                true
     73        },
     74        {
     75                "mips2",
     76                "MIPS FPU test",
     77                &test_mips2,
     78                true
     79        },
     80        {
     81                "falloc1",
     82                "Frame allocator test 1",
     83                &test_falloc1,
     84                true
     85        },
     86        {
     87                "falloc2",
     88                "Frame allocator test 2",
     89                &test_falloc2,
     90                true
     91        },
     92        {
     93                "mapping1",
     94                "Mapping test",
     95                &test_mapping1,
     96                true
     97        },
     98        {
     99                "slab1",
     100                "SLAB test 1",
     101                &test_slab1,
     102                true
     103        },
     104        {
     105                "slab2",
     106                "SLAB test 2",
     107                &test_slab2,
     108                true
     109        },
     110        {
     111                "purge1",
     112                "Itanium TLB purge test",
     113                &test_purge1,
     114                true
     115        },
    68116        {NULL, NULL, NULL}
    69117};
  • kernel/test/test.h

    r50661ab rf272cb8  
    5151extern void test_fault1(void);
    5252extern void test_fpu1(void);
     53extern void test_sse1(void);
     54extern void test_mips2(void);
     55extern void test_falloc1(void);
     56extern void test_falloc2(void);
     57extern void test_mapping1(void);
     58extern void test_purge1(void);
     59extern void test_slab1(void);
     60extern void test_slab2(void);
    5361
    5462extern test_t tests[];
Note: See TracChangeset for help on using the changeset viewer.