From: Andrew Morton <akpm@linux-foundation.org>
To: Alexander Duyck <alexander.h.duyck@intel.com>
Cc: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"gospo@redhat.com" <gospo@redhat.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"greg@kroah.com" <greg@kroah.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"Zhao, Yu" <yu.zhao@intel.com>
Subject: Re: [net-next PATCH 1/2] igbvf: add new driver to support 82576 virtual functions
Date: Wed, 18 Mar 2009 18:56:30 -0700 [thread overview]
Message-ID: <20090318185630.11f3d557.akpm@linux-foundation.org> (raw)
In-Reply-To: <49C1948F.1060300@intel.com>
On Wed, 18 Mar 2009 17:40:47 -0700 Alexander Duyck <alexander.h.duyck@intel.com> wrote:
> Andrew Morton wrote:
> > On Wed, 18 Mar 2009 08:22:46 -0700 Alexander Duyck <alexander.h.duyck@intel.com> wrote:
> >
> >>>>>> +static int igbvf_set_ringparam(struct net_device *netdev,
> >>>>>> + struct ethtool_ringparam *ring)
> >>>>>> +{
> >>>>>> + struct igbvf_adapter *adapter = netdev_priv(netdev);
> >>>>>> + struct igbvf_ring *tx_ring, *tx_old;
> >>>>>> + struct igbvf_ring *rx_ring, *rx_old;
> >>>>>> + int err;
> >>>>>> +
> >>>>>> + if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending))
> >>>>>> + return -EINVAL;
> >>>>>> +
> >>>>>> + while (test_and_set_bit(__IGBVF_RESETTING, &adapter->state))
> >>>>>> + msleep(1);
> >>>>> No timeout needed here? Interrupts might not be working, for example..
> >>>> This bit isn't set in interrupt context. This is always used out of
> >>>> interrupt context and is just to prevent multiple setting changes at the
> >>>> same time.
> >>> Oh. Can't use plain old mutex_lock()?
> >> We have one or two spots that actually check to see if the bit is set
> >> and just report a warning instead of actually waiting on the bit to clear.
> >
> > mutex_is_locked()?
>
> I suppose that would work, but I still would prefer to keep this bit of
> code as it is. My main motivation is just to use what was already
> proven, and the fact is the e1000, e1000e, igb, and several other
> drivers all use this same approach and it works.
OK, that's a reason.
> I don't think we need the extra overhead of the mutex lock since most of
> the calls that end up setting the __IGBVF_RESETTING bit will already be
> wrapped within rtnl_lock/unlock calls. As far as I can tell it looks
> like the only two threads that would ever be competing for the lock
> would be the igbvf_reinit_locked and whatever ethtool or ifconfig
> requests that decide to make changes to the configuration of the netdevice.
You may well find that mutex_lock is more efficient than setting a timer
and waking up once per millisecond. Certainly much lower latency on some
setups given clock granularities of as much as 10 milliseconds.
But it sounds like that's all a separate standalone exercise.
prev parent reply other threads:[~2009-03-19 2:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-11 2:09 [net-next PATCH 1/2] igbvf: add new driver to support 82576 virtual functions Jeff Kirsher
2009-03-11 2:09 ` [net-next PATCH 2/2] igb: add PF to pool if adding a VLVF register value and the VFTA bit is Jeff Kirsher
2009-03-11 5:21 ` [net-next PATCH 1/2] igbvf: add new driver to support 82576 virtual functions Andrew Morton
2009-03-18 0:12 ` Alexander Duyck
2009-03-18 1:08 ` Andrew Morton
2009-03-18 15:22 ` Alexander Duyck
2009-03-18 21:53 ` Andrew Morton
2009-03-19 0:40 ` Alexander Duyck
2009-03-19 1:56 ` Andrew Morton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090318185630.11f3d557.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=alexander.h.duyck@intel.com \
--cc=davem@davemloft.net \
--cc=gospo@redhat.com \
--cc=greg@kroah.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=yu.zhao@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.