linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Dan Malek <dan@embeddededge.com>
Cc: Paul Mackerras <paulus@samba.org>, linuxppc-embedded@lists.linuxppc.org
Subject: Re: First cut at large page support on 40x
Date: Wed, 12 Jun 2002 13:52:03 +1000	[thread overview]
Message-ID: <20020612035203.GQ25800@zax> (raw)
In-Reply-To: <3CFF1624.2070808@embeddededge.com>


On Thu, Jun 06, 2002 at 03:58:28AM -0400, Dan Malek wrote:
>
> Paul Mackerras wrote:
>
> >.... I didn't think we were getting "there"
> >(i.e. towards having a device tree) at all yet on systems without OF
> >though.
>
> It was one of the first things Ben and I discussed long ago before
> this bi_rec stuff appeared.  We were just going to have the bootloaders
> build OF-like device tree........and I'll just stop that discussion
> right here :-)

So what happened to the idea?

> >....  The reason for that is that every other architecture
> >restricts the use of virt_to_phys/bus to addresses that are part of
> >the kernel mapping of lowmem,
>
> I know, and I've been exposed to operating systems that have emerged
> from this primitive state long ago :-)  It's hard to go back to early-80's
> designs :-)

That isn't of itself an argument.  I haven't yet seen a case where
extending virt_to_phys() to non-lowmem addresses is useful.  In any
case I've so far thought of there are other considerations which make
the benefits of having a common interface illusory.

> >.... If a driver uses
> >consistent_alloc or pci_alloc_consistent, the driver should save and
> >use the physical address returned by those functions.
>
> But, that's a relatively new addition and the support of these functions
> in a non cache coherent system requires the use of something like iopa().
> We allocate a contiguous virtual space to remap the pages we wish to
> change cache attributes.  We can't find the physical addresses associated
> with these pages unless we search the page tables.  Prior to having
> consistent_* we had to do this behind the curtains and needed iopa() to
> get the proper mapping result.

Not only is that wrong, it's bloody obviously wrong.  How could we
create a new virtual mapping without knowing the physical addresses
first.

> >.....  Ideally we
> >would have analogous routines to pci_[un]map_single for the on-chip
> >devices.
>
> I agree, but it doesn't remove the lower level requirement of searching
> page tables.

No.  Where is the memory this is to be used on coming except from
kmalloc() in which case just subtracting KERNELBASE is sufficient.  We
can't use vmalloc()ed memory anyway, because it wouldn't be physically
contiguous.

> >Do you have other situations in mind (other than debugging-type
> >things) where you need to use virt_to_phys/bus on something that isn't
> >a lowmem address?
>
> I just think Linux should at least move into the last decade and have
> standard methods for managing memory regardless of how it is allocated or
> where it is located :-)  The consistent_* functions have removed the need
> for drivers to search out mappings on their own, so I don't see the need
> for this function outside of supporting the consistent_* functions.

And it isn't needed in consistent_*(), so where is it needed at all?

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.  -- H.L. Mencken
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

  parent reply	other threads:[~2002-06-12  3:52 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-31  4:21 First cut at large page support on 40x David Gibson
2002-05-31  4:31 ` David Gibson
2002-06-04  0:43 ` Dan Malek
2002-06-04  3:59   ` David Gibson
2002-06-04 17:42     ` Dan Malek
2002-06-05  0:10       ` David Gibson
2002-06-05 17:25         ` Dan Malek
2002-06-06  1:35           ` David Gibson
2002-06-06  4:57             ` Dan Malek
2002-06-05 22:29       ` Paul Mackerras
2002-06-06  4:48         ` Dan Malek
2002-06-06  5:44           ` Paul Mackerras
2002-06-06  7:58             ` Dan Malek
2002-06-06  8:17               ` David Gibson
2002-06-12  3:52               ` David Gibson [this message]
2002-06-12  6:15                 ` Dan Malek
2002-06-12  6:43                   ` David Gibson
2002-06-12 15:19                     ` Tom Rini
2002-06-12 23:23                     ` Dan Malek
2002-06-12 23:42                       ` Paul Mackerras
2002-06-13  0:28                         ` Dan Malek
2002-06-13  1:01                           ` Paul Mackerras
2002-06-13  4:16                             ` Dan Malek
2002-06-13  5:12                               ` David Gibson
2002-06-13  7:26                                 ` Dan Malek
2002-06-13  1:38                       ` Paul Mackerras
2002-06-13  4:47                         ` Dan Malek
2002-06-13 18:13                     ` Armin
2002-06-14  0:33                       ` David Gibson
2002-06-12 23:49                   ` Paul Mackerras

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=20020612035203.GQ25800@zax \
    --to=david@gibson.dropbear.id.au \
    --cc=dan@embeddededge.com \
    --cc=linuxppc-embedded@lists.linuxppc.org \
    --cc=paulus@samba.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).