public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: Christoph Schlameuss <schlameuss@linux.ibm.com>, kvm@vger.kernel.org
Cc: linux-s390@vger.kernel.org, linux-kselftest@vger.kernel.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Shuah Khan <shuah@kernel.org>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	Nina Schoetterl-Glausch <nsg@linux.ibm.com>
Subject: Re: [PATCH 2/3] selftests: kvm: s390: Add uc_skey VM test case
Date: Fri, 23 Aug 2024 09:59:30 +0200	[thread overview]
Message-ID: <69e416b1-17c7-45cc-b5d3-ab6de0f8e039@linux.ibm.com> (raw)
In-Reply-To: <ZsNsMMc0Ir1w0BJy@darkmoore>

On 8/19/24 6:00 PM, Christoph Schlameuss wrote:
> On Fri Aug 16, 2024 at 4:36 PM CEST, Janosch Frank wrote:
>> On 8/15/24 5:45 PM, Christoph Schlameuss wrote:
[...]
>>> +TEST_F(uc_kvm, uc_skey)
>>> +{
>>> +	u64 test_vaddr = self->base_gpa + VM_MEM_SIZE - (SZ_1M / 2);
>>> +	struct kvm_sync_regs *sync_regs = &self->run->s.regs;
>>> +	struct kvm_run *run = self->run;
>>> +	u8 skeyvalue = 0x34;
>>> +
>>> +	/* copy test_skey_asm to code_hva / code_gpa */
>>> +	TH_LOG("copy code %p to vm mapped memory %p / %p",
>>> +	       &test_skey_asm, (void *)self->code_hva, (void *)self->code_gpa);
>>> +	memcpy((void *)self->code_hva, &test_skey_asm, PAGE_SIZE);
>>> +
>>> +	/* set register content for test_skey_asm to access not mapped memory */
>>> +	sync_regs->gprs[1] = skeyvalue;
>>> +	sync_regs->gprs[5] = self->base_gpa;
>>> +	sync_regs->gprs[6] = test_vaddr;
>>> +	run->kvm_dirty_regs |= KVM_SYNC_GPRS;
>>> +
>>> +	self->sie_block->ictl |= ICTL_OPEREXC | ICTL_PINT;
>>> +	self->sie_block->cpuflags &= ~CPUSTAT_KSS;
>>
>> So you don't want KVM to initialize skeys?
>> Or am I missing a ucontrol skey interaction?
>>
>> What about the ICTLs if KSS is not available on the machine?
> 
> This is explicitly disabling KSS, not enabling it.
> Doing that explicitly might not strictly be necessary but I thought this does
> provide some clarity about the state.
> 

The 3 skey ICTLs and KSS are used by KVM to get an intercept on the 
first skey instruction that the guest issues. KVM uses that intercept to 
initialize the keys and setup skey handling since it's an edge case 
because Linux doesn't use skeys.

If KSS is available KVM will not set the skey ICTLs but KSS is a 
"recent" addition (my guess would be ~z13). So if you want to disable 
skey intercepts regardless of the machine you need to clear all 4 bits.

Are you sure that disabling KSS makes sense and does what you think it does?

  reply	other threads:[~2024-08-23  7:59 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-15 15:45 [PATCH 0/3] selftests: kvm: s390: Add ucontrol memory selftests Christoph Schlameuss
2024-08-15 15:45 ` [PATCH 1/3] selftests: kvm: s390: Add uc_map_unmap VM test case Christoph Schlameuss
2024-08-16 14:29   ` Janosch Frank
2024-08-19 16:03     ` Christoph Schlameuss
2024-08-23  8:02       ` Janosch Frank
2024-08-23 13:03         ` Christoph Schlameuss
2024-08-23 13:20           ` Janosch Frank
2024-08-15 15:45 ` [PATCH 2/3] selftests: kvm: s390: Add uc_skey " Christoph Schlameuss
2024-08-16 14:36   ` Janosch Frank
2024-08-19 16:00     ` Christoph Schlameuss
2024-08-23  7:59       ` Janosch Frank [this message]
2024-08-30 15:51         ` Christoph Schlameuss
2024-08-15 15:45 ` [PATCH 3/3] selftests: kvm: s390: Verify reject memory region operations for ucontrol VMs Christoph Schlameuss

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=69e416b1-17c7-45cc-b5d3-ab6de0f8e039@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=david@redhat.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nsg@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=schlameuss@linux.ibm.com \
    --cc=shuah@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox