qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4] target/s390x: Implement the MVPG condition-code-option bi


From: David Hildenbrand
Subject: Re: [PATCH v4] target/s390x: Implement the MVPG condition-code-option bit
Date: Thu, 11 Mar 2021 17:00:48 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0

On 11.03.21 16:58, Richard Henderson wrote:
On 3/11/21 8:03 AM, David Hildenbrand wrote:
As talked with Thomas off-list, there is no trusting on host==NULL
as well (see comment in struct S390Access). host==NULL simply
means we have to do individual ld/st.

I think that comment is stale with the use of probe_access instead of
tlb_vaddr_to_host -- TLB_DIRTY is in fact handled now.

Yes, it might be worth exploring in which cases we will still have issues and updating the comment. LAP is certainly one.

+    env->tlb_fill_exc = 0;
       flags = probe_access_flags(env, vaddr1, access_type, mmu_idx,
                                  nofault, &haddr1, ra);
+    if (env->tlb_fill_exc) {
+        /* We cannot rely on TLB_INVALID_MASK or haddr being NULL. */
+        return env->tlb_fill_exc;
+    }
       if (unlikely(size2)) {
           /* The access crosses page boundaries. */
           vaddr2 = wrap_address(env, vaddr1 + size1);
           flags |= probe_access_flags(env, vaddr2, access_type, mmu_idx,
                                       nofault, &haddr2, ra);
+        if (env->tlb_fill_exc) {
+            /* We cannot rely on TLB_INVALID_MASK or haddr being NULL. */
+            return env->tlb_fill_exc;

But this is pretty clean, and definitely works.

Except that I need to special case CONFIG_USER_ONLY .... I'll send a v5 later, then we can discuss when looking at the full diff (including an addon patch to handle r1/r2).

--
Thanks,

David / dhildenb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]