ia64/xen-unstable

diff xen/include/asm-ia64/domain.h @ 9770:ced37bea0647

[IA64] FPH enabling + cleanup

Move contents of switch_to macro from xensystem.h to context_switch function.
Initialize FPU on all processors. FPH is always enabled in Xen.
Speed up context-switch (a little bit!) by not enabling/disabling FPH.
Cleanup (unused function/variablesi/fields, debug printf...)
vmx_ia64_switch_to removed (was unused).

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
author awilliam@xenbuild.aw
date Tue Apr 25 22:35:41 2006 -0600 (2006-04-25)
parents 7c7bcf173f8b
children 3ab5ab4d6d75
line diff
     1.1 --- a/xen/include/asm-ia64/domain.h	Tue Apr 25 22:32:14 2006 -0600
     1.2 +++ b/xen/include/asm-ia64/domain.h	Tue Apr 25 22:35:41 2006 -0600
     1.3 @@ -63,7 +63,6 @@ struct arch_domain {
     1.4      offsetof(vcpu_info_t, evtchn_upcall_mask))
     1.5  
     1.6  struct arch_vcpu {
     1.7 -#if 1
     1.8  	TR_ENTRY itrs[NITRS];
     1.9  	TR_ENTRY dtrs[NDTRS];
    1.10  	TR_ENTRY itlb;
    1.11 @@ -81,8 +80,11 @@ struct arch_vcpu {
    1.12  	unsigned long domain_itm;
    1.13  	unsigned long domain_itm_last;
    1.14  	unsigned long xen_itm;
    1.15 -#endif
    1.16 +
    1.17      mapped_regs_t *privregs; /* save the state of vcpu */
    1.18 +
    1.19 +    /* These fields are copied from arch_domain to make access easier/faster
    1.20 +       in assembly code.  */
    1.21      unsigned long metaphysical_rr0;		// from arch_domain (so is pinned)
    1.22      unsigned long metaphysical_rr4;		// from arch_domain (so is pinned)
    1.23      unsigned long metaphysical_saved_rr0;	// from arch_domain (so is pinned)
    1.24 @@ -90,6 +92,7 @@ struct arch_vcpu {
    1.25      int breakimm;			// from arch_domain (so is pinned)
    1.26      int starting_rid;		/* first RID assigned to domain */
    1.27      int ending_rid;		/* one beyond highest RID assigned to domain */
    1.28 +
    1.29      struct thread_struct _thread;	// this must be last
    1.30  
    1.31      thash_cb_t vtlb;
    1.32 @@ -108,58 +111,9 @@ struct arch_vcpu {
    1.33  // FOLLOWING FROM linux-2.6.7/include/sched.h
    1.34  
    1.35  struct mm_struct {
    1.36 -	struct vm_area_struct * mmap;		/* list of VMAs */
    1.37 -#ifndef XEN
    1.38 -	struct rb_root mm_rb;
    1.39 -#endif
    1.40 -	struct vm_area_struct * mmap_cache;	/* last find_vma result */
    1.41 -	unsigned long free_area_cache;		/* first hole */
    1.42  	pgd_t * pgd;
    1.43 -	atomic_t mm_users;			/* How many users with user space? */
    1.44 -	atomic_t mm_count;			/* How many references to "struct mm_struct" (users count as 1) */
    1.45 -	int map_count;				/* number of VMAs */
    1.46 -#ifndef XEN
    1.47 -	struct rw_semaphore mmap_sem;
    1.48 -#endif
    1.49 -	spinlock_t page_table_lock;		/* Protects task page tables and mm->rss */
    1.50 -
    1.51 +    //	atomic_t mm_users;			/* How many users with user space? */
    1.52  	struct list_head pt_list;		/* List of pagetable */
    1.53 -
    1.54 -	struct list_head mmlist;		/* List of all active mm's.  These are globally strung
    1.55 -						 * together off init_mm.mmlist, and are protected
    1.56 -						 * by mmlist_lock
    1.57 -						 */
    1.58 -
    1.59 -#ifndef XEN
    1.60 -	unsigned long start_code, end_code, start_data, end_data;
    1.61 -	unsigned long start_brk, brk, start_stack;
    1.62 -	unsigned long arg_start, arg_end, env_start, env_end;
    1.63 -	unsigned long rss, total_vm, locked_vm;
    1.64 -	unsigned long def_flags;
    1.65 -
    1.66 -	unsigned long saved_auxv[40]; /* for /proc/PID/auxv */
    1.67 -
    1.68 -	unsigned dumpable:1;
    1.69 -#endif
    1.70 -#ifdef CONFIG_HUGETLB_PAGE
    1.71 -	int used_hugetlb;
    1.72 -#endif
    1.73 -#ifndef XEN
    1.74 -	cpumask_t cpu_vm_mask;
    1.75 -
    1.76 -	/* Architecture-specific MM context */
    1.77 -	mm_context_t context;
    1.78 -
    1.79 -	/* coredumping support */
    1.80 -	int core_waiters;
    1.81 -	struct completion *core_startup_done, core_done;
    1.82 -
    1.83 -	/* aio bits */
    1.84 -	rwlock_t		ioctx_list_lock;
    1.85 -	struct kioctx		*ioctx_list;
    1.86 -
    1.87 -	struct kioctx		default_kioctx;
    1.88 -#endif
    1.89  };
    1.90  
    1.91  extern struct mm_struct init_mm;