From: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux-kernel@vger.kernel.org, Alan Cox <alan@redhat.com>,
Marcelo Tosatti <marcelo@conectiva.com.br>
Subject: Re: PCI Express support for 2.4 kernel
Date: Mon, 15 Dec 2003 22:21:07 +0200 [thread overview]
Message-ID: <3FDE17B3.40009@intel.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0312151023570.1488@home.osdl.org>
Actually, besides discussion on how to save 4 bytes in executable size,
I see 2 real problems with my PCI-E patch.
First problem is those addressed by Linus (thanks a lot!). I looked for
proper way to do mapping, but it was either wasting lots of virtual
space, or overhead for ioremap/unmap per transaction. I though 1-st
variant is preferable and used it.
Linus, FIXMAP helps, it is lighter then ioremap, but it still requires
page table walk. In addition, since several operations should be done
atomically, lock/unlock required as well. Can it be faster method,
without page table walk for each transaction? To what extent should one
concern about performance here?
As alternative between 1 page and 256M, I see also lazy allocation on
per-bus basis: when bus is first accessed, ioremap 1Mb for it. On real
system, it is no more then 3-4 buses. This way, we will end with several
1MB mappings. Finer granularity do not looks feasible, since bus
scanning procedure tries to access all devices.
I am going to re-do PCI-E stuff with FIXMAP. To save extra page table
walks, I'll keep last accessed page to not set_fixmap if we access the
same device several times sequentially.
Second problem is generic way (lack of it) to recognize PCI-E presence
and RRBAR physical address. Default is 0xe0000000, but theoretically it
may be set to any 256M aligned. I used this default address and
sanity_check for presence recognition. It is really not nice place in
this patch. And worse, problem seems to be in PCI-E definition. I am
working to address this problem before it is too late. What I want is
some standard PCI capability that will be required in 00:00.0 device,
its presence will indicate it is PCI-E, and its content will include
RRBAR (and optionally any other appropriate stuff). Any alternative ideas?
Vladimir.
Linus Torvalds wrote:
>This really isn't appropriate. The
>
> With PCI-E, config space accessed through memory. Each device gets
> its own 4k memory mapped config, total 256M for all devices.
>
>thing _really_ does not work on x86, since 256M of IO mapping is _way_ way
>too much.
>
>You _really_ need to allocate a FIXMAP entry (just one), and then use
>
> set_fixmap_nocache(FIX_PCIEXPRESS, phys);
>
>to set it up for each device.
>
>That's actually going to be a lot simpler than what you do now.
>
> Linus
>
>
>
next prev parent reply other threads:[~2003-12-15 20:21 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-14 17:28 PCI Express support for 2.4 kernel Vladimir Kondratiev
2003-12-15 7:48 ` Christoph Hellwig
2003-12-15 18:26 ` Linus Torvalds
2003-12-15 20:03 ` Jeff Garzik
2003-12-15 22:00 ` Linus Torvalds
2003-12-16 4:53 ` Jeff Garzik
2003-12-15 20:21 ` Vladimir Kondratiev [this message]
2003-12-15 20:36 ` Jeff Garzik
-- strict thread matches above, loose matches on Subject: below --
2003-12-14 20:00 Vladimir Kondratiev
2003-12-14 20:46 ` Jeff Garzik
2003-12-15 10:01 ` Vladimir Kondratiev
2003-12-15 10:31 ` Gabriel Paubert
2003-12-15 12:44 ` Vladimir Kondratiev
2003-12-15 13:15 ` Arjan van de Ven
2003-12-15 13:58 ` Vladimir Kondratiev
2003-12-15 14:31 ` Arjan van de Ven
2003-12-15 14:44 ` Brian Gerst
2003-12-15 18:40 ` Greg KH
2003-12-15 19:23 ` Alan Cox
2003-12-15 20:00 ` Linus Torvalds
2003-12-16 10:20 ` Vladimir Kondratiev
2003-12-16 16:47 ` Linus Torvalds
2003-12-17 6:30 ` Vladimir Kondratiev
2003-12-17 6:46 ` Linus Torvalds
2003-12-17 6:55 ` Jeff Garzik
2003-12-17 7:24 ` Vladimir Kondratiev
2003-12-17 16:17 ` Linus Torvalds
2003-12-17 8:22 ` Arjan van de Ven
2003-12-17 10:35 ` Martin Mares
2003-12-17 23:06 ` Alan Cox
2003-12-17 10:08 ` Geert Uytterhoeven
2003-12-17 15:54 ` Linus Torvalds
2003-12-17 16:14 ` Geert Uytterhoeven
2003-12-17 17:44 ` Dan Hopper
2003-12-17 18:14 ` Vladimir Kondratiev
2003-12-17 21:44 ` Martin Mares
2003-12-16 17:10 ` Jeff Garzik
2003-12-16 17:48 ` Arjan van de Ven
2003-12-16 17:55 ` Jeff Garzik
2003-12-16 22:39 ` Vladimir Kondratiev
2003-12-17 0:12 ` Richard B. Johnson
2003-12-16 21:59 ` Vladimir Kondratiev
2003-12-16 17:45 ` Greg KH
2003-12-16 22:14 ` Vladimir Kondratiev
2003-12-17 10:05 ` Geert Uytterhoeven
2003-12-15 15:57 ` Vladimir Kondratiev
2003-12-15 10:42 ` Martin Mares
2003-12-15 10:07 ` Greg KH
2003-12-15 11:20 ` Vladimir Kondratiev
[not found] <3FDCA569.5070006@pobox.com>
2003-12-15 4:47 ` Pete Zaitcev
[not found] <12KJ6-4F2-13@gated-at.bofh.it>
[not found] ` <12Lvu-5X5-5@gated-at.bofh.it>
[not found] ` <12XQ2-7Vs-9@gated-at.bofh.it>
2003-12-15 10:17 ` Andi Kleen
[not found] ` <12YsA-nt-1@gated-at.bofh.it>
[not found] ` <130kQ-3A0-13@gated-at.bofh.it>
[not found] ` <130Xy-4Ia-3@gated-at.bofh.it>
[not found] ` <131Ac-5Qy-3@gated-at.bofh.it>
[not found] ` <137cD-8eg-9@gated-at.bofh.it>
[not found] ` <13kD2-1kF-11@gated-at.bofh.it>
2003-12-16 17:44 ` Andi Kleen
[not found] ` <13r1S-3FB-11@gated-at.bofh.it>
[not found] ` <13vyg-43O-7@gated-at.bofh.it>
2003-12-16 22:18 ` Andi Kleen
[not found] ` <13qIi-31G-1@gated-at.bofh.it>
[not found] ` <13DvZ-2RY-9@gated-at.bofh.it>
[not found] ` <13DFw-3a8-9@gated-at.bofh.it>
[not found] ` <13DPq-3s4-7@gated-at.bofh.it>
[not found] ` <13Fem-6iy-7@gated-at.bofh.it>
[not found] ` <13SY1-35z-19@gated-at.bofh.it>
2003-12-17 23:22 ` Andi Kleen
2003-12-17 23:38 ` Alan Cox
[not found] ` <12XQc-7Vs-29@gated-at.bofh.it>
[not found] ` <12Z5u-1tG-11@gated-at.bofh.it>
2003-12-15 14:58 ` Andi Kleen
2003-12-15 15:40 ` Vladimir Kondratiev
[not found] <Pine.LNX.4.44.0312150917170.32061-100000@coffee.psychology.mcmaster.ca>
2003-12-15 15:52 ` Vladimir Kondratiev
2003-12-15 16:08 ` Kevin P. Fleming
2003-12-15 16:38 ` Vladimir Kondratiev
2003-12-15 16:55 ` Richard B. Johnson
2003-12-15 17:08 ` Tomas Szepe
2003-12-15 18:03 ` Richard B. Johnson
2003-12-15 18:15 ` Tomas Szepe
2003-12-15 18:35 ` Richard B. Johnson
2003-12-15 18:43 ` Keith Owens
2003-12-15 18:45 ` Tomas Szepe
2003-12-15 17:24 ` Vladimir Kondratiev
2003-12-15 17:22 ` Randy.Dunlap
2003-12-15 18:16 ` Greg KH
2003-12-15 18:20 ` Richard B. Johnson
2003-12-15 17:09 ` Keith Owens
2003-12-15 17:38 ` Tomas Szepe
2003-12-15 18:16 ` Keith Owens
2003-12-15 18:23 ` Tomas Szepe
2003-12-15 20:08 Nakajima, Jun
[not found] <12InT-wQ-5@gated-at.bofh.it>
[not found] ` <135Nw-5gv-3@gated-at.bofh.it>
[not found] ` <137wc-q1-23@gated-at.bofh.it>
2003-12-15 21:56 ` Andi Kleen
2003-12-15 22:48 ` Vladimir Kondratiev
2003-12-15 23:06 ` Andi Kleen
2003-12-15 23:14 ` Greg KH
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=3FDE17B3.40009@intel.com \
--to=vladimir.kondratiev@intel.com \
--cc=alan@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=torvalds@osdl.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