From owner-freebsd-current@FreeBSD.ORG Mon Jan 5 02:01:20 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8AC4D903; Mon, 5 Jan 2015 02:01:20 +0000 (UTC) Received: from mail-vc0-x22e.google.com (mail-vc0-x22e.google.com [IPv6:2607:f8b0:400c:c03::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 339A964C84; Mon, 5 Jan 2015 02:01:20 +0000 (UTC) Received: by mail-vc0-f174.google.com with SMTP id id10so8066973vcb.19; Sun, 04 Jan 2015 18:01:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=t7rMM6MMyKZFrTvYCUE4IflJQSpSfmYn1gqwyUyMM0Q=; b=NZ9E4zhnSxuttyW0aweyKKsFLYBL/8uso8gWUqhvSJsV80nwCHAmFio/hlS4IPM0Fc xeGZBY5qU+VoA8Nj60gTLyonAL4B7n8GRVvkrP05yhVpTUkpGkkk2ZYR2FMKq/DGa/Lz L11fSk/4BXFjugEyv6u0LygRotfAZCsmi9YApIZKrNcsPxiuPmRLStRQE1b9Z2bKWxGk Ji48urfh+s8iQtb1gHtQMFd+GN6nfmLMR/j3yHg4N6x1ohzQf3P5KarMpxooaoJrGzqm 9FkJVn20qJYcrYqEVk+ZhyNHXcM1ucGLrrix+NYBq8EXEwNhF08HOtFBTEp04p+11cEi r+Cw== MIME-Version: 1.0 X-Received: by 10.52.66.200 with SMTP id h8mr46352692vdt.97.1420423279034; Sun, 04 Jan 2015 18:01:19 -0800 (PST) Received: by 10.52.117.108 with HTTP; Sun, 4 Jan 2015 18:01:18 -0800 (PST) In-Reply-To: References: Date: Sun, 4 Jan 2015 19:01:18 -0700 Message-ID: Subject: Re: [CFT] Paravirtualized KVM clock From: Jim Harris To: Adrian Chadd Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: FreeBSD-current , Bryan Venteicher , "freebsd-arch@freebsd.org" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jan 2015 02:01:20 -0000 On Sun, Jan 4, 2015 at 12:00 PM, Adrian Chadd wrote: > ... so, out of pure curiousity - what's making the benchmark go > faster? Is it userland side of things calling clock methods, or > something in the kernel, or both? > > Most likely GEOM statistic gathering in the kernel but Bryan would have to confirm. I intermittently saw this same kind of massive slowdown in nvme(4) performance a couple of years back due to a bug in the TSC self-check code which has since been fixed. The bug would result in falling back to HPET and all of the clock calls from the GEOM code for each I/O would kill performance. > > -adrian > > > On 4 January 2015 at 09:56, Bryan Venteicher > wrote: > > For the last few weeks, I've been working on adding support for KVM clock > > in the projects/paravirt branch. Currently, a KVM VM guest will end up > > selecting either the HPET or ACPI as the timecounter source. > Unfortunately, > > this is very costly since every timecounter fetch causes a VM exit. KVM > > clock allows the guest to use the TSC instead; it is very similar to the > > existing Xen timer. > > > > The performance difference between HPET/ACPI and KVMCLOCK can be > dramatic: > > a simple disk benchmark goes from 10K IOPs to 100K IOPs. > > > > The patch is attached is attached or available at [1]. I'd appreciate any > > testing. > > > > Also as a part of this, I've tried to generalized a bit of our existing > > hypervisor guest code, with the eventual goal of being able to support > more > > invasive PV operations. The patch series is viewable in Phabricator. > > > > https://reviews.freebsd.org/D1429 - paravirt: Generalize parts of the > XEN > > timer code into pvclock > > https://reviews.freebsd.org/D1430 - paravirt: Add interface to calculate > > the TSC frequency from pvclock > > https://reviews.freebsd.org/D1431 - paravirt: Add simple hypervisor > > registration and detection interface > > https://reviews.freebsd.org/D1432 - paravirt: Add detection of bhyve > using > > new hypervisor interface > > https://reviews.freebsd.org/D1433 - paravirt: Add detection of VMware > using > > new hypervisor interface > > https://reviews.freebsd.org/D1434 - paravirt: Add detection of KVM using > > new hypervisor interface > > https://reviews.freebsd.org/D1435 - paravirt: Add KVM clock timecounter > > support > > > > My current plan is to MFC this series to 10-STABLE, and commit a > > self-contained KVM clock to the other stable branches. > > > > [1] - https://people.freebsd.org/~bryanv/patches/kvm_clock-1.patch > > > > _______________________________________________ > > freebsd-arch@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-arch > > To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >