Thread (78 messages) 78 messages, 6 authors, 2010-06-29

Re: [PATCH 11/26] KVM: PPC: Make RMO a define

From: Alexander Graf <hidden>
Date: 2010-06-29 07:40:01
Also in: kvm

On 29.06.2010, at 09:32, Segher Boessenkool wrote:
quoted
quoted
quoted
On PowerPC it's very normal to not support all of the physical RAM =
in real mode.
quoted
quoted
=20
Oh?  Are you referring to "real mode limit", or 32-bit =
implementations with
quoted
quoted
more than 32 address lines, or something else?
=20
The former.
=20
Okay.  In that case, the hypervisor can usually access all of physical
ram directly, unless it limits itself; and a supervisor gets either
no real mode access, or all ram, or some part -- whatever the =
hypervisor
likes.
=20
If you access outside of ram, you will most likely get a machine =
check.
Depends on the implementation (like most things here).
=20
quoted
quoted
Either way, RMO is a really bad name for this, since that name is =
already
quoted
quoted
used for a similar but different concept.
=20
It's the same concept, no? Not all physical memory is accessible from =
real mode.
=20
I think you're looking for "real mode limit":
=20
The concept is called "offset real mode".
=20
RMO ("real mode offset") is the value that is ORed to an effective =
address
to make the physical address (not added, "offset" is a pretty bad =
name).
RML ("real mode limit") is the value that has to be bigger than the =
effective
address or you will get an exception.
RMA ("real mode area") is the name for the range of addresses usable =
in offset
real mode.
=20
quoted
quoted
Also, it seems you construct the physical address by masking out =
bits from
quoted
quoted
the effective address.  Most implementations will trap or machine =
check if
quoted
quoted
you address outside of physical address space, instead.
=20
Well the only case where I remember to have hit a real RMO case is on =
the PS3 - that issues a data/instruction storage interrupt when =
accessing anything > 8MB in real mode.
quoted
=20
So I'd argue this is heavily implementation specific.
=20
It is.  So what is the behaviour you want to implement?
The one below.
=20
quoted
Apart from that what I'm trying to cover is that on ppc64 accessing =
0xc0000000000000 in real mode gets you 0x0. Is there a better name for =
this?
=20
(You missed two zeroes).
In hypervisor real mode, the top few bits are magic.  They are used =
for e.g.
enabling hypervisor offset real mode.
In supervisor real mode, those bits are ignored (and all other bits =
that do
not correspond to physical address lines may also be ignored).
So which bits exactly are reserved? I couldn't find a reference to that =
part.
Maybe you want to call it physical_address_mask or similar?
PAM - doesn't sound bad :).


Alex
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help