From: Thomas Gleixner <tglx@linutronix.de>
To: Ben Hutchings <bhutchings@solarflare.com>
Cc: Tom Herbert <therbert@google.com>,
netdev@vger.kernel.org, linux-net-drivers@solarflare.com,
linux-kernel <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: [RFC][PATCH 1/4] IRQ: IRQ groups for multiqueue devices
Date: Wed, 22 Sep 2010 18:06:32 +0200 (CEST) [thread overview]
Message-ID: <alpine.LFD.2.00.1009221803170.2416@localhost6.localdomain6> (raw)
In-Reply-To: <1285171249.2279.11.camel@achroite.uk.solarflarecom.com>
On Wed, 22 Sep 2010, Ben Hutchings wrote:
> On Tue, 2010-09-21 at 21:04 +0200, Thomas Gleixner wrote:
> [...]
> > Talked to Peter about it and we came to the conclusion, that we should
> > just provide a callback infrastructure in the irq code which does not
> > care about the action behind it. That's going to solve #1,#2,#3,#5,#6
> > and parts of #8
> >
> > That queue/index map code should move to lib/ or some other
> > appropriate place so it can be shared with storage or whatever is
> > going to grow multiqueue. comments #4, #7, #8 (s@kernel/irq@lib/@)
> > above still apply :)
>
> OK.
>
> > The modification to the genirq code would be based on registering
> >
> > struct irq_affinity_callback {
> > unsigned int irq;
> > struct kref kref;
> > struct work work;
> > void (*callback)(struct irq_affinity_callback *, const cpumask_t *mask);
> > void (*release)(struct kref *ref);
> > };
> >
> > for an interrupt via
> >
> > int irq_set_affinity_callback(unsigned int irq,
> > struct irq_affinity_callback *cb);
> >
> > That function can be called with cb=NULL to remove the callback. if
> > cb!=NULL, irq, kref and work are initialized.
>
> When should it be called, relative to {request,free}_irq() and
> pci_{disable,enable}_msix()?
It should be called before request_irq and before free_irq. free_irq
will warn when the pointer is !NULL.
> [...]
> > That allows you to do all kind of magic in thread context, updating
> > the queue map, reallocating queue memory when the node affinity
> > changes (I know that you want to), go wild.
>
> I definitely don't want to reallocate queues if node affinity of the IRQ
> is changed by irqbalance, because this will disrupt traffic. So
> changing the node affinity of queues has to be a separate operation.
Fair enough.
> > Thoughts ?
>
> This does look like something I can use, thanks.
Will look into it in the next days.
Thanks,
tglx
next prev parent reply other threads:[~2010-09-22 16:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-20 19:01 [RFC][PATCH 0/4] RFS hardware acceleration Ben Hutchings
2010-09-20 19:08 ` [RFC][PATCH 1/4] IRQ: IRQ groups for multiqueue devices Ben Hutchings
2010-09-20 21:27 ` Thomas Gleixner
2010-09-21 12:25 ` Ben Hutchings
2010-09-21 15:34 ` Thomas Gleixner
2010-09-21 19:04 ` Thomas Gleixner
2010-09-22 16:00 ` Ben Hutchings
2010-09-22 16:06 ` Thomas Gleixner [this message]
2010-09-20 19:10 ` [RFC][PATCH 2/4] net: RPS: Enable hardware acceleration Ben Hutchings
2010-09-20 19:11 ` [RFC][PATCH 3/4] sfc: Implement RFS acceleration Ben Hutchings
2010-09-20 19:12 ` [RFC][PATCH 4/4] sfc/RFS/irq_group debug output Ben Hutchings
2010-09-20 19:36 ` [RFC][PATCH 0/4] RFS hardware acceleration Tom Herbert
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.LFD.2.00.1009221803170.2416@localhost6.localdomain6 \
--to=tglx@linutronix.de \
--cc=bhutchings@solarflare.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net-drivers@solarflare.com \
--cc=mingo@elte.hu \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=therbert@google.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