Linear Address Spaces: Unsafe at any speed [article]

By: Michael S (already5chosen.delete@this.yahoo.com), July 19, 2022 1:00 am
Room: Moderated Discussions
Adrian (a.delete@this.acm.org) on July 18, 2022 10:22 pm wrote:
> anon2 (anon.delete@this.anon.com) on July 18, 2022 4:54 pm wrote:
> > Brendan (btrotter.delete@this.gmail.com) on July 18, 2022 3:11 pm wrote:
> > > Hi,
> > >
> > > Adrian (a.delete@this.acm.org) on July 18, 2022 10:21 am wrote:
> > > > Paul A. Clayton (paaronclayton.delete@this.gmail.com) on July 18, 2022 7:49 am wrote:
> > > > > Kester L (nobody.delete@this.nothing.com) on June 29, 2022 1:49 pm wrote:
> > > > >
> > > > >
Having a single linear map would be prohibitively expensive in terms of memory for the
> > > > > map itself, so translations use a truncated tree structure, but that adds a whole slew
> > > > > of new possible exceptions: What if the page entry for the page directory entry for the
> > > > > page entry for the exception handler for missing page entries is itself empty?

> > > > >
> > > > > For a single system-wide exception handler, this problem
> > > > > can be avoided by having hardwired mappings. 32-bit
> > > > > MIPS provided kseg0 (hardwired translation, cacheable memory)
> > > > > and kseg1 (hardwired translation, uncacheable memory),
> > > > > each 0.5 GiB. Fairchild's CLIPPER hardwired eight 4KiB
> > > > > pages in the kernel address space (CLIPPER completely
> > > > > separated supervisor and user address spaces and had separate
> > > > > cache and MMU chips for data so that there were
> > > > > technically four possible address spaces. "This permanent
> > > > > mapping provides several benefits: it makes the Boot
> > > > > ROM immediately available on reset; it also makes some I/O
> > > > > available during initialization; finally, it insures
> > > > > that the lowest 3 pages of the supervisor's address space
> > > > > (which are in constant use, since they contain the
> > > > > exception vector table) are always translated rapidly." [Introduction to the CLIPPER Architecture])
> > > > >
> > > > > Another option is to have lockable translation entries. This does not keep software from
> > > > > improperly initializing system state; even hardware initialization of precognifigured
> > > > > and locked translations is not foolproof, software could unlock a translation entry or
> > > > > even just place critical memory in areas not mapped by such locked translations.
> > > >
> > > > Another simpler option is that used by IBM POWER, which I prefer over the others.
> > > >
> > > > When in privileged mode, the paging is bypassed, so the kernel uses
> > > > physical addresses, except when copying to/from a user process.
> > > >
> > > > In this case, there are no page faults in privileged mode, including during exception handling.
> > >
> > > Page tables/MMU allow some powerful tricks (swap space, copy on write/allocate on demand, etc); and
> > > a kernel can and should exploit these same powerful tricks for its own benefit (e.g. making data that
> > > kernel shouldn't need to access unable to be accessed accidentally
> > > to improve kernel bug and/or vulnerability
> > > detection, allowing parts of itself (and user-space page tables) to be sent to swap space to reduce
> > > kernel's memory consumption, using a deliberately randomized physical address for each individual
> > > page to improve kernel's security, NUMA optimizations where different copies of read-only kernel code
> > > and data are used by different CPUs to improve kernel's performance, etc).
> > >
> > > In this case, if there are no page faults in privileged mode, then kernel
> > > must be a steaming pile of garbage (unable to benefit from MMU).
> >
> > POWER can run with MMU enabled or disabled in privileged modes. Presumably when in supervisor
> > mode it just "appears" to be disabled but still has the hypervisor level management in place.
>
>
> The possibility of enabling the MMU in privileged modes is a
> relatively recent addition to the IBM POWER architecture.
>
> I do not remember when this feature has been added, but in any case
> that was after 2000, while POWER has been introduced in 1990.
>

I know virtually nothing about system-level architecture of 64-bit PPC/POWER, but would be very surprised if the sentence above is true.
Without knowing facts I would expect privileged-mode MMU to present in very first full implementation of PPC64, i.e. Rs64, a.k.a. Apache (October 1997).

> It was probably added for the benefit of the operating systems that were
> designed to use the MMU inside the kernel, perhaps for Linux support.
>
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Linear Address Spaces: Unsafe at any speed [article]Kester L2022/06/29 01:49 PM
  Linear Address Spaces: Unsafe at any speed [article]Rayla2022/06/29 02:14 PM
    Linear Address Spaces: Unsafe at any speed [article]Kester L2022/06/29 02:43 PM
      Not just worse-is-betterMark Roulo2022/06/29 03:21 PM
        Not just worse-is-better---2022/06/29 07:07 PM
  Linear Address Spaces: Unsafe at any speed [article]2022/06/30 12:08 AM
    Linear Address Spaces: Unsafe at any speed [article]Groo2022/06/30 12:56 PM
      Linear Address Spaces: Unsafe at any speed [article]Michael S2022/06/30 02:17 PM
  Linear Address Spaces: Unsafe at any speed [article]Eric Fink2022/06/30 01:43 AM
  Linear Address Spaces: Unsafe at any speed [article]dmcq2022/06/30 03:17 AM
  Linear Address Spaces: Unsafe at any speed [article]Adrian2022/06/30 05:36 AM
    Linear Address Spaces: Unsafe at any speed [article]anonymou52022/06/30 07:28 AM
      Linear Address Spaces: Unsafe at any speed [article]Anon42022/06/30 04:37 PM
        Linear Address Spaces: Unsafe at any speed [article]anonymou52022/06/30 06:19 PM
          Linear Address Spaces: Unsafe at any speed [article]dmcq2022/07/01 04:16 AM
            Linear Address Spaces: Unsafe at any speed [article]anonymou52022/07/01 05:40 AM
              Linear Address Spaces: Unsafe at any speed [article]dmcq2022/07/01 06:11 AM
                Linear Address Spaces: Unsafe at any speed [article]anonymou52022/07/01 08:09 AM
              Linear Address Spaces: Unsafe at any speed [article]dmcq2022/07/01 06:11 AM
                Why the duplicates?dmcq2022/07/01 06:18 AM
              Linear Address Spaces: Unsafe at any speed [article]2022/07/01 10:41 PM
    Linear Address Spaces: Unsafe at any speed [article]Foo_2022/06/30 07:43 AM
      Fragmentation: Both Size and LifetimeMark Roulo2022/06/30 08:25 AM
        Fragmentation: Both Size and Lifetime2022/06/30 10:09 AM
          Fragmentation: Both Size and Lifetimedmcq2022/06/30 11:12 AM
          Fragmentation: Both Size and LifetimeBrendan2022/06/30 04:08 PM
            Fragmentation: Both Size and Lifetime2022/07/02 03:12 AM
              Fragmentation: Both Size and LifetimeBrendan2022/07/02 01:56 PM
                Fragmentation: Both Size and Lifetime2022/07/04 05:34 AM
                  Fragmentation: Both Size and LifetimeBrendan2022/07/04 06:33 AM
                    Fragmentation: Both Size and Lifetime2022/07/04 07:35 AM
                      Fragmentation: Both Size and LifetimeBrendan2022/07/04 04:21 PM
                    Atom is just living at the Dunning-Krueger peakHeikki Kultala2022/07/04 09:26 AM
                      Atom is just living at the Dunning-Krueger peak2022/07/04 09:57 AM
      Linear Address Spaces: Unsafe at any speed [article]Adrian2022/06/30 08:31 AM
        Linear Address Spaces: Unsafe at any speed [article]Foo_2022/06/30 09:07 AM
          Linear Address Spaces: Unsafe at any speed [article]Adrian2022/06/30 09:43 AM
            Linear Address Spaces: Unsafe at any speed [article]Foo_2022/07/01 03:21 AM
              Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/01 09:58 PM
                Linear Address Spaces: Unsafe at any speed [article]Foo_2022/07/03 02:45 AM
                  Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/03 10:04 PM
                    Linear Address Spaces: Unsafe at any speed [article]ananon2022/07/04 02:35 AM
                    Linear Address Spaces: Unsafe at any speed [article]Foo_2022/07/04 03:11 AM
                      Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/05 01:36 AM
                    Linear Address Spaces: Unsafe at any speed [article]2022/07/04 04:18 AM
                    Linear Address Spaces: Unsafe at any speed [article]TAG2022/07/04 07:50 AM
                    Linear Address Spaces: Unsafe at any speed [article]Brendan2022/07/04 04:54 PM
                      Linear Address Spaces: Unsafe at any speed [article]Brendan2022/07/04 05:05 PM
                      Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/05 02:18 AM
                        Linear Address Spaces: Unsafe at any speed [article]Brendan2022/07/06 05:16 PM
                          Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/07 12:33 AM
        Linear Address Spaces: Unsafe at any speed [article]2022/06/30 10:40 AM
    Linear Address Spaces: Unsafe at any speed [article]---2022/06/30 08:28 AM
      Linear Address Spaces: Unsafe at any speed [article]Michael S2022/06/30 01:00 PM
    Linear Address Spaces: Unsafe at any speed [article]Jörn Engel2022/06/30 05:34 PM
      Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/01 12:55 AM
        Sorry, typo correctionAdrian2022/07/01 01:04 AM
        Linear Address Spaces: Unsafe at any speed [article]2022/07/01 04:01 AM
          Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/01 11:00 PM
            Linear Address Spaces: Unsafe at any speed [article]rwessel2022/07/02 07:16 AM
        Linear Address Spaces: Unsafe at any speed [article]Jörn Engel2022/07/01 09:40 AM
          Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/01 11:15 PM
  Linear Address Spaces: Unsafe at any speed [article]Brendan2022/06/30 11:09 AM
    Linear Address Spaces: Unsafe at any speed [article]dmcq2022/06/30 11:20 AM
      Linear Address Spaces: Unsafe at any speed [article]Brendan2022/06/30 03:52 PM
        Linear Address Spaces: Unsafe at any speed [article]dmcq2022/07/01 06:06 AM
          Linear Address Spaces: Unsafe at any speed [article]Brendan2022/07/01 01:24 PM
            Linear Address Spaces: Unsafe at any speed [article]rwessel2022/07/01 08:55 PM
  Linear Address Spaces - Free lunch?Björn Ragnar Björnsson2022/07/02 06:44 PM
    Linear Address Spaces - Free lunch?dmcq2022/07/03 04:30 AM
      Linear Address Spaces - Free lunch?Björn Ragnar Björnsson2022/07/03 04:50 PM
  Linear Address Spaces: Unsafe at any speed [article]Paul A. Clayton2022/07/18 07:49 AM
    Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/18 10:21 AM
      Linear Address Spaces: Unsafe at any speed [article]Brendan2022/07/18 03:11 PM
        Linear Address Spaces: Unsafe at any speed [article]anon22022/07/18 04:54 PM
          Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/18 10:22 PM
            Linear Address Spaces: Unsafe at any speed [article]Michael S2022/07/19 01:00 AM
              Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/19 05:50 AM
        Linear Address Spaces: Unsafe at any speed [article]Adrian2022/07/18 11:02 PM
          Linear Address Spaces: Unsafe at any speed [article]Brendan2022/07/19 08:29 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊