From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Egbert Eich <eich@suse.de>
Cc: Linux Fbdev development list
<linux-fbdev-devel@lists.sourceforge.net>,
Xserver development <xorg@freedesktop.org>,
Egbert Eich <eich@pdx.freedesktop.org>
Subject: Re: [Linux-fbdev-devel] Re: Who is stomping PCI config space?
Date: Sun, 06 Mar 2005 09:39:50 +1100 [thread overview]
Message-ID: <1110062390.13594.71.camel@gaston> (raw)
In-Reply-To: <16937.63967.588170.359548@xf14.local>
> Right. And without any driver support it is difficult to know if the
> card decodes legacy resources or if this decoding is turned off.
> I can do waht Jon suggested and use the 'industry standard' VGA disable
> registers.
> Depending on the card those registers may disable more than just VGA.
>
> >
> > There isn't a simple way to solve that that I know, except if the card
> > can be configured to totally ignore VGA accesses, in which case it
> > doesn't need to be disabled, but X doesn't know it... (though if we
> > have a central "arbibrer", the driver for the card can tell it to remove
> > that card from the arbitration).
>
> Right. But we don't load the driver.
Yes, you can assume the worst case at first, and later on have the
driver disable decoding of legacy stuff and inform your arbiter to stop
caring about that specific card, no ?
> On a multi-CPU system this can be a problem as one CPU may work on
> the previously enabled VGA card while the other one tries to service
> the VGA card that has sent the interrupt.
Yes. Fancy things like local disabling of irqs etc... aren't an option.
> >
> > So even with a kernel based arbitrer, the irq scenario isn't possible to
> > deal with properly, unless VGA decoding can be completely disabled on a
> > given card, or nobody uses VGA memory accesses on any card. (Most modern
> > drivers only use non-VGA memory/IO, or even IO are remapped to some
> > different addresses with some cards).
>
> On a lot of cards there may be situations where VGA registers need to
> be accessed for specific purposes.
Yup, though "modern" cards usually don't. A radeon operates 100% without
access to any legacy resource lately (except the console restore on
console switch, but that's fairly isolated and I even removed it on ppc
as it breaks things on setups where the card was boostrapped in "no VGA"
mode. I personally think it should be done by the kernel). I think
nvidia's "remap" the VGA registes somewhere in normal MMIO space, at
least I think I remember seeing something like that.
> Furthermore it must not be expected that nobody uses older cards which
> still require VGA registers.
Agreed.
> Is there a way to halt a process that is using VGA registers for the
> time the interrupt gets serviced? For example sending a signal to
> this process so that it suspends norml execution waits in a signal
> handler?
Not really. Well, something could be hacked, that is, the current CPU is
obviously handling the IRQ, so the process "below" has been halted, but
it would require some kind of IPI tricks to also halt other CPUs, quite
heavy handed I think.
> All this would only matter for systems with more than one CPU.
Yes, but those are becoming quite common. Also multicore is coming ;)
Ben.
next prev parent reply other threads:[~2005-03-05 22:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-03 19:03 Who is stomping PCI config space? Jon Smirl
2005-03-03 23:07 ` Benjamin Herrenschmidt
2005-03-04 0:15 ` Jon Smirl
2005-03-04 3:03 ` Jon Smirl
2005-03-04 6:40 ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-04 12:07 ` Egbert Eich
2005-03-04 17:35 ` Jon Smirl
2005-03-04 22:42 ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-05 19:06 ` Egbert Eich
2005-03-05 22:42 ` Benjamin Herrenschmidt
2005-03-07 11:19 ` Egbert Eich
2005-03-08 3:21 ` Benjamin Herrenschmidt
2005-03-05 17:33 ` Egbert Eich
2005-03-04 17:58 ` Jon Smirl
2005-03-04 22:45 ` Benjamin Herrenschmidt
2005-03-05 19:07 ` Egbert Eich
2005-03-05 22:43 ` Benjamin Herrenschmidt
2005-03-04 22:27 ` Benjamin Herrenschmidt
2005-03-05 18:26 ` Egbert Eich
2005-03-05 22:39 ` Benjamin Herrenschmidt [this message]
2005-03-07 11:05 ` Egbert Eich
2005-03-04 12:02 ` Egbert Eich
2005-03-04 11:25 ` Egbert Eich
2005-03-04 22:16 ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2005-03-05 17:36 ` Egbert Eich
2005-03-04 11:12 ` Egbert Eich
2005-03-04 22:51 ` Benjamin Herrenschmidt
[not found] ` <42278AEC.4080706@dunaweb.hu>
2005-03-04 11:21 ` Egbert Eich
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=1110062390.13594.71.camel@gaston \
--to=benh@kernel.crashing.org \
--cc=eich@pdx.freedesktop.org \
--cc=eich@suse.de \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=xorg@freedesktop.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;
as well as URLs for NNTP newsgroup(s).