Changeset a60c748 in mainline


Ignore:
Timestamp:
2006-01-30T16:40:23Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6a3c9a7
Parents:
d4efc19
Message:

Convert ASID management of ia64 to ASID FIFO mechanism.
18-bit RIDs are supported.

Files:
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/Makefile.inc

    rd4efc19 ra60c748  
    5252
    5353CONFIG_ASID = y
    54 
     54CONFIG_ASID_FIFO = y
    5555
    5656ARCH_SOURCES = \
     
    6565        arch/$(ARCH)/src/ivt.S \
    6666        arch/$(ARCH)/src/interrupt.c \
    67         arch/$(ARCH)/src/mm/asid.c \
    6867        arch/$(ARCH)/src/mm/frame.c \
    6968        arch/$(ARCH)/src/mm/page.c \
  • arch/ia64/include/mm/asid.h

    rd4efc19 ra60c748  
    3232#include <arch/types.h>
    3333
    34 typedef __u32 asid_t;
     34typedef __u16 asid_t;
    3535
    3636/**
    37  * This macro eliminates the stealing branch of asid_get().
     37 * Number of ia64 RIDs (Region Identifiers) per kernel ASID.
     38 * Note that some architectures may support more bits,
     39 * but those extra bits are not used by the kernel.
    3840 */
    39 #define ASID_STEALING_ENABLED   0
    40 
    41 /** Number of ia64 RIDs (Region Identifiers) per kernel ASID. */
    4241#define RIDS_PER_ASID           7
    43 #define RID_OVERFLOW            16777216        /* 2^24 */
     42#define RID_MAX                 262143          /* 2^18 - 1 */
    4443
    4544#define ASID2RID(asid, vrn)     (((asid)*RIDS_PER_ASID)+(vrn))
     
    4847typedef __u32 rid_t;
    4948
    50 /**
    51  * This macro is needed only to compile the kernel.
    52  * On ia64, its value is ignored.
    53  */
    54 #define ASID_MAX_ARCH           0
    55 
    56 /**
    57  * Value used to recognize the situation when all ASIDs were already allocated.
    58  */
    59 #define ASID_OVERFLOW           (RID_OVERFLOW/RIDS_PER_ASID)
    60 
    61 /** On ia64, this is no-op. */
    62 #define asid_put_arch(x)
     49#define ASID_MAX_ARCH           (RID_MAX/RIDS_PER_ASID)
    6350
    6451#endif
  • arch/mips32/include/mm/asid.h

    rd4efc19 ra60c748  
    3232#include <arch/types.h>
    3333
    34 #define ASID_STEALING_ENABLED   1
    35 #define ASID_MAX_ARCH           255
     34#define ASID_MAX_ARCH           255     /* 2^8 - 1 */
    3635
    3736typedef __u8 asid_t;
  • arch/sparc64/include/mm/asid.h

    rd4efc19 ra60c748  
    3737typedef __u16 asid_t;
    3838
    39 #define ASID_STEALING_ENABLED   1
    4039#define ASID_MAX_ARCH           8191    /* 2^13 - 1 */
    4140
  • genarch/src/mm/asid.c

    rd4efc19 ra60c748  
    9595        ipl = interrupts_disable();
    9696        spinlock_lock(&asidlock);
    97         if (ASID_STEALING_ENABLED && asids_allocated == ASIDS_ALLOCABLE) {
     97        if (asids_allocated == ASIDS_ALLOCABLE) {
    9898
    9999                /*
Note: See TracChangeset for help on using the changeset viewer.