Re: Stacks, was Segments

Liste des GroupesRevenir à c arch 
Sujet : Re: Stacks, was Segments
De : mitchalsup (at) *nospam* aol.com (MitchAlsup1)
Groupes : comp.arch
Date : 06. Feb 2025, 21:49:39
Autres entêtes
Organisation : Rocksolid Light
Message-ID : <4605d2464e8cd7dbe2aa76ef19129ec6@www.novabbs.org>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
User-Agent : Rocksolid Light
On Thu, 6 Feb 2025 18:51:12 +0000, EricP wrote:

MitchAlsup1 wrote:
On Thu, 6 Feb 2025 16:41:45 +0000, EricP wrote:
-----------------------------------
>
Currently, PTE uses a 3-bit access control field, and PTE has
2-bits spare. So making access control larger is easy.
>
The 16 row x 12-bit AC-to-allowed-access programmable HW lookup table
is in the MMU.
>
How does 16×12 get to the MMU (or I/O MMU) ?? in such a way that super
cannot see things Hyper can see and the same with secure. So, somewhere
in the various control blocks I need to find space without changing
the overall use pattern of the control blocks and tables. Which is
why I alluded to 4×16×3 each interpretation of the 4-bit access control
is stored it its own natural place. It also means each layer can apply
its own interpretation (mapping).
>
Its just an SRAM loaded by the boot ROM before the Hypervisor boots.
The super-secure version of boot ROM loads a table with values
(Sandbox, User, Kernel, Hypervisor):
>
Snd Usr Krn Hyp
na  na  na  R
na  na  na  RE
na  na  na  RW
na  na  na  REW
na  na  R   na
na  na  RE  na
na  na  RW  na
na  na  REW na
na  R   R   na
na  RE  RE  na
....
REW REW REW na
>
which grants mode 0 (Hyp) no direct RW access to any memory outside
itself.
Boot ROM sets an optional table lock so even hypervisor cannot later
grant itself access permission to less priv memory by changing the
table.
>
The core's 2-bit mode selects-muxes one of the 3-bit allowed access
fields from the indexed 12-bits to extract the 3 R-E-W bits.
>
That much is straightforward.
>
The 2-bit mode comes from the LD/ST uOp, which was set to the mode
active when the instruction was decoded (so it can pipeline mode
changes).
>
Yes, core-state index follows the memref down the pipe.
Core-state index is written into MMI/O/device control block for the
DMA portion of a command, other CD indexes are associated with I/O
page faults and device errors.
>
Not sure how this would work with device IO and DMA.
Say a secure kernel that owns a disk drive with secrets that even the HV
is not authorized to see (so HV operators don't need Top Secret
clearance).
In this case, HV needs to know its limitations and not access the
device nor the secure memory. Probably by taking the memory out
of the pool it "does normal stuff with" and take the device out
of its list of accessible devices (at least for a while).

The Hypervisor has to pass to a hardware device DMA access to a memory
frame that it has no access to itself. How does one block the HV from
setting the IOMMU to DMA the device's secrets into its own memory?
I am thinking more like SR-IOV where HV loans a virtual device to a
Guest OS, and Guest OS performs the I/O request, HV and SM are only
there to deal with HV page faults and device errors. If a HV page
fault occurs (which it will) a pretty secure corner of HV will
construct a PTE mapping that/those page[s] only to page the missing
page into memory so I/O can proceed. HV will then have to dismantle
said mapping after the page arrives to restart device DMA.

Hmmm... something like: once a secure HV passes a physical frame address
to a secure kernel then it cannot take it back, it can only ask that
kernel for it back. Which means that the HV looses control of any
core or IOMMU PTE's that map that frame until it is handed back.
That would seem to imply that once an HV gives memory to a secure
guest kernel that it can only page that guest with its permission.
Hmmm...
Yes, exactly. No normal access to the page, only swap access is
allowed--although this can be alleviated by not paging secure
memory::then HV just knows nothing about that/those pages until
the process terminates where it can put the pages back in the
normal pool after cleaning them out.

Date Sujet#  Auteur
3 Jan 25 * Re: Byte ordering154Waldek Hebisch
3 Jan 25 `* Re: Byte ordering153Anton Ertl
4 Jan 25  +* Re: Byte ordering139Waldek Hebisch
5 Jan 25  i+- Re: Byte ordering1Terje Mathisen
5 Jan 25  i`* 80286 protected mode (was: Byte ordering)137Anton Ertl
5 Jan 25  i +* Re: 80286 protected mode (was: Byte ordering)2Robert Swindells
5 Jan 25  i i`- Re: 80286 protected mode1Brian G. Lucas
5 Jan 25  i `* Re: 80286 protected mode134Waldek Hebisch
6 Jan 25  i  `* Re: 80286 protected mode133George Neuner
6 Jan 25  i   +* Segments (was: 80286 protected mode)130Anton Ertl
6 Jan 25  i   i+- Re: Segments (was: 80286 protected mode)1Michael S
6 Jan 25  i   i+* Re: Segments127Terje Mathisen
6 Jan 25  i   ii+* Re: Segments2Anton Ertl
6 Jan 25  i   iii`- Re: Segments1MitchAlsup1
6 Jan 25  i   ii+* Re: Segments2MitchAlsup1
7 Jan 25  i   iii`- Re: Segments1Terje Mathisen
6 Jan 25  i   ii`* Re: Segments122Thomas Koenig
7 Jan 25  i   ii +* Re: Segments2MitchAlsup1
7 Jan 25  i   ii i`- Re: Segments1Thomas Koenig
7 Jan 25  i   ii `* Re: Segments119Thomas Koenig
7 Jan 25  i   ii  +* Re: Segments7Michael S
7 Jan 25  i   ii  i+- Re: Segments1Thomas Koenig
7 Jan 25  i   ii  i`* Re: Segments5MitchAlsup1
7 Jan 25  i   ii  i `* Re: Segments4Thomas Koenig
8 Jan 25  i   ii  i  `* Re: Segments3MitchAlsup1
8 Jan 25  i   ii  i   `* Re: Segments2Thomas Koenig
11 Jan 25  i   ii  i    `- Re: Segments1MitchAlsup1
15 Jan 25  i   ii  `* Re: Segments111Keith Thompson
15 Jan 25  i   ii   `* Re: Segments110Thomas Koenig
15 Jan 25  i   ii    +* Re: Segments84Michael S
15 Jan 25  i   ii    i`* Re: Segments83Thomas Koenig
15 Jan 25  i   ii    i `* Re: Segments82Michael S
15 Jan 25  i   ii    i  +* Re: Segments80Thomas Koenig
16 Jan 25  i   ii    i  i`* Re: Segments79David Brown
16 Jan 25  i   ii    i  i `* Re: Segments78Michael S
16 Jan 25  i   ii    i  i  `* Re: Segments77David Brown
16 Jan 25  i   ii    i  i   `* Re: Segments76Waldek Hebisch
16 Jan 25  i   ii    i  i    +* Re: Segments42Thomas Koenig
16 Jan 25  i   ii    i  i    i+* Re: Segments39MitchAlsup1
18 Jan 25  i   ii    i  i    ii`* Re: Stacks, was Segments38John Levine
18 Jan 25  i   ii    i  i    ii +* Re: Stacks, was Segments36Niklas Holsti
18 Jan 25  i   ii    i  i    ii i+- Re: Stacks, was Segments1John Levine
19 Jan 25  i   ii    i  i    ii i+* Re: Stacks, was Segments33David Brown
19 Jan 25  i   ii    i  i    ii ii+* Re: Stacks, was Segments30MitchAlsup1
20 Jan 25  i   ii    i  i    ii iii`* Re: Stacks, was Segments29Michael S
20 Jan 25  i   ii    i  i    ii iii `* Re: Stacks, was Segments28Waldek Hebisch
20 Jan 25  i   ii    i  i    ii iii  `* Re: Stacks, was Segments27MitchAlsup1
21 Jan 25  i   ii    i  i    ii iii   +* Re: Stacks, was Segments2Michael S
21 Jan 25  i   ii    i  i    ii iii   i`- Re: Stacks, was Segments1MitchAlsup1
21 Jan 25  i   ii    i  i    ii iii   +- Re: Stacks, was Segments1Thomas Koenig
21 Jan 25  i   ii    i  i    ii iii   +* Re: Stacks, was Segments2Bill Findlay
21 Jan 25  i   ii    i  i    ii iii   i`- Re: Stacks, was Segments1MitchAlsup1
3 Feb 25  i   ii    i  i    ii iii   `* Re: Stacks, was Segments21Stefan Monnier
3 Feb 25  i   ii    i  i    ii iii    `* Re: Stacks, was Segments20MitchAlsup1
4 Feb 25  i   ii    i  i    ii iii     `* Re: Stacks, was Segments19MitchAlsup1
6 Feb 25  i   ii    i  i    ii iii      `* Re: Stacks, was Segments18MitchAlsup1
6 Feb 25  i   ii    i  i    ii iii       `* Re: Stacks, was Segments17MitchAlsup1
6 Feb 25  i   ii    i  i    ii iii        +* Re: Stacks, was Segments15Stephen Fuld
7 Feb 25  i   ii    i  i    ii iii        i+* Re: Stacks, was Segments12MitchAlsup1
7 Feb 25  i   ii    i  i    ii iii        ii+* Re: Stacks, was Segments10MitchAlsup1
8 Feb 25  i   ii    i  i    ii iii        iii`* Re: Stacks, was Segments9MitchAlsup1
11 Feb 25  i   ii    i  i    ii iii        iii `* Re: Stacks, was Segments8MitchAlsup1
11 Feb 25  i   ii    i  i    ii iii        iii  `* Re: Stacks, was Segments7MitchAlsup1
12 Feb 25  i   ii    i  i    ii iii        iii   `* Re: Stacks, was Segments6MitchAlsup1
13 Feb 25  i   ii    i  i    ii iii        iii    +* Re: Stacks, was Segments2MitchAlsup1
13 Feb 25  i   ii    i  i    ii iii        iii    i`- Re: Stacks, was Segments1MitchAlsup1
14 Feb 25  i   ii    i  i    ii iii        iii    `* Re: Stacks, was Segments3MitchAlsup1
14 Feb 25  i   ii    i  i    ii iii        iii     `* Re: Stacks, was Segments2MitchAlsup1
16 Feb 25  i   ii    i  i    ii iii        iii      `- Re: Stacks, was Segments1MitchAlsup1
11 Feb 25  i   ii    i  i    ii iii        ii`- Re: Stacks, was Segments1Stephen Fuld
7 Feb 25  i   ii    i  i    ii iii        i`* Re: Stacks, was Segments2MitchAlsup1
9 Feb 25  i   ii    i  i    ii iii        i `- Re: Stacks, was Segments1MitchAlsup1
6 Feb 25  i   ii    i  i    ii iii        `- Re: Stacks, was Segments1MitchAlsup1
19 Jan 25  i   ii    i  i    ii ii`* Re: Stacks, was Segments2Niklas Holsti
20 Jan 25  i   ii    i  i    ii ii `- Re: Stacks, was Segments1David Brown
28 Jan 25  i   ii    i  i    ii i`- Re: Stacks, was Segments1Tim Rentsch
18 Jan 25  i   ii    i  i    ii `- Re: Stacks, was Segments1MitchAlsup1
16 Jan 25  i   ii    i  i    i+- Re: Segments1Michael S
16 Jan 25  i   ii    i  i    i`- Re: Segments1Waldek Hebisch
16 Jan 25  i   ii    i  i    `* Re: Segments33David Brown
17 Jan 25  i   ii    i  i     +* Re: Segments4Waldek Hebisch
17 Jan 25  i   ii    i  i     i+* Re: Segments2Keith Thompson
17 Jan 25  i   ii    i  i     ii`- Re: Segments1David Brown
17 Jan 25  i   ii    i  i     i`- Re: Segments1David Brown
17 Jan 25  i   ii    i  i     +* Re: Segments2David Brown
17 Jan 25  i   ii    i  i     i`- Re: Segments1Brian G. Lucas
17 Jan 25  i   ii    i  i     `* Re: Segments26Thomas Koenig
17 Jan 25  i   ii    i  i      +* Re: Segments2David Brown
17 Jan 25  i   ii    i  i      i`- Re: Segments1Thomas Koenig
22 Jan 25  i   ii    i  i      `* Re: Segments23George Neuner
22 Jan 25  i   ii    i  i       +* Re: Segments12MitchAlsup1
22 Jan 25  i   ii    i  i       i`* Re: Segments11MitchAlsup1
22 Jan 25  i   ii    i  i       i `* Re: Segments10MitchAlsup1
23 Jan 25  i   ii    i  i       i  +* Re: Segments8Michael S
23 Jan 25  i   ii    i  i       i  i+* Re: Segments5Anton Ertl
23 Jan 25  i   ii    i  i       i  ii+* Re: Segments3Michael S
23 Jan 25  i   ii    i  i       i  iii+- Re: Segments1Anton Ertl
28 Jan 25  i   ii    i  i       i  iii`- Re: Segments1Tim Rentsch
23 Jan 25  i   ii    i  i       i  ii`- Re: Segments1Keith Thompson
23 Jan 25  i   ii    i  i       i  i`* Re: Segments2Michael S
23 Jan 25  i   ii    i  i       i  i `- Re: Segments1Michael S
23 Jan 25  i   ii    i  i       i  `- Re: Segments1George Neuner
22 Jan 25  i   ii    i  i       `* Re: stack sizes, Segments10John Levine
16 Jan 25  i   ii    i  `- Re: Segments1David Brown
15 Jan 25  i   ii    +* Re: Segments2Keith Thompson
16 Jan 25  i   ii    `* Re: Segments23Terje Mathisen
11 Jan 25  i   i`- Re: Segments1Andy Valencia
6 Jan 25  i   `* Re: what's a segment, 80286 protected mode2John Levine
5 Jan 25  +* Re: the 286, Byte ordering12John Levine
5 Jan 25  `- Re: Byte ordering1John Dallman

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal