From owner-soc-status@FreeBSD.ORG Tue Jun 23 19:53:54 2015 Return-Path: Delivered-To: soc-status@nevdull.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 13477F0E for ; Tue, 23 Jun 2015 19:53:54 +0000 (UTC) (envelope-from stefanogarzarella@gmail.com) Received: from mail-wi0-x234.google.com (mail-wi0-x234.google.com [IPv6:2a00:1450:400c:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A1A90614; Tue, 23 Jun 2015 19:53:53 +0000 (UTC) (envelope-from stefanogarzarella@gmail.com) Received: by wicnd19 with SMTP id nd19so115775157wic.1; Tue, 23 Jun 2015 12:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc:content-type; bh=ZMcZFYvNGus5hRLfC6r/1WrsZpV4IA2xGzS3bv9BxuU=; b=vltJ/bGest9C4vtx3Je147pK68m/1rdpFJ8JKRVBCJ2OSg6S2p501w9i+ahQvIJBpq F/3SJNTX5cIMs0n9juhD4lfmzNHdX8jw/qlIg21YxkV+h0j4EuSidC9GaD4bYGPzsXmg eBEJ32mHUT3UiLyl7LkgI1pvVT7tn0FMWjPo2Z4QBxswp5+b/khrqi4wnhHG2pPeL3Fr x24dEY5AJd9bPcHFGbNMgcfmE8XKDUWy7wxlPpyy38Ka3bAWCDwltTTNtOX342KF7kiX nU/VcntZD9CifWEE9RlLxN2XkgMGbJgL/3NBOaRcn0V+M8M8zql6sNJt3Q6ooa0ucRMN 2j8Q== X-Received: by 10.180.89.234 with SMTP id br10mr2664652wib.86.1435089232250; Tue, 23 Jun 2015 12:53:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.27.39.135 with HTTP; Tue, 23 Jun 2015 12:53:32 -0700 (PDT) From: Stefano Garzarella Date: Tue, 23 Jun 2015 21:53:32 +0200 Message-ID: Subject: ptnetmap on bhyve status report To: soc-status@freebsd.org Cc: Luigi Rizzo , Peter Grehan Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2015 19:53:54 -0000 Dear All, I=E2=80=99m finished to implement ptnetmap on top of virtio-net. The FreeBSD code is available on https://svnweb.freebsd.org/socsvn/soc2015/stefano/ I tested it with FreeBSD and Linux guest and QEMU-KVM host. I tried to do very small changes in the virtio-net device driver, so the major modifications are in the sys/dev/netmap/if_vtnet_netmap.h I used virtio-net device to exchange notification between host and guest through interrupt (host -> guest) and iowrite (guest -> host), and ptnetmap-memdev to share netmap memory. ptnetmap-memdev is a PCI device that expose, through PCI_BAR, the netmap memory allocator to the guest. I had the same performance of previous implementation (with e1000): 24 Mpps with VALE ports, up to 50 Mpps with netmap-pipes and 14.88 Mpps (line-rate) with 10-Gbps NIC (ixgbe). I'm going to start the next step: implement the ptnetmap-memdev frontend in bhyve to map (through PCI_BAR) the netmap memory into the guest. The device driver for the guest is already done, because I used it with QEMU-KVM. Thanks, Stefano Garzarella --=20 *Stefano Garzarella* Software Engineer e-mail: stefano.garzarella@gmail.com github: http://github.com/stefano-garzarella linkedin: http://it.linkedin.com/pub/stefano-garzarella