All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org, Cornelia Huck <cohuck@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Thomas Huth <thuth@redhat.com>,
	David Hildenbrand <david@redhat.com>
Subject: [PULL 12/31] s390x/cpumodel: Add new TCG features to QEMU cpu model
Date: Thu, 10 Oct 2019 13:33:37 +0200	[thread overview]
Message-ID: <20191010113356.5017-13-david@redhat.com> (raw)
In-Reply-To: <20191010113356.5017-1-david@redhat.com>

We now implement a bunch of new facilities we can properly indicate.

ESOP-1/ESOP-2 handling is discussed in the PoP Chafter 3-15
("Suppression on Protection"). The "Basic suppression-on-protection (SOP)
facility" is a core part of z/Architecture without a facility
indication. ESOP-2 is indicated by ESOP-1 + Side-effect facility
("ESOP-2"). Besides ESOP-2, the side-effect facility is only relevant for
the guarded-storage facility (we don't implement).

S390_ESOP:
- We indicate DAT exeptions by setting bit 61 of the TEID (TEC) to 1 and
  bit 60 to zero. We don't trigger ALCP exceptions yet. Also, we set
  bit 0-51 and bit 62/63 to the right values.
S390_ACCESS_EXCEPTION_FS_INDICATION:
- The TEID (TEC) properly indicates in bit 52/53 on any access if it was
  a fetch or a store
S390_SIDE_EFFECT_ACCESS_ESOP2:
- We have no side-effect accesses (esp., we don't implement the
  guarded-storage faciliy), we correctly set bit 64 of the TEID (TEC) to
  0 (no side-effect).
- ESOP2: We properly set bit 56, 60, 61 in the TEID (TEC) to indicate the
  type of protection. We don't trigger KCP/ALCP exceptions yet.
S390_INSTRUCTION_EXEC_PROT:
- The MMU properly detects and indicates the exception on instruction fetches
- Protected TLB entries will never get PAGE_EXEC set.

There is no need to fake the abscence of any of the facilities - without
the facilities, some bits of the TEID (TEC) are simply unpredictable.

As IEP was added with z14 and we currently implement a z13, add it to
the MAX model instead.

Acked-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/gen-features.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
index 7e82f2f004..6278845b12 100644
--- a/target/s390x/gen-features.c
+++ b/target/s390x/gen-features.c
@@ -704,12 +704,17 @@ static uint16_t qemu_V4_1[] = {
 };
 
 static uint16_t qemu_LATEST[] = {
+    S390_FEAT_ACCESS_EXCEPTION_FS_INDICATION,
+    S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2,
+    S390_FEAT_ESOP,
 };
 
 /* add all new definitions before this point */
 static uint16_t qemu_MAX[] = {
     /* generates a dependency warning, leave it out for now */
     S390_FEAT_MSA_EXT_5,
+    /* features introduced after the z13 */
+    S390_FEAT_INSTRUCTION_EXEC_PROT,
 };
 
 /****** END FEATURE DEFS ******/
-- 
2.21.0



  parent reply	other threads:[~2019-10-10 11:45 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-10 11:33 [PULL 00/31] s390x/tcg update David Hildenbrand
2019-10-10 11:33 ` [PULL 01/31] s390x/mmu: Drop debug logging from MMU code David Hildenbrand
2019-10-10 11:33 ` [PULL 02/31] s390x/mmu: Move DAT protection handling out of mmu_translate_asce() David Hildenbrand
2019-10-10 11:33 ` [PULL 03/31] s390x/mmu: Inject DAT exceptions from a single place David Hildenbrand
2019-10-10 11:33 ` [PULL 04/31] s390x/mmu: Inject PGM_ADDRESSING on bogus table addresses David Hildenbrand
2019-10-10 11:33 ` [PULL 05/31] s390x/mmu: Use TARGET_PAGE_MASK in mmu_translate_pte() David Hildenbrand
2019-10-10 11:33 ` [PULL 06/31] s390x/mmu: DAT table definition overhaul David Hildenbrand
2019-10-10 11:33 ` [PULL 07/31] s390x/mmu: Convert to non-recursive page table walk David Hildenbrand
2019-10-10 11:33 ` [PULL 08/31] s390x/mmu: Add EDAT2 translation support David Hildenbrand
2019-10-10 11:33 ` [PULL 09/31] s390x/mmu: Implement ESOP-2 and access-exception-fetch/store-indication facility David Hildenbrand
2019-10-10 11:33 ` [PULL 10/31] s390x/mmu: Implement Instruction-Execution-Protection Facility David Hildenbrand
2019-10-10 11:33 ` [PULL 11/31] s390x/cpumodel: Prepare for changes of QEMU model David Hildenbrand
2019-10-10 11:33 ` David Hildenbrand [this message]
2019-10-10 11:33 ` [PULL 13/31] target/s390x: Add ilen to unwind data David Hildenbrand
2019-10-10 11:33 ` [PULL 14/31] target/s390x: Remove ilen parameter from tcg_s390_program_interrupt David Hildenbrand
2019-10-10 11:33 ` [PULL 15/31] target/s390x: Remove ilen parameter from s390_program_interrupt David Hildenbrand
2019-10-10 11:33 ` [PULL 16/31] target/s390x: Use tcg_s390_program_interrupt in TCG helpers David Hildenbrand
2019-10-10 11:33 ` [PULL 17/31] target/s390x: Push trigger_pgm_exception lower in s390_cpu_tlb_fill David Hildenbrand
2019-10-10 11:33 ` [PULL 18/31] target/s390x: Handle tec " David Hildenbrand
2019-10-10 11:33 ` [PULL 19/31] target/s390x: Return exception from mmu_translate_real David Hildenbrand
2019-10-17 11:57   ` Peter Maydell
2019-10-17 12:05     ` Peter Maydell
2019-10-17 12:13       ` David Hildenbrand
2019-10-10 11:33 ` [PULL 20/31] target/s390x: Remove exc argument to mmu_translate_asce David Hildenbrand
2019-10-10 11:33 ` [PULL 21/31] target/s390x: Return exception from mmu_translate David Hildenbrand
2019-10-10 11:33 ` [PULL 22/31] target/s390x: Return exception from translate_pages David Hildenbrand
2019-10-10 11:33 ` [PULL 23/31] target/s390x: Remove fail variable from s390_cpu_tlb_fill David Hildenbrand
2019-10-10 11:33 ` [PULL 24/31] target/s390x: Simplify helper_lra David Hildenbrand
2019-10-10 11:33 ` [PULL 25/31] target/s390x: Rely on unwinding in s390_cpu_tlb_fill David Hildenbrand
2019-10-10 11:33 ` [PULL 26/31] target/s390x: Rely on unwinding in s390_cpu_virt_mem_rw David Hildenbrand
2019-10-10 11:33 ` [PULL 27/31] target/s390x: Remove ILEN_AUTO David Hildenbrand
2019-10-10 11:33 ` [PULL 28/31] target/s390x: Remove ilen argument from trigger_access_exception David Hildenbrand
2019-10-10 11:33 ` [PULL 29/31] target/s390x: Remove ilen argument from trigger_pgm_exception David Hildenbrand
2019-10-10 11:33 ` [PULL 30/31] target/s390x: Remove ILEN_UNWIND David Hildenbrand
2019-10-10 11:33 ` [PULL 31/31] s390x/tcg: MVCL: Exit to main loop if requested David Hildenbrand
2019-10-10 12:33 ` [PULL 00/31] s390x/tcg update no-reply
2019-10-10 13:11   ` David Hildenbrand
2019-10-14 11:26 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191010113356.5017-13-david@redhat.com \
    --to=david@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.