From owner-svn-src-projects@FreeBSD.ORG Sat Oct 18 22:47:45 2008 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 529BE1065687; Sat, 18 Oct 2008 22:47:45 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 40C4F8FC08; Sat, 18 Oct 2008 22:47:45 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id m9IMljak027629; Sat, 18 Oct 2008 22:47:45 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id m9IMljp5027626; Sat, 18 Oct 2008 22:47:45 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200810182247.m9IMljp5027626@svn.freebsd.org> From: Kip Macy Date: Sat, 18 Oct 2008 22:47:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184035 - in projects/release_6_3_xen/sys/i386: i386 xen X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Oct 2008 22:47:45 -0000 Author: kmacy Date: Sat Oct 18 22:47:44 2008 New Revision: 184035 URL: http://svn.freebsd.org/changeset/base/184035 Log: Use post 6.3 pcpu implementation, it simplifies the code and doesn't involve working around the default placement of privatespace in the hypervisor's address space Modified: projects/release_6_3_xen/sys/i386/i386/machdep.c projects/release_6_3_xen/sys/i386/xen/mp_machdep.c projects/release_6_3_xen/sys/i386/xen/xen_machdep.c Modified: projects/release_6_3_xen/sys/i386/i386/machdep.c ============================================================================== --- projects/release_6_3_xen/sys/i386/i386/machdep.c Sat Oct 18 22:22:25 2008 (r184034) +++ projects/release_6_3_xen/sys/i386/i386/machdep.c Sat Oct 18 22:47:44 2008 (r184035) @@ -126,7 +126,9 @@ __FBSDID("$FreeBSD$"); #include #endif #ifdef SMP +#ifndef XEN #include +#endif #include #endif @@ -223,9 +225,12 @@ vm_paddr_t dump_avail[PHYSMAP_SIZE + 2]; struct kva_md_info kmi; static struct trapframe proc0_tf; -#ifndef SMP +#if !defined(SMP) && !defined(XEN) static struct pcpu __pcpu; #endif +#ifdef XEN +struct pcpu __pcpu[MAXCPU]; +#endif struct mtx icu_lock; @@ -2205,11 +2210,7 @@ init386(int first) gdt_segs[GUDATA_SEL].ssd_limit = atop(HYPERVISOR_VIRT_START + MTOPSIZE); gdt_segs[GBIOSLOWMEM_SEL].ssd_limit = atop(HYPERVISOR_VIRT_START + MTOPSIZE); -#ifdef SMP - pc = &SMP_prvspace[0].pcpu; -#else - pc = &__pcpu; -#endif + pc = &__pcpu[0]; gdt_segs[GPRIV_SEL].ssd_base = (int) pc; gdt_segs[GPROC0_SEL].ssd_base = (int) &pc->pc_common_tss; Modified: projects/release_6_3_xen/sys/i386/xen/mp_machdep.c ============================================================================== --- projects/release_6_3_xen/sys/i386/xen/mp_machdep.c Sat Oct 18 22:22:25 2008 (r184034) +++ projects/release_6_3_xen/sys/i386/xen/mp_machdep.c Sat Oct 18 22:47:44 2008 (r184035) @@ -81,7 +81,6 @@ __FBSDID("$FreeBSD$"); #include #include /** COUNT_XINVLTLB_HITS */ #include -#include #include #include @@ -623,7 +622,7 @@ start_all_aps(void) bootAPgdt = gdt + (512*cpu); /* Get per-cpu data */ - pc = &SMP_prvspace[bootAP].pcpu; + pc = &__pcpu[bootAP]; pcpu_init(pc, bootAP, sizeof(struct pcpu)); pc->pc_apic_id = cpu_apic_ids[bootAP]; pc->pc_prvspace = pc; Modified: projects/release_6_3_xen/sys/i386/xen/xen_machdep.c ============================================================================== --- projects/release_6_3_xen/sys/i386/xen/xen_machdep.c Sat Oct 18 22:22:25 2008 (r184034) +++ projects/release_6_3_xen/sys/i386/xen/xen_machdep.c Sat Oct 18 22:47:44 2008 (r184035) @@ -65,10 +65,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef SMP -#include -#endif - #include @@ -834,7 +830,7 @@ initvalues(start_info_t *startinfo) vm_paddr_t pdir_shadow_ma; #endif unsigned long i; - int ncpus; + int ncpus = MAXCPU; nkpt = min( min( @@ -842,12 +838,6 @@ initvalues(start_info_t *startinfo) NPGPTD*NPDEPG - KPTDI), (HYPERVISOR_VIRT_START - KERNBASE) >> PDRSHIFT); -#ifdef SMP - ncpus = MAXCPU; -#else - ncpus = 1; -#endif - HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments); #ifdef notyet /* @@ -873,7 +863,7 @@ initvalues(start_info_t *startinfo) cur_space += (4 * PAGE_SIZE); bootmem_end = (char *)cur_space; - /* allocate page for gdt */ + /* allocate pages for gdt */ gdt = (union descriptor *)cur_space; cur_space += PAGE_SIZE*ncpus; @@ -988,8 +978,6 @@ initvalues(start_info_t *startinfo) PT_UPDATES_FLUSH(); - - memcpy(((uint8_t *)IdlePTDnew) + ((unsigned int)(KERNBASE >> 18)), ((uint8_t *)IdlePTD) + ((KERNBASE >> 18) & PAGE_MASK), l1_pages*sizeof(pt_entry_t));