public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Sagi Grimberg <sagi@grimberg.me>
Cc: Jens Axboe <axboe@fb.com>, 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: [RFD] Managed interrupt affinities [ Was: mlx5 broken affinity ]
Date: Tue, 14 Nov 2017 11:15:10 +0100 (CET)	[thread overview]
Message-ID: <alpine.DEB.2.20.1711141107460.2044@nanos> (raw)
In-Reply-To: <ab819459-0e5b-e50b-a0b2-cc46fbc42674@grimberg.me>

On Mon, 13 Nov 2017, Sagi Grimberg wrote:
> > > Can you explain what do you mean by "subsystem"? I thought that the
> > > subsystem would be the irq subsystem (which means you are the one to
> > > provide
> > > the needed input :) ) and the driver would pass in something
> > > like msi_irq_ops to pci_alloc_irq_vectors() if it supports the driver
> > > requirements that you listed and NULL to tell the core to leave it alone
> > > and do what it sees fit (or pass msi_irq_ops with flag that means that).
> > > 
> > > ops structure is a very common way for drivers to communicate with a
> > > subsystem core.
> > 
> > So if you look at the above pseudo code then the subsys_*_move_callbacks
> > are probably subsystem specific, i.e. block or networking.
> > 
> > Those subsystem callbacks might either handle it at the subsystem level
> > directly or call into the particular driver.
> 
> Personally I do not think that integrating this to networking/block
> stacks in that level is going to work. drivers don't communicate any
> information on what they do with msi(x) vectors (and I'm not sure they
> should).

The callback does not need to transport any information about the interrupt
itself. The driver associates the interrupt to a queue and that queue _is_
known at the subsystem level. So a queue cookie can be handed in along with
the callback information.

I think that the subsystem, e.g. block should handle parts of this, at
least the generic driver independent management of the queue, i.e.

    - Marking the queue as closed so no new requests can be queued
      anymore. Having this at the driver level seems to be a layering
      violation.
    
    - Making sure that the outstanding requests are completed. That needs
      driver support for sure, but OTOH the subsystem should know about
      outstanding requests.

    - Marking the queue as open again. Again that's mostly subsystem level.

Thanks,

	tglx

  reply	other threads:[~2017-11-14 10:15 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
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 [this message]
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.1711141107460.2044@nanos \
    --to=tglx@linutronix.de \
    --cc=axboe@fb.com \
    --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