Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 May 2016 13:44:50 +0300
From:      =?UTF-8?Q?=D0=A4=D0=BE=D1=81=D1=81=D0=B0?= <fossa-artem@mail.ru>
To:        freebsd-drivers@freebsd.org
Subject:   Marvell Yukon II (msk driver) polling support
Message-ID:  <26544a90c313ee25095ac34c602a0594@gateway.fossa.fossa>

next in thread | raw e-mail | index | archive | help
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: <owner-freebsd-drivers@freebsd.org>
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 <freebsd-drivers@mailman.ysv.freebsd.org>;
 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 <freebsd-drivers@freebsd.org>; 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 <freebsd-drivers@freebsd.org>; 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 <fossa-artem@mail.ru>)
 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?= <fossa-artem@mail.ru>
To: freebsd-drivers@freebsd.org
Subject: Re: Marvell Yukon II (msk driver) polling support
Message-ID: <aebeabd4517945274837e026aaabbcd6@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 <freebsd-drivers.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-drivers>, 
 <mailto:freebsd-drivers-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-drivers/>;
List-Post: <mailto:freebsd-drivers@freebsd.org>
List-Help: <mailto:freebsd-drivers-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-drivers>, 
 <mailto:freebsd-drivers-request@freebsd.org?subject=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: <owner-freebsd-drivers@freebsd.org>
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 <freebsd-drivers@mailman.ysv.freebsd.org>;
 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 <freebsd-drivers@freebsd.org>; 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 <freebsd-drivers@freebsd.org>; 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 <pyunyh@gmail.com>
X-Google-Original-From: "YongHyeon PYUN" <yongari@gmail.com>
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==?= <fossa-artem@mail.ru>
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 <freebsd-drivers.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-drivers>, 
 <mailto:freebsd-drivers-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-drivers/>;
List-Post: <mailto:freebsd-drivers@freebsd.org>
List-Help: <mailto:freebsd-drivers-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-drivers>, 
 <mailto:freebsd-drivers-request@freebsd.org?subject=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!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?26544a90c313ee25095ac34c602a0594>