From: Thomas Gleixner <tglx@linutronix.de>
To: Sagi Grimberg <sagi@grimberg.me>
Cc: Jes Sorensen <jsorensen@fb.com>,
Tariq Toukan <tariqt@mellanox.com>,
Saeed Mahameed <saeedm@dev.mellanox.co.il>,
Networking <netdev@vger.kernel.org>,
Leon Romanovsky <leonro@mellanox.com>,
Saeed Mahameed <saeedm@mellanox.com>,
Kernel Team <kernel-team@fb.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: mlx5 broken affinity
Date: Tue, 7 Nov 2017 16:07:11 +0100 (CET) [thread overview]
Message-ID: <alpine.DEB.2.20.1711071551330.1716@nanos> (raw)
In-Reply-To: <1d2e9304-089a-a769-9f38-a742dc066baf@grimberg.me>
On Sun, 5 Nov 2017, Sagi Grimberg wrote:
> > > > This wasn't to start a debate about which allocation method is the
> > > > perfect solution. I am perfectly happy with the new default, the part
> > > > that is broken is to take away the user's option to reassign the
> > > > affinity. That is a bug and it needs to be fixed!
> > >
> > > Well,
> > >
> > > I would really want to wait for Thomas/Christoph to reply, but this
> > > simple change fixed it for me:
> > > --
> > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
> > > index 573dc52b0806..eccd06be5e44 100644
> > > --- a/kernel/irq/manage.c
> > > +++ b/kernel/irq/manage.c
> > > @@ -146,8 +146,7 @@ bool irq_can_set_affinity_usr(unsigned int irq)
> > > {
> > > struct irq_desc *desc = irq_to_desc(irq);
> > >
> > > - return __irq_can_set_affinity(desc) &&
> > > - !irqd_affinity_is_managed(&desc->irq_data);
> > > + return __irq_can_set_affinity(desc);
> >
> > Which defeats the whole purpose of the managed facility, which is _not_ to
> > break the affinities on cpu offline and bring the interrupt back on the CPU
> > when it comes online again.
> >
> > What I can do is to have a separate flag, which only uses the initial
> > distribution mechanism, but I really want to have Christophs opinion on
> > that.
>
> I do agree that the user would lose better cpu online/offline behavior,
> but it seems that users want to still have some control over the IRQ
> affinity assignments even if they lose this functionality.
Depending on the machine and the number of queues this might even result in
completely losing the ability to suspend/hibernate because the number of
available vectors on CPU0 is not sufficient to accomodate all queue
interrupts.
> Would it be possible to keep the managed facility until a user overrides
> an affinity assignment? This way if the user didn't touch it, we keep
> all the perks, and in case the user overrides it, we log the implication
> so the user is aware?
A lot of things are possible, the question is whether it makes sense. The
whole point is to have resources (queues, interrupts etc.) per CPU and have
them strictly associated.
Why would you give the user a knob to destroy what you carefully optimized?
Just because we can and just because users love those knobs or is there any
real technical reason?
Thanks,
tglx
next prev parent reply other threads:[~2017-11-07 15:07 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-01 16:19 mlx5 broken affinity Jes Sorensen
2017-11-01 17:21 ` Sagi Grimberg
2017-11-01 18:20 ` Jes Sorensen
2017-11-01 22:41 ` Saeed Mahameed
2017-11-01 23:02 ` Jes Sorensen
2017-11-02 8:28 ` Tariq Toukan
2017-11-02 10:08 ` Sagi Grimberg
2017-11-02 12:13 ` Andrew Lunn
2017-11-02 14:48 ` Jes Sorensen
2017-11-02 16:14 ` Sagi Grimberg
2017-11-02 17:13 ` Jes Sorensen
2017-11-02 18:10 ` Thomas Gleixner
2017-11-05 8:36 ` Sagi Grimberg
2017-11-07 15:07 ` Thomas Gleixner [this message]
2017-11-08 7:27 ` Sagi Grimberg
2017-11-08 12:21 ` David Laight
2017-11-08 16:13 ` Jens Axboe
2017-11-09 10:09 ` Christoph Hellwig
2017-11-09 15:18 ` Jens Axboe
2017-11-09 15:08 ` Saeed Mahameed
2017-11-09 15:40 ` Sagi Grimberg
2017-11-08 16:19 ` Jes Sorensen
2017-11-08 17:33 ` Thomas Gleixner
2017-11-09 10:50 ` Sagi Grimberg
2017-11-09 14:19 ` Thomas Gleixner
2017-11-09 15:21 ` Jens Axboe
2017-11-09 17:03 ` Thomas Gleixner
2017-11-09 20:11 ` Jens Axboe
2017-11-09 21:23 ` Thomas Gleixner
2017-11-09 21:30 ` Jens Axboe
2017-11-09 21:42 ` [RFD] Managed interrupt affinities [ Was: mlx5 broken affinity ] Thomas Gleixner
2017-11-10 5:56 ` Saeed Mahameed
2017-11-10 13:03 ` Thomas Gleixner
2017-11-13 19:20 ` Sagi Grimberg
2017-11-13 20:51 ` Thomas Gleixner
2017-11-13 21:13 ` Sagi Grimberg
2017-11-13 21:33 ` Thomas Gleixner
2017-11-13 21:49 ` Sagi Grimberg
2017-11-14 10:15 ` Thomas Gleixner
2017-11-09 16:01 ` mlx5 broken affinity Sagi Grimberg
2017-11-09 16:09 ` Jens Axboe
2017-11-09 17:07 ` Thomas Gleixner
2017-11-09 20:12 ` Jens Axboe
2017-11-09 21:25 ` Thomas Gleixner
2017-11-09 15:19 ` Jens Axboe
2017-11-09 22:03 ` Jes Sorensen
2017-11-02 7:57 ` Sagi Grimberg
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=alpine.DEB.2.20.1711071551330.1716@nanos \
--to=tglx@linutronix.de \
--cc=hch@lst.de \
--cc=jsorensen@fb.com \
--cc=kernel-team@fb.com \
--cc=leonro@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@dev.mellanox.co.il \
--cc=saeedm@mellanox.com \
--cc=sagi@grimberg.me \
--cc=tariqt@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).