On Tue, Oct 11, 2016 at 4:50 PM, Richard Henderson <r...@twiddle.net> wrote:
> On 10/11/2016 09:00 AM, Artyom Tarasenko wrote:
>>
>> On Mon, Oct 10, 2016 at 11:14 PM, Richard Henderson <r...@twiddle.net>
>> wrote:
>>>
>>> On 10/01/2016 05:05 AM, Artyom Tarasenko wrote:
>>>>
>>>>
>>>>      if (is_exec) {
>>>> -        helper_raise_exception(env, TT_CODE_ACCESS);
>>>> +        if (env->lsu & (IMMU_E)) {
>>>> +            helper_raise_exception(env, TT_CODE_ACCESS);
>>>> +        }
>>>>      } else {
>>>> -        helper_raise_exception(env, TT_DATA_ACCESS);
>>>> +        if (env->lsu & (DMMU_E)) {
>>>> +                helper_raise_exception(env, TT_DATA_ACCESS);
>>>> +        }
>>>
>>>
>>>
>>> The cpu really does no kind of machine check for a hypervisor write to
>>> 0x1122334455667788?
>>
>>
>> A bare metal machine would raise Real Translation Exception. But since
>> we don't do real addresses...
>
>
> I was asking about an errant access from the hypervisor itself.  I would
> have thought the guest running without an mmu would be running with real
> addresses, but the hypervisor itself would be running in physical addresses.
>
> But that said, we can't just let the access go completely unreported,
> surely. We can think as if we do real addresses, but with a 1-1 mapping to
> physical. So at least for !cpu_hypervisor_mode(env), a Real Translation
> Exception would seem to be totally justified.

Good point. data_access_error/instruction_access_error shall happen
in the hypervisor mode, otherwise it shall be data_real_translation_miss /
instruction_real_translation_miss.

Will change it, thanks.

-- 
Regards,
Artyom Tarasenko

SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu

Reply via email to