From owner-freebsd-drivers@freebsd.org Mon May 30 10:45:21 2016 Return-Path: Delivered-To: freebsd-drivers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4EA0B54692 for ; Mon, 30 May 2016 10:45:21 +0000 (UTC) (envelope-from fossa-artem@mail.ru) Received: from fallback5.mail.ru (fallback5.mail.ru [94.100.181.253]) by mx1.freebsd.org (Postfix) with ESMTP id 565BE1B9A for ; Mon, 30 May 2016 10:45:20 +0000 (UTC) (envelope-from fossa-artem@mail.ru) Received: from smtp47.i.mail.ru (smtp47.i.mail.ru [94.100.177.107]) by fallback5.mail.ru (mPOP.Fallback_MX) with ESMTP id A316CB253F73 for ; Mon, 30 May 2016 13:45:18 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2; h=Message-ID:Subject:To:From:Date:Content-Type:MIME-Version; bh=JQpnE4OYiwcl8kLnDzwRuPV3F62MgzTyeoI6wMN/lpM=; b=HI3BAN2C0LD69W3+9cBMTgRVjb7rUjeMDTODXniIrlwfABMjHwnmgIrQ51jKpcyru4vq+18I1f2/NN0sR4YJWfKDCK7KWVuDEPG0G1V4b63lnoi0JZS3xpO5VJQS+Adqi2rPdPZRoI3DsTiul/qILz0sm4KGhVdjeakT9hTbgCI=; Received: from [212.26.245.34] (port=34577 helo=roundcube.home.whitefossa.org) by smtp47.i.mail.ru with esmtpa (envelope-from ) id 1b7Kh3-0003E2-6h for freebsd-drivers@freebsd.org; Mon, 30 May 2016 13:45:09 +0300 MIME-Version: 1.0 Date: Mon, 30 May 2016 13:44:50 +0300 From: =?UTF-8?Q?=D0=A4=D0=BE=D1=81=D1=81=D0=B0?= To: freebsd-drivers@freebsd.org Subject: Marvell Yukon II (msk driver) polling support Message-ID: <26544a90c313ee25095ac34c602a0594@gateway.fossa.fossa> X-Sender: fossa-artem@mail.ru User-Agent: Roundcube Webmail/1.1.4 X-Mras: OK Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 May 2016 10:45:21 -0000 Hi All, I have a home NAS server with two Marvell Yukon II GBE NICs working in aggregated mode (lagg, round-robin packet distribution). When I'm measuring network performance using iperf, I'm getting near 1.5GBps speed and one core of my old Xeon E5060 fully loaded with interrupts. Of course, I've thought about enabling polling to reduce CPU load, but found, that msk driver doesn't support it. I've some experience with writing Windows drivers, and I've wrote a lot of firmware for AVR8 MCUs. Can someone give me a starting point, I want to make a patch to msk driver to enable support of polling? Regards, Fossa. From owner-freebsd-drivers@freebsd.org Mon May 30 13:38:35 2016 Return-Path: Delivered-To: freebsd-drivers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9DD72B53946 for ; Mon, 30 May 2016 13:38:35 +0000 (UTC) (envelope-from fossa-artem@mail.ru) Received: from fallback8.mail.ru (fallback8.mail.ru [94.100.181.110]) by mx1.freebsd.org (Postfix) with ESMTP id F36E41301 for ; Mon, 30 May 2016 13:38:34 +0000 (UTC) (envelope-from fossa-artem@mail.ru) Received: from smtp1.mail.ru (smtp1.mail.ru [94.100.179.111]) by fallback8.mail.ru (mPOP.Fallback_MX) with ESMTP id 392509E865C9 for ; Mon, 30 May 2016 15:59:39 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2; h=Message-ID:Subject:To:From:Date:Content-Type:MIME-Version; bh=ZwqLgTZ0k6jM9oAT3Zw28NMDoY20hB12OGQ+zAMvb58=; b=SZ8I2Z42/paZ6qPAqbRXZ7vcAf3eS1FO6DX6GFbUY6AwMNAuWYYNtcHk3nqXXeFShKsedebVHUboYzqYz1HqO4Ui4byacGFV/YRrAB/6FCvKfdLgIpJ+xownQ1AgQW4nd51NgHF2usDRI2Z1bGtB8ydRYqHSIKg128o6rSVUTSg=; Received: from [212.26.245.34] (port=23152 helo=roundcube.home.whitefossa.org) by smtp1.mail.ru with esmtpa (envelope-from ) id 1b7Mn4-0000Ah-OF for freebsd-drivers@freebsd.org; Mon, 30 May 2016 15:59:31 +0300 MIME-Version: 1.0 Date: Mon, 30 May 2016 15:59:12 +0300 From: =?UTF-8?Q?=D0=A4=D0=BE=D1=81=D1=81=D0=B0?= To: freebsd-drivers@freebsd.org Subject: Re: Marvell Yukon II (msk driver) polling support Message-ID: X-Sender: fossa-artem@mail.ru User-Agent: Roundcube Webmail/1.1.4 X-Mras: OK Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 May 2016 13:38:35 -0000 Do I understand correctly, that I need to move msk_intr_gmac() to polling loop? From owner-freebsd-drivers@freebsd.org Tue May 31 01:57:58 2016 Return-Path: Delivered-To: freebsd-drivers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA560B554CB for ; Tue, 31 May 2016 01:57:58 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from mail-pa0-x235.google.com (mail-pa0-x235.google.com [IPv6:2607:f8b0:400e:c03::235]) (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 6AA8D178B for ; Tue, 31 May 2016 01:57:58 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: by mail-pa0-x235.google.com with SMTP id eu11so57185679pad.3 for ; Mon, 30 May 2016 18:57:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:date:to:cc:subject:message-id:reply-to:references:mime-version :content-disposition:in-reply-to:user-agent; bh=my5WG/+19qNBev7jlQpMsLMgY+bKj0PHHRap+Fn4k/Q=; b=WPnNqKCpK4jbmpvdhFFVUE0/cSMCCnRRQ4khwyWxQv4CunwKofDZwKYrJJvycKXpzQ tj3KWwISb+HFeT+Q+eyjM9pZzAFF7lkz29iF/Hfwi6nfwYxHX7XCe08NC7Ur36z9JQar 8/qoUgE5oCsa4P5x5uj29NrMwOz8wP22Lxk3FGcwItHjBngv5VtuK206Ej5M/J6kkFUs rcRstbFCqYCgcZm1ALe380wqH17w5eAyRDbR5MR9lYQltGOVc1+3noX8O/K3IF1TUfZu Tfg65hZhuX1BB10+1L1x0kL2nrEuc/SX2ND46ktQ570GqF2B/kGry/ZXMEJSBFtfykjB O7+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:date:to:cc:subject:message-id:reply-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=my5WG/+19qNBev7jlQpMsLMgY+bKj0PHHRap+Fn4k/Q=; b=lHy0BSgYF6b7cT87dJwzQK2MoTjMhAtFUcL45MU9kLV/kQGWDomlHhA6+wH7TnWhm2 4XAVg/Id0xVoOZqRLVNJIXWPfzNbMAarfuHQqroRPufpessjcAJ6yVwCWSUJgjzl8zvx wR7wmviDVUxv+1Uv0tQAjtdHqtk3nMb1OGeWzw01Lowiber6dden8rK2u6/JRIbJLeZ7 K/amSBNLu2Xzj9XqgMcF+a6RCzhHAU4qm8oFmfzyFaXBBDmwm6IFRSmI81qVR8IkxMcE N3Guqd7oXSO+Af7J743MkqM366hXQjMfpqkaxCQZRBSWZvJjuM8WxTxt/Gc4IBHPgy7/ 4W3Q== X-Gm-Message-State: ALyK8tJL/ikBvweVfJr+u0+3lP19tYHi9UAwisZzJYjsJTu8VNV8od6/IKo92FUEtH9r5A== X-Received: by 10.66.27.101 with SMTP id s5mr50513260pag.111.1464659877930; Mon, 30 May 2016 18:57:57 -0700 (PDT) Received: from localhost ([106.247.248.2]) by smtp.gmail.com with ESMTPSA id 7sm35697480pfn.30.2016.05.30.18.57.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 May 2016 18:57:56 -0700 (PDT) From: YongHyeon PYUN X-Google-Original-From: "YongHyeon PYUN" Received: by localhost (sSMTP sendmail emulation); Tue, 31 May 2016 10:57:46 +0900 Date: Tue, 31 May 2016 10:57:46 +0900 To: =?EUC-KR?B?0KTQvtGB0YHQsA==?= Cc: freebsd-drivers@freebsd.org Subject: Re: Marvell Yukon II (msk driver) polling support Message-ID: <20160531015746.GA1181@michelle.fasterthan.co.kr> Reply-To: pyunyh@gmail.com References: <26544a90c313ee25095ac34c602a0594@gateway.fossa.fossa> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <26544a90c313ee25095ac34c602a0594@gateway.fossa.fossa> User-Agent: Mutt/1.4.2.3i X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 May 2016 01:57:58 -0000 On Mon, May 30, 2016 at 01:44:50PM +0300, ?????????? via freebsd-drivers wrote: > Hi All, > > I have a home NAS server with two Marvell Yukon II GBE NICs working in > aggregated mode (lagg, round-robin packet distribution). When I'm > measuring network performance using iperf, I'm getting near 1.5GBps > speed and one core of my old Xeon E5060 fully loaded with interrupts. > How many number of interrupts do you see? Default configuration will generate up to 10k interrupts per second and I guess it wouldn't consume all available CPU cycles on your box. If you want to reduce number of interrupts try increasing dev.mskc.%d.int_holdoff sysctl variable. It will reduce number of interrupts with the cost of increased latency. > Of course, I've thought about enabling polling to reduce CPU load, but > found, that msk driver doesn't support it. > > I've some experience with writing Windows drivers, and I've wrote a lot > of firmware for AVR8 MCUs. > > Can someone give me a starting point, I want to make a patch to msk > driver to enable support of polling? > I don't think NAS server requires polling(4) since polling(4) is for very specific workload. If you really want to implement polling(4) for msk(4), see polling-enabled simple drivers like rl(4). Probably you may have to extract most of interrupt handler and add some glue code for callback and ioctls. There is no publicly available data sheet for Yukon II but I guess you can easily get register information relevant to interrupt control from msk(4). Good luck!