public inbox for linuxppc-dev@ozlabs.org 
 help / color / mirror / Atom feed
From: Mitch Bradley <wmb@firmworks•com>
To: Russell King - ARM Linux <linux@arm•linux.org.uk>
Cc: Nicolas Pitre <nico@fluxnic•net>,
	devicetree-discuss <devicetree-discuss@lists•ozlabs.org>,
	linuxppc-dev <linuxppc-dev@ozlabs•org>,
	microblaze-uclinux@itee•uq.edu.au,
	Olof Johansson <olof@lixom•net>,
	Dan Malek <ppc6dev@digitaldans•com>,
	Jeremy Kerr <jeremy.kerr@canonical•com>,
	linux-arm-kernel@lists•infradead.org
Subject: Re: Request review of device tree documentation
Date: Sun, 13 Jun 2010 21:45:50 -1000	[thread overview]
Message-ID: <4C15DE2E.1050905@firmworks.com> (raw)
In-Reply-To: <20100614073828.GA6095@n2100.arm.linux.org.uk>

Russell King - ARM Linux wrote:
> On Sun, Jun 13, 2010 at 11:23:45PM -0600, Grant Likely wrote:
>   
>>>> Or perhaps the MMU and caches can be turned off for the duration of the
>>>> callback.
>>>> I don't have the details of ARM MMUs and caches reloaded into my head
>>>> yet.  Maybe next week...
>>>>         
>
> We've had these kinds of questions in the past.  Doing what you're asking
> above is not really an option - it requires:
>
> 1. disable all IRQs
> 2. setup 1:1 MMU mappings for code to turn off MMU
>    (requires new page table)
> 3. disable imprecise exceptions
> 4. flush caches and TLBS
> 5. jump to 1:1 mapping area for code to disable MMU
> 6. disable caches and mmu
> 7. call function
> 8. flush caches and TLBs
> 9. re-enable caches and mmu
> 10. re-enable imprecise exceptions
> 11. switch back to original MMU mappings
> 12. re-enable all IRQs
>
> This is fine if you don't care at all about interrupt latency.
> Unfortunately, most people do care about interrupt latency because
> that directly affects interactivity and system performance.  The
> called function could not enable interrupts or exceptions - as the
> CPU vectors are in virtual space, disabling the MMU effectively
> makes them disappear.
>
> Moreover, with the MMU and caches disabled, the CPU performance is
> extremely poor, so the called function will run slowly.
>
> So, disabling the MMU isn't really viable.
>   

None of this is a deal-breaker for the kind of debugging tasks that are 
the primary use case for the callback.

> Now, if the external code was fully PIC, we could then run it with
> the MMU enabled.  However, this wouldn't really help - the external
> code could not access any devices without knowledge of how the kernel
> setup the V:P translations.
>
> So you'd need to pass some kind of data structure giving locations of
> devices to the called code - but then what if the kernel doesn't have
> the device mapped?
>
>   

  reply	other threads:[~2010-06-14  7:47 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-11 22:59 Request review of device tree documentation Grant Likely
2010-06-11 23:47 ` Dan Malek
2010-06-12  2:58   ` Benjamin Herrenschmidt
2010-06-12  4:48     ` Mitch Bradley
2010-06-12  6:53   ` Grant Likely
2010-06-12  8:19     ` Mitch Bradley
2010-06-12 10:45       ` Benjamin Herrenschmidt
2010-06-12 10:48         ` Benjamin Herrenschmidt
2010-06-12 16:30           ` Mitch Bradley
2010-06-12 22:52             ` Benjamin Herrenschmidt
2010-06-13  5:07               ` Grant Likely
2010-06-13  5:39                 ` Mitch Bradley
2010-06-13  5:59                   ` Benjamin Herrenschmidt
2010-06-13  6:45                     ` Mitch Bradley
2010-06-13  8:29                       ` Benjamin Herrenschmidt
2010-06-14  5:36                         ` Grant Likely
2010-06-14 20:00                           ` Ben Dooks
2010-06-13  8:57                       ` Benjamin Herrenschmidt
2010-06-14  5:23                     ` Grant Likely
2010-06-14  7:38                       ` Russell King - ARM Linux
2010-06-14  7:45                         ` Mitch Bradley [this message]
2010-06-14  9:25                           ` Russell King - ARM Linux
2010-06-14  9:36                             ` Benjamin Herrenschmidt
2010-06-14  9:47                               ` Russell King - ARM Linux
2010-06-14 14:29                                 ` Jamie Lokier
2010-06-14 13:51                       ` Nicolas Pitre
2010-06-14 15:35                         ` Grant Likely
2010-06-14 15:58                           ` Nicolas Pitre
2010-06-14 16:16                             ` Grant Likely
2010-06-14  5:02                   ` Grant Likely
2010-06-14 12:44                     ` David Gibson
2010-06-14 14:59                       ` Nicolas Pitre
2010-06-14 15:08                         ` Grant Likely
2010-06-14 16:02                         ` Jamie Lokier
2010-06-14 16:23                           ` Nicolas Pitre
2010-06-14 16:29                             ` Grant Likely
2010-06-14 16:28                           ` Grant Likely
2010-06-14 16:33                             ` Jamie Lokier
2010-06-14 16:58                           ` Mitch Bradley
2010-06-14 17:26                             ` Nicolas Pitre
2010-06-14 18:20                               ` Mitch Bradley
2010-06-14 19:40                                 ` Nicolas Pitre
2010-06-14 20:08                                   ` Mark Brown
2010-06-16  6:09                             ` Mike Rapoport
2010-06-16  6:13                               ` Mitch Bradley
2010-06-16  6:17                                 ` Mike Rapoport
2010-06-16  6:32                                   ` Mitch Bradley
2010-06-16  6:47                                     ` Mike Rapoport
2010-06-16  7:40                                       ` Mitch Bradley
2010-06-16  9:45                                         ` Vladimir Pantelic
2010-06-16 10:39                                         ` Mike Rapoport
2010-06-16 11:41                                           ` Jamie Lokier
2010-06-16 13:48                                             ` Jamie Bennett
2010-06-16 14:39                                           ` Nicolas Pitre
2010-06-16 17:43                                             ` Tim Bird
2010-06-16  6:52                                     ` M. Warner Losh
2010-06-18 22:12                                       ` Frank Rowand
2010-06-15  2:02                         ` David Gibson
2010-06-14 15:51                       ` M. Warner Losh
2010-06-13  5:48                 ` Benjamin Herrenschmidt
2010-06-14  5:13                   ` Grant Likely
2010-06-14  6:09                     ` Benjamin Herrenschmidt
2010-06-14  6:17                       ` Mitch Bradley
2010-06-12 22:15     ` Olof Johansson
2010-06-12 23:09       ` Grant Likely
2010-06-13  6:47         ` [microblaze-uclinux] " Edgar E. Iglesias
2010-06-12  3:00 ` Benjamin Herrenschmidt
2010-06-12  3:07   ` Benjamin Herrenschmidt
2010-06-13 13:12     ` Jeremy Kerr
2010-06-14  5:40       ` Grant Likely
2010-06-12 17:33 ` Stephan Gatzka
2010-06-12 18:19   ` Grant Likely
2010-06-14  5:54   ` Grant Likely
2010-08-05  4:43 ` David Gibson
2010-09-01 16:19   ` Grant Likely

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=4C15DE2E.1050905@firmworks.com \
    --to=wmb@firmworks$(echo .)com \
    --cc=devicetree-discuss@lists$(echo .)ozlabs.org \
    --cc=jeremy.kerr@canonical$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    --cc=linux@arm$(echo .)linux.org.uk \
    --cc=linuxppc-dev@ozlabs$(echo .)org \
    --cc=microblaze-uclinux@itee$(echo .)uq.edu.au \
    --cc=nico@fluxnic$(echo .)net \
    --cc=olof@lixom$(echo .)net \
    --cc=ppc6dev@digitaldans$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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