target/s390x: Allow to enable "idtes" feature for TCG
commit19d70587b59f7879a0315a6d98c2409957154351
authorDavid Hildenbrand <david@redhat.com>
Tue, 27 Jun 2017 16:10:32 +0000 (27 18:10 +0200)
committerRichard Henderson <rth@twiddle.net>
Mon, 17 Jul 2017 21:13:17 +0000 (17 14:13 -0700)
tree2db7ea29b17723d070847a0ab03855e798647504
parente89ea6aa9d8e86351259fb33c0e6d2ee36c12eb1
target/s390x: Allow to enable "idtes" feature for TCG

STFL bit 4 and 5 are just indications to the guest, which TLB entries an
IDTE call will clear. These are performance indicators for the guest.

STFL bit 4:
    INVALIDATE DAT TABLE ENTRY (IDTE) performs
    the invalidation-and-clearing operation by
    selectively clearing TLB segment-table entries
    when a segment-table entry or entries are
    invalidated. IDTE also performs the clearing-by-
    ASCE operation. Unless bit 4 is one, IDTE simply
    purges all TLBs. Bit 3 is one if bit 4 is one.

We can simply set STFL bit 4 ("idtes") and still purge the complete TLB.
Purging more than advertised is never bad. E.g. Linux doesn't even care
about this bit. We can optimized this later.
This is helpful, as the z9 base model contains this facility.

STFL bit 5 (clearing TLB region-table-entries) was never implemented on
real HW, therefore we can simply ignore it for now.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20170627161032.5014-1-david@redhat.com>
Signed-off-by: Richard Henderson <rth@twiddle.net>
target/s390x/cpu_models.c