All of lore.kernel.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?
>
>   

WARNING: multiple messages have this Message-ID (diff)
From: wmb@firmworks.com (Mitch Bradley)
To: linux-arm-kernel@lists.infradead.org
Subject: 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?
>
>   

WARNING: multiple messages have this Message-ID (diff)
From: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
To: Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: Nicolas Pitre <nico-vtqb6HGKxmzR7s880joybQ@public.gmane.org>,
	devicetree-discuss
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	linuxppc-dev
	<linuxppc-dev-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>,
	microblaze-uclinux-rVRm/Wmeqae7NGdpmJTKYQ@public.gmane.org,
	Dan Malek <ppc6dev-7kUUosv42bfn7oBBQGLwdg@public.gmane.org>,
	Jeremy Kerr <jeremy.kerr-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.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-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>

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: 187+ 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 22:59 ` Grant Likely
2010-06-11 23:47 ` Dan Malek
2010-06-11 23:47   ` Dan Malek
2010-06-12  2:58   ` Benjamin Herrenschmidt
2010-06-12  2:58     ` Benjamin Herrenschmidt
2010-06-12  4:48     ` Mitch Bradley
2010-06-12  4:48       ` Mitch Bradley
2010-06-12  6:53   ` Grant Likely
2010-06-12  6:53     ` Grant Likely
2010-06-12  8:19     ` Mitch Bradley
2010-06-12  8:19       ` Mitch Bradley
2010-06-12 10:45       ` Benjamin Herrenschmidt
2010-06-12 10:45         ` Benjamin Herrenschmidt
2010-06-12 10:48         ` Benjamin Herrenschmidt
2010-06-12 10:48           ` Benjamin Herrenschmidt
2010-06-12 16:30           ` Mitch Bradley
2010-06-12 16:30             ` Mitch Bradley
2010-06-12 22:52             ` Benjamin Herrenschmidt
2010-06-12 22:52               ` Benjamin Herrenschmidt
2010-06-13  5:07               ` Grant Likely
2010-06-13  5:07                 ` Grant Likely
2010-06-13  5:39                 ` Mitch Bradley
2010-06-13  5:39                   ` Mitch Bradley
2010-06-13  5:59                   ` Benjamin Herrenschmidt
2010-06-13  5:59                     ` Benjamin Herrenschmidt
2010-06-13  6:45                     ` Mitch Bradley
2010-06-13  6:45                       ` Mitch Bradley
2010-06-13  8:29                       ` Benjamin Herrenschmidt
2010-06-13  8:29                         ` Benjamin Herrenschmidt
2010-06-14  5:36                         ` Grant Likely
2010-06-14  5:36                           ` Grant Likely
2010-06-14  5:36                           ` Grant Likely
2010-06-14 20:00                           ` Ben Dooks
2010-06-14 20:00                             ` Ben Dooks
2010-06-14 20:00                             ` Ben Dooks
2010-06-13  8:57                       ` Benjamin Herrenschmidt
2010-06-13  8:57                         ` Benjamin Herrenschmidt
2010-06-14  5:23                     ` Grant Likely
2010-06-14  5:23                       ` Grant Likely
2010-06-14  5:23                       ` Grant Likely
2010-06-14  7:38                       ` Russell King - ARM Linux
2010-06-14  7:38                         ` Russell King - ARM Linux
2010-06-14  7:38                         ` Russell King - ARM Linux
2010-06-14  7:45                         ` Mitch Bradley [this message]
2010-06-14  7:45                           ` Mitch Bradley
2010-06-14  7:45                           ` Mitch Bradley
2010-06-14  9:25                           ` Russell King - ARM Linux
2010-06-14  9:25                             ` Russell King - ARM Linux
2010-06-14  9:36                             ` Benjamin Herrenschmidt
2010-06-14  9:36                               ` Benjamin Herrenschmidt
2010-06-14  9:36                               ` Benjamin Herrenschmidt
2010-06-14  9:47                               ` Russell King - ARM Linux
2010-06-14  9:47                                 ` Russell King - ARM Linux
2010-06-14 14:29                                 ` Jamie Lokier
2010-06-14 14:29                                   ` Jamie Lokier
2010-06-14 14:29                                   ` Jamie Lokier
2010-06-14 13:51                       ` Nicolas Pitre
2010-06-14 13:51                         ` Nicolas Pitre
2010-06-14 13:51                         ` Nicolas Pitre
2010-06-14 15:35                         ` Grant Likely
2010-06-14 15:35                           ` Grant Likely
2010-06-14 15:35                           ` Grant Likely
2010-06-14 15:58                           ` Nicolas Pitre
2010-06-14 15:58                             ` Nicolas Pitre
2010-06-14 15:58                             ` Nicolas Pitre
2010-06-14 16:16                             ` Grant Likely
2010-06-14 16:16                               ` Grant Likely
2010-06-14 16:16                               ` Grant Likely
2010-06-14  5:02                   ` Grant Likely
2010-06-14  5:02                     ` Grant Likely
2010-06-14  5:02                     ` Grant Likely
2010-06-14 12:44                     ` David Gibson
2010-06-14 12:44                       ` David Gibson
2010-06-14 12:44                       ` David Gibson
2010-06-14 14:59                       ` Nicolas Pitre
2010-06-14 14:59                         ` Nicolas Pitre
2010-06-14 14:59                         ` Nicolas Pitre
2010-06-14 15:08                         ` Grant Likely
2010-06-14 15:08                           ` Grant Likely
2010-06-14 15:08                           ` Grant Likely
2010-06-14 16:02                         ` Jamie Lokier
2010-06-14 16:02                           ` Jamie Lokier
2010-06-14 16:02                           ` Jamie Lokier
2010-06-14 16:23                           ` Nicolas Pitre
2010-06-14 16:23                             ` Nicolas Pitre
2010-06-14 16:23                             ` Nicolas Pitre
2010-06-14 16:29                             ` Grant Likely
2010-06-14 16:29                               ` Grant Likely
2010-06-14 16:29                               ` Grant Likely
2010-06-14 16:28                           ` Grant Likely
2010-06-14 16:28                             ` Grant Likely
2010-06-14 16:28                             ` Grant Likely
2010-06-14 16:33                             ` Jamie Lokier
2010-06-14 16:33                               ` Jamie Lokier
2010-06-14 16:33                               ` Jamie Lokier
2010-06-14 16:58                           ` Mitch Bradley
2010-06-14 16:58                             ` Mitch Bradley
2010-06-14 16:58                             ` Mitch Bradley
2010-06-14 17:26                             ` Nicolas Pitre
2010-06-14 17:26                               ` Nicolas Pitre
2010-06-14 18:20                               ` Mitch Bradley
2010-06-14 18:20                                 ` Mitch Bradley
2010-06-14 18:20                                 ` Mitch Bradley
2010-06-14 19:40                                 ` Nicolas Pitre
2010-06-14 19:40                                   ` Nicolas Pitre
2010-06-14 20:08                                   ` Mark Brown
2010-06-14 20:08                                     ` Mark Brown
2010-06-14 20:08                                     ` Mark Brown
2010-06-16  6:09                             ` Mike Rapoport
2010-06-16  6:09                               ` Mike Rapoport
2010-06-16  6:09                               ` Mike Rapoport
2010-06-16  6:13                               ` Mitch Bradley
2010-06-16  6:13                                 ` Mitch Bradley
2010-06-16  6:13                                 ` Mitch Bradley
2010-06-16  6:17                                 ` Mike Rapoport
2010-06-16  6:17                                   ` Mike Rapoport
2010-06-16  6:32                                   ` Mitch Bradley
2010-06-16  6:32                                     ` Mitch Bradley
2010-06-16  6:32                                     ` Mitch Bradley
2010-06-16  6:47                                     ` Mike Rapoport
2010-06-16  6:47                                       ` Mike Rapoport
2010-06-16  7:40                                       ` Mitch Bradley
2010-06-16  7:40                                         ` Mitch Bradley
2010-06-16  7:40                                         ` Mitch Bradley
2010-06-16  9:45                                         ` Vladimir Pantelic
2010-06-16  9:45                                           ` Vladimir Pantelic
2010-06-16  9:45                                           ` Vladimir Pantelic
2010-06-16 10:39                                         ` Mike Rapoport
2010-06-16 10:39                                           ` Mike Rapoport
2010-06-16 11:41                                           ` Jamie Lokier
2010-06-16 11:41                                             ` Jamie Lokier
2010-06-16 11:41                                             ` Jamie Lokier
2010-06-16 13:48                                             ` Jamie Bennett
2010-06-16 13:48                                               ` Jamie Bennett
2010-06-16 14:39                                           ` Nicolas Pitre
2010-06-16 14:39                                             ` Nicolas Pitre
2010-06-16 17:43                                             ` Tim Bird
2010-06-16 17:43                                               ` Tim Bird
2010-06-16 17:43                                               ` Tim Bird
2010-06-17  6:45                                               ` Benjamin Zores
2010-06-16  6:52                                     ` M. Warner Losh
2010-06-16  6:52                                       ` M. Warner Losh
2010-06-16  6:52                                       ` M. Warner Losh
2010-06-18 22:12                                       ` Frank Rowand
2010-06-18 22:12                                         ` Frank Rowand
2010-06-15  2:02                         ` David Gibson
2010-06-15  2:02                           ` David Gibson
2010-06-15  2:02                           ` David Gibson
2010-06-14 15:51                       ` M. Warner Losh
2010-06-14 15:51                         ` M. Warner Losh
2010-06-14 15:51                         ` M. Warner Losh
2010-06-13  5:48                 ` Benjamin Herrenschmidt
2010-06-13  5:48                   ` Benjamin Herrenschmidt
2010-06-14  5:13                   ` Grant Likely
2010-06-14  5:13                     ` Grant Likely
2010-06-14  5:13                     ` Grant Likely
2010-06-14  6:09                     ` Benjamin Herrenschmidt
2010-06-14  6:09                       ` Benjamin Herrenschmidt
2010-06-14  6:09                       ` Benjamin Herrenschmidt
2010-06-14  6:17                       ` Mitch Bradley
2010-06-14  6:17                         ` Mitch Bradley
2010-06-14  6:17                         ` Mitch Bradley
2010-06-12 22:15     ` Olof Johansson
2010-06-12 23:09       ` Grant Likely
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:00   ` Benjamin Herrenschmidt
2010-06-12  3:07   ` Benjamin Herrenschmidt
2010-06-12  3:07     ` Benjamin Herrenschmidt
2010-06-13 13:12     ` Jeremy Kerr
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
     [not found]     ` <4C149DE1.1050800@gatzka.org>
     [not found]       ` <4C149DE1.1050800-tNItQxeJkt8dnm+yROfE0A@public.gmane.org>
2010-06-13 20:03         ` Grant Likely
     [not found]           ` <AANLkTim-FzAihEd0FE72dy3Ubb2yiIQh4rtI6TIMovFW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-14 23:44             ` Grant Likely
     [not found]               ` <AANLkTikV9XqufTO9LVAql3nbySpPz_p_4kv7YY2b4UPW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-15 19:25                 ` Stephan Gatzka
2010-06-14  5:54   ` Grant Likely
2010-06-14  5:54     ` Grant Likely
2010-08-05  4:43 ` David Gibson
2010-08-05  4:43   ` David Gibson
2010-09-01 16:19   ` Grant Likely
2010-09-01 16:19     ` Grant Likely
  -- strict thread matches above, loose matches on Subject: below --
2010-08-05 15:15 Terren Chow
     [not found] ` <AANLkTikFNFvM7x6TzN8DPM9E4vC0KVRb0sz4r2wu_nZ+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-05 16:41   ` 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.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=jeremy.kerr@canonical.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@arm.linux.org.uk \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=nico@fluxnic.net \
    --cc=olof@lixom.net \
    --cc=ppc6dev@digitaldans.com \
    /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.