{"id":831027,"url":"http://patchwork.ozlabs.org/api/1.2/covers/831027/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/cover/1509072544-89012-1-git-send-email-eswierk@skyportsystems.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1509072544-89012-1-git-send-email-eswierk@skyportsystems.com>","list_archive_url":null,"date":"2017-10-27T02:49:02","name":"[0/2] e1000e: Reimplement e1000 as a variant of e1000e","submitter":{"id":71296,"url":"http://patchwork.ozlabs.org/api/1.2/people/71296/?format=json","name":"Andrew S. Rightenburg\" via qemu development","email":"qemu-devel@nongnu.org"},"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/cover/1509072544-89012-1-git-send-email-eswierk@skyportsystems.com/mbox/","series":[{"id":10475,"url":"http://patchwork.ozlabs.org/api/1.2/series/10475/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=10475","date":"2017-10-27T02:49:02","name":"e1000e: Reimplement e1000 as a variant of e1000e","version":1,"mbox":"http://patchwork.ozlabs.org/series/10475/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/831027/comments/","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=skyportsystems.com header.i=@skyportsystems.com\n\theader.b=\"Q2EZg/2V\"; dkim-atps=neutral"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yNSz24w3xz9t2h\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 27 Oct 2017 13:50:05 +1100 (AEDT)","from localhost ([::1]:55514 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1e7uig-0003Uw-I6\n\tfor incoming@patchwork.ozlabs.org; Thu, 26 Oct 2017 22:50:02 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:46692)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <eswierk@skyportsystems.com>) id 1e7uiF-0003Ug-Ti\n\tfor qemu-devel@nongnu.org; Thu, 26 Oct 2017 22:49:37 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <eswierk@skyportsystems.com>) id 1e7uiC-0002Vn-RU\n\tfor qemu-devel@nongnu.org; Thu, 26 Oct 2017 22:49:35 -0400","from mail-pf0-x242.google.com ([2607:f8b0:400e:c00::242]:49550)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <eswierk@skyportsystems.com>)\n\tid 1e7uiC-0002Um-LU\n\tfor qemu-devel@nongnu.org; Thu, 26 Oct 2017 22:49:32 -0400","by mail-pf0-x242.google.com with SMTP id i5so3912511pfe.6\n\tfor <qemu-devel@nongnu.org>; Thu, 26 Oct 2017 19:49:32 -0700 (PDT)","from localhost.localdomain ([104.153.224.169])\n\tby smtp.gmail.com with ESMTPSA id\n\tu7sm11030522pfh.142.2017.10.26.19.49.21\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tThu, 26 Oct 2017 19:49:30 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=skyportsystems.com; s=google;\n\th=from:to:cc:subject:date:message-id;\n\tbh=Oh0kcLMldrbBXDiRSxODQF6lC9D0PXk2qaVkM36Y0yE=;\n\tb=Q2EZg/2Vt34+Aq5B0Ru5lkGSCEZzkGEniYTLXmQEOcdM3s1fcIINfvg1OzAX0Bc100\n\tbTZmISIFUjYya153MDICr7TPeMBDhLnRBzvzqkyF1X25eVGAlVFXbtP8jglHgI7n0TGx\n\tflwfy1+35T3qYysbXSKiJVEbyH4IRiDrtqKiY=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=Oh0kcLMldrbBXDiRSxODQF6lC9D0PXk2qaVkM36Y0yE=;\n\tb=nsDn1lxDzSd4cH6fKUJ+BzNZG0dwIyf5P7HpQAfxZIjt5RXlejbgGnqSHJSkGqsX8H\n\tphQ6s4yX/jlj07OJUwbTXt0c0FpRjm8zSYCy4fAYAk3qkX6xT6swq2QMSLs5sk14bCFZ\n\tCoCNjz78Rvx0LWYhKCPFwFGSPqCPKerIF2I9twnYdVE6wHM8rUATTuwCXTWKDT1Iy1WS\n\tB9moX8d6IaYZtda3T/UpLJhQ91sURruAPZGj/jJ57f9CAttRREBs1S/UOUoJLMXrDd2u\n\tIBaRh/MrQCDhzFeUBir5cOizuEiocp/U0uXZ5OuCMdKqMnFRuflL6u7xbQ4v0F89eVSF\n\tzdGw==","X-Gm-Message-State":"AMCzsaV4F+KTiy35XECwSnXZQIrlcuKflRYuL7NZdP6JNGt+ZsjltIJs\n\tdFTjjdO1lIOV2u7m6r9odUM1Aw==","X-Google-Smtp-Source":"ABhQp+T//lshBZ5g5PpShEVx4L8c3NXr940DshWM0JQgfz9BWMJpkGNT+Kd9lNR5JmuTDG/1wjq+SQ==","X-Received":"by 10.99.186.6 with SMTP id k6mr6672972pgf.195.1509072571317;\n\tThu, 26 Oct 2017 19:49:31 -0700 (PDT)","To":"Ed Swierk <eswierk@skyportsystems.com>,\n\tqemu-devel@nongnu.org","Date":"Thu, 26 Oct 2017 19:49:02 -0700","Message-Id":"<1509072544-89012-1-git-send-email-eswierk@skyportsystems.com>","X-Mailer":"git-send-email 1.9.1","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"2607:f8b0:400e:c00::242","Subject":"[Qemu-devel] [PATCH 0/2] e1000e: Reimplement e1000 as a variant of\n\te1000e","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","From":"Ed Swierk via Qemu-devel <qemu-devel@nongnu.org>","Reply-To":"Ed Swierk <eswierk@skyportsystems.com>","Cc":"Dmitry Fleytman <dmitry@daynix.com>,\n\tLeonid Bloch <leonid.bloch@ravellosystems.com>,\n\tJason Wang <jasowang@redhat.com>, Stefan Hajnoczi <stefanha@gmail.com>,\n\tPeter Maydell <peter.maydell@linaro.org>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"From a hardware functionality and register perspective, the Intel\n8254x Gigabit Ethernet Controller[1] is roughly a subset of the Intel\n82574[2], making it practical to implement e1000 device emulation as\nan extension of e1000e.\n\nThat would be a step towards eliminating the existing e1000\nimplementation--a bunch of semi-redundant code with its own bugs (like\nthe faulty tx checksum offload I reported recently[3]).\n\n[1] https://www.intel.com/content/dam/doc/manual/pci-pci-x-family-gbe-controllers-software-dev-manual.pdf\n[2] https://www.intel.com/content/dam/doc/datasheet/82574l-gbe-controller-datasheet.pdf\n[3] https://lists.nongnu.org/archive/html/qemu-devel/2017-10/msg03008.html\n\nThis patch series adds a new e1000-ng device but leaves the existing\ne1000 device alone. Linux 4.1 and Windows 10 e1000 guest drivers\nrecognize the e1000-ng device and successfully pass traffic on a\nLinux host.\n\nPreliminary performance measurements are encouraging: with e1000-ng,\nsingle-threaded TCP iperf shows about a 2x speedup in tx and rx\nthroughput vs e1000, and CPU usage is slighly lower.\n\nA ton of work is needed before e1000-ng will be ready to supplant\ne1000: testing with every random guest OS, fixing bugs, figuring out\nmigration and other missing functionality. There's no way I can do\nthis myself.\n\nI'd like to propose a more modest and achievable short-term goal: find\nand fix any regressions that might affect users of e1000e and e1000,\nso that the patches can be applied and folks can easily start trying\nout e1000-ng with their favorite guest OS. That means accepting (for\nnow) known deficiencies in the new e1000-ng devices, which can be\naddressed by myself and (hopefully) others in follow-up patches. Does\nthat sound reasonable?\n\nEd Swierk (2):\n  e1000e: Infrastructure for e1000 devices\n  e1000e: Add e1000 devices\n\n hw/net/e1000e.c      | 236 +++++++++++++++++++++++++++++++++++++-----------\n hw/net/e1000e_core.c | 249 +++++++++++++++++++++++++++++++++++++--------------\n hw/net/e1000e_core.h |  25 +++++-\n 3 files changed, 387 insertions(+), 123 deletions(-)"}