From owner-svn-src-user@FreeBSD.ORG Thu Feb 5 14:02:04 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD47C106566C; Thu, 5 Feb 2009 14:02:04 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AB6438FC20; Thu, 5 Feb 2009 14:02:04 +0000 (UTC) (envelope-from dfr@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 n15E24rc028588; Thu, 5 Feb 2009 14:02:04 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n15E24bY028587; Thu, 5 Feb 2009 14:02:04 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200902051402.n15E24bY028587@svn.freebsd.org> From: Doug Rabson Date: Thu, 5 Feb 2009 14:02:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r188143 - user/dfr/xenhvm/6/sys/amd64/amd64 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 14:02:05 -0000 Author: dfr Date: Thu Feb 5 14:02:04 2009 New Revision: 188143 URL: http://svn.freebsd.org/changeset/base/188143 Log: Add some disabled code which calls the hypervisor to flush TLBs. Disabled because it seems to be slower in my tests. Modified: user/dfr/xenhvm/6/sys/amd64/amd64/pmap.c Modified: user/dfr/xenhvm/6/sys/amd64/amd64/pmap.c ============================================================================== --- user/dfr/xenhvm/6/sys/amd64/amd64/pmap.c Thu Feb 5 11:48:10 2009 (r188142) +++ user/dfr/xenhvm/6/sys/amd64/amd64/pmap.c Thu Feb 5 14:02:04 2009 (r188143) @@ -144,6 +144,11 @@ __FBSDID("$FreeBSD$"); #ifdef SMP #include #endif +#ifdef XENHVM +#include +#include +#include +#endif #ifndef PMAP_SHPGPERPROC #define PMAP_SHPGPERPROC 200 @@ -793,8 +798,20 @@ pmap_invalidate_all(pmap_t pmap) sched_pin(); if (pmap == kernel_pmap || pmap->pm_active == all_cpus) { - invltlb(); - smp_invltlb(); +#if defined(XENHVM) && defined(notdef) + /* + * As far as I can tell, this makes things slower, at + * least where there are only two physical cpus and + * the host is not overcommitted. + */ + if (is_running_on_xen()) { + HYPERVISOR_hvm_op(HVMOP_flush_tlbs, NULL); + } else +#endif + { + invltlb(); + smp_invltlb(); + } } else { cpumask = PCPU_GET(cpumask); other_cpus = PCPU_GET(other_cpus);