public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Cliff Wickman <cpw@sgi.com>
Cc: Alan Mayer <ajm@sgi.com>,
	jeremy@goop.org, rusty@rustcorp.com.au,
	suresh.b.siddha@intel.com, mingo@elte.hu,
	torvalds@linux-foundation.org, linux-kernel@vger.kernel.org,
	Dean Nelson <dcn@sgi.com>
Subject: Re: [PATCH] x86_64:  Dynamically allocate arch specific system vectors
Date: Fri, 01 Aug 2008 14:00:16 -0700	[thread overview]
Message-ID: <m18wvgv4bj.fsf@frodo.ebiederm.org> (raw)
In-Reply-To: <20080801155120.GA21706@sgi.com> (Cliff Wickman's message of "Fri, 1 Aug 2008 10:51:20 -0500")

Cliff Wickman <cpw@sgi.com> writes:
>
> I assume you mean create_irq() and destroy_irq().
> They are close to what we need.

Actually that isn't quite what I was thinking.

> However for any given system use:
> - we need to request a high priority vector for some irq's, rather than
>   one randomly allocated as per __assign_irq_vector().

Well I was actually thinking mostly about reusing assign_irq_vector.

The high priority vector seems to be the place where we would need
to reexamine the vector allocator.

> - we want the irq/vector to be targeted to all cpu's (as specified in a
>   mask,
>   and can include currently offline cpu's) rather than a single cpu. 

__assign_irq_vector should be able to handle that case.

> I suppose those abilities could be added to create_irq(), but we didn't
> want to intrude into that interface.

Right.  That part gets custom and there is no intersection.

> A smaller consideration is simplicity of use.  We want any such user to
> use
> the generic do_IRQ() flow (not alloc_intr_gate()).

My primary concern is that you are generalizing an interface that is
designed for alloc_intr_gate consumers.  In particular for people
who wish to allocate vectors that can be triggered by software to
do this.

If this is normal irq handling I would really prefer to use the
normal data structures that we use for allocating vectors to irqs,
because that is what you are doing.

> But make it easy to set
> up the irq/vector, irq_chip and irq_desc without getting intimate with
> the details.
> I suppose some other wrapper for an enhanced create_irq() could be done.
>
> We are going to need such irq/vector pairs for a couple of UV drivers
> (drivers/misc/sgi-gru/ and sgi-xp/).  And would prefer it for the UV TLB
> shootdown (x86/kernel/tlb.uv.c) rather than using alloc_intr_gate().

I also want to ask why do you need an irq that fires on every cpu?

That concept seems to be responsible for one of the nastiest data
structures in the kernel.  Where we track how many times any irq has
occurred on any cpu.  Look at the percpu variable kernel_stat.  It
seems to be one of the nastiest variables I know of.  Of size:
NR_CPUS*NR_CPUS*32  Assuming you have a machine with a reasonable
number of irqs per cpu.

Eric

  reply	other threads:[~2008-08-01 21:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-31 21:22 [PATCH] x86_64: Dynamically allocate arch specific system vectors Alan Mayer
2008-07-31 22:10 ` Eric W. Biederman
2008-08-01 15:51   ` Cliff Wickman
2008-08-01 21:00     ` Eric W. Biederman [this message]
2008-08-01 21:51       ` Alan Mayer
2008-08-01 22:14         ` Eric W. Biederman
2008-08-04 19:37           ` Alan Mayer
2008-08-04 20:39             ` Mike Travis

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=m18wvgv4bj.fsf@frodo.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=ajm@sgi.com \
    --cc=cpw@sgi.com \
    --cc=dcn@sgi.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rusty@rustcorp.com.au \
    --cc=suresh.b.siddha@intel.com \
    --cc=torvalds@linux-foundation.org \
    /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