From: Amir Vadai <amirv.mellanox@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, Or Gerlitz <ogerlitz@mellanox.com>,
Yevgeny Petrilin <yevgenyp@mellanox.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ben Hutchings <ben@decadent.org.uk>,
amira@mellanox.com, Yuval Atias <yuvala@mellanox.com>
Subject: Re: [PATCH net V1 1/3] net/mlx4_en: Don't use irq_affinity_notifier to track changes in IRQ affinity map
Date: Mon, 30 Jun 2014 11:34:22 +0300 [thread overview]
Message-ID: <53B1210E.6040409@gmail.com> (raw)
In-Reply-To: <1404110511.15139.44.camel@edumazet-glaptop2.roam.corp.google.com>
On 6/30/2014 9:41 AM, Eric Dumazet wrote:
> On Sun, 2014-06-29 at 11:54 +0300, Amir Vadai wrote:
>> IRQ affinity notifier can only have a single notifier - cpu_rmap
>> notifier. Can't use it to track changes in IRQ affinity map.
>> Detect IRQ affinity changes by comparing CPU to current IRQ affinity map
>> during NAPI poll thread.
>
> ...
>
>> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
>> index 8be7483..ac3dead 100644
>> --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
>> +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
>> @@ -474,15 +474,9 @@ int mlx4_en_poll_tx_cq(struct napi_struct *napi, int budget)
>> /* If we used up all the quota - we're probably not done yet... */
>> if (done < budget) {
>> /* Done for now */
>> - cq->mcq.irq_affinity_change = false;
>> napi_complete(napi);
>> mlx4_en_arm_cq(priv, cq);
>> return done;
>> - } else if (unlikely(cq->mcq.irq_affinity_change)) {
>> - cq->mcq.irq_affinity_change = false;
>> - napi_complete(napi);
>> - mlx4_en_arm_cq(priv, cq);
>> - return 0;
>> }
>> return budget;
>> }
>
> It seems nothing is done then for the TX side after this patch ?
>
> You might want to drain whole queue instead of limiting to a 'budget',
> otherwise, a cpu might be stuck servicing (soft)irq for the TX
> completion, even if irq affinities say otherwise.
>
TX completions are very quick compared to the skb preparation and
sending. Which is not the case for RX completions. Because of that, it
is very easy to reproduce the problem in RX flows, but we never had any
report of that problem in the TX flow.
I prefer not to spend time on the TX, since we plan to send a patch soon
to use the same NAPI for both TX and RX.
Amir
next prev parent reply other threads:[~2014-06-30 8:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-29 8:54 [PATCH net V1 0/3] Mellanox EN driver fixes 2014-06-23 Amir Vadai
2014-06-29 8:54 ` [PATCH net V1 1/3] net/mlx4_en: Don't use irq_affinity_notifier to track changes in IRQ affinity map Amir Vadai
2014-06-30 6:41 ` Eric Dumazet
2014-06-30 8:34 ` Amir Vadai [this message]
2014-06-30 9:11 ` Eric Dumazet
2014-06-30 10:43 ` Amir Vadai
2014-07-01 3:33 ` David Miller
2014-07-01 9:14 ` Amir Vadai
2014-06-29 8:54 ` [PATCH net V1 2/3] lib/cpumask: cpumask_set_cpu_local_first to use all cores when numa node is not defined Amir Vadai
2014-06-29 8:54 ` [PATCH net V1 3/3] net/mlx4_en: IRQ affinity hint is not cleared on port down Amir Vadai
2014-07-03 1:29 ` [PATCH net V1 0/3] Mellanox EN driver fixes 2014-06-23 David Miller
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=53B1210E.6040409@gmail.com \
--to=amirv.mellanox@gmail.com \
--cc=amira@mellanox.com \
--cc=amirv@mellanox.com \
--cc=ben@decadent.org.uk \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=tglx@linutronix.de \
--cc=yevgenyp@mellanox.com \
--cc=yuvala@mellanox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).