All of lore.kernel.org
 help / color / mirror / Atom feed
From: nico@fluxnic.net (Nicolas Pitre)
To: linux-arm-kernel@lists.infradead.org
Subject: ioremap to a specific virtual address
Date: Sun, 01 Apr 2012 21:18:53 -0400 (EDT)	[thread overview]
Message-ID: <alpine.LFD.2.02.1204012111260.24151@xanadu.home> (raw)
In-Reply-To: <CAKON4OyW2t+5GNRSEFOVjsGM8OifH7iqYNoO+BEOiGsdWq56sg@mail.gmail.com>

On Sun, 1 Apr 2012, jonsmirl at gmail.com wrote:

> On Sun, Apr 1, 2012 at 3:46 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Sunday 01 April 2012, jonsmirl at gmail.com wrote:
> >> Looks good, way cleaner than my x86 desktop which is full of 8KB
> >> mappings. On my ARM I had about 50 regions before since I was mapping
> >> each device individually.
> >>
> >> root at OpenWrt:/proc# cat vmallocinfo
> >> 0xc4804000-0xc4810000 ? 49152 cramfs_uncompress_init+0x24/0x60 pages=11 vmalloc
> >> 0xc4810000-0xc4853000 ?274432 jffs2_zlib_init+0x14/0xa4 pages=66 vmalloc
> >> 0xc4853000-0xc485f000 ? 49152 jffs2_zlib_init+0x48/0xa4 pages=11 vmalloc
> >> 0xc485f000-0xc4886000 ?159744 ssd1289_probe+0x250/0x85c pages=38 vmalloc
> >> 0xf1300000-0xf1400000 1048576 iotable_init+0x0/0xb0 phys=13000000 ioremap
> >> 0xf1500000-0xf1600000 1048576 iotable_init+0x0/0xb0 phys=15000000 ioremap
> >> 0xf1600000-0xf1700000 1048576 iotable_init+0x0/0xb0 phys=16000000 ioremap
> >> 0xf1700000-0xf1800000 1048576 iotable_init+0x0/0xb0 phys=17000000 ioremap
> >> 0xf1800000-0xf1900000 1048576 iotable_init+0x0/0xb0 phys=18000000 ioremap
> >> 0xf1900000-0xf1a00000 1048576 iotable_init+0x0/0xb0 phys=19000000 ioremap
> >> 0xf2000000-0xf2100000 1048576 iotable_init+0x0/0xb0 phys=20000000 ioremap
> >> 0xf6000000-0xf6100000 1048576 iotable_init+0x0/0xb0 phys=60000000 ioremap
> >> 0xf7000000-0xf7100000 1048576 iotable_init+0x0/0xb0 phys=70000000 ioremap
> >> root at OpenWrt:/proc#
> >
> > Well, you loose the information about which devices specifically do the ioremap,
> > but that wasn't very reliable to start with. How about combining those that
> > are already consecutive areas, e.g. 0xf1300000-0xf1a00000? I don't see
> > any downsides of doing that, and it would save a few bytes here and there.
> 
>  0xf1300000-0xf1a00000 is the virtual address.  0x13000000-0x21000000
> is the physical address.  That's a span of 224MB.  How do the page
> table entries work on ARM? I thought we only got 1MB per entry.  So I
> need seven entries to span the range with the individual maps. I'd
> need 224 entries to cover the entire region. Or can we make make the
> page table entries any size we want?

You can't.  Arnd probably didn't notice that the physical range is not 
contiguous.  What you have is pretty optimal.

Of course you could avoid fragmenting the virtual space by packing all 
those mappings together, but I suspect there is a macro providing a 
correspondence between the virtual and physical addresses still in use.  
OTOH this is not worth bothering with unless you run out of vmalloc 
space.


Nicolas

  reply	other threads:[~2012-04-02  1:18 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-23  0:23 ioremap to a specific virtual address jonsmirl at gmail.com
2012-03-23  4:00 ` Nicolas Pitre
2012-03-23  4:17   ` jonsmirl at gmail.com
2012-03-23  4:28     ` Nicolas Pitre
2012-03-23 13:25       ` jonsmirl at gmail.com
2012-03-23 14:07         ` Arnd Bergmann
2012-03-23 14:32           ` jonsmirl at gmail.com
2012-03-23 14:49             ` Arnd Bergmann
2012-03-23 15:20             ` Arnd Bergmann
2012-03-23 18:28               ` jonsmirl at gmail.com
2012-03-23 19:31                 ` Arnd Bergmann
2012-03-24  1:14                   ` jonsmirl at gmail.com
2012-03-25 17:34                     ` Arnd Bergmann
2012-03-26  8:47                       ` Arnd Bergmann
2012-03-26 13:11                         ` jonsmirl at gmail.com
2012-03-26 11:21                   ` jonsmirl at gmail.com
2012-03-23 14:52           ` Roland Stigge
2012-03-23 15:05             ` jonsmirl at gmail.com
2012-03-23 15:12               ` Roland Stigge
2012-03-31 23:12   ` jonsmirl at gmail.com
2012-03-31 23:52     ` Nicolas Pitre
2012-04-01  0:08       ` jonsmirl at gmail.com
2012-04-01 19:46         ` Arnd Bergmann
2012-04-01 21:41           ` jonsmirl at gmail.com
2012-04-02  1:18             ` Nicolas Pitre [this message]
2012-04-02  7:31               ` Arnd Bergmann

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.02.1204012111260.24151@xanadu.home \
    --to=nico@fluxnic.net \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.