public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Nico Boehr <nrb@linux.ibm.com>
To: Janis Schoetterl-Glausch <scgl@linux.ibm.com>,
	kvm@vger.kernel.org, linux-s390@vger.kernel.org
Cc: frankja@linux.ibm.com, imbrenda@linux.ibm.com, thuth@redhat.com
Subject: Re: [kvm-unit-tests PATCH v1 2/2] s390x: add migration test for storage keys
Date: Fri, 13 May 2022 15:02:28 +0200	[thread overview]
Message-ID: <d046932759b2917fb75b3f60efe9707a32ef509d.camel@linux.ibm.com> (raw)
In-Reply-To: <5781a3a7-c76c-710d-4236-b82f6e821c48@linux.ibm.com>

On Fri, 2022-05-13 at 13:04 +0200, Janis Schoetterl-Glausch wrote:
[...]
> > diff --git a/s390x/migration-skey.c b/s390x/migration-skey.c
> > new file mode 100644
> > index 000000000000..6f3053d8ab40
> > --- /dev/null
> > +++ b/s390x/migration-skey.c
[...]
> > +static void test_migration(void)
> > +{
> > +       int i, key_to_set;
> > +       uint8_t *page;
> > +       union skey expected_key, actual_key, mismatching_key;
> 
> I would tend to scope those to the bodies of the respective loop,
> but I don't know if that's in accordance with the coding style.

Seems to me the more common thing is to declare variables outside. But sure can change that, what do the maintainers say?

> > +
> > +       for (i = 0; i < NUM_PAGES; i++) {
> > +               /*
> > +                * Storage keys are 7 bit, lowest bit is always
> > returned as zero
> > +                * by iske
> > +                */
> > +               key_to_set = i * 2;
> > +               set_storage_key(pagebuf + i, key_to_set, 1);
> 
> Why not just pagebuf[i]?

Works as well and looks nicer, changed, thanks.

[...]
> > +       for (i = 0; i < NUM_PAGES; i++) {
[...]
> > +               expect_pgm_int();
> > +               asm volatile (
> > +                       /* set access key */
> > +                       "spka 0(%[mismatching_key])\n"
> > +                       /* try to write page */
> > +                       "mvi 0(%[page]), 42\n"
> > +                       /* reset access key */
> > +                       "spka 0\n"
> > +                       :
> > +                       : [mismatching_key]
> > "a"(mismatching_key.val),
> > +                         [page] "a"(page)
> > +                       : "memory"
> > +               );
> > +               check_pgm_int_code_xfail(host_is_tcg(),
> > PGM_INT_CODE_PROTECTION);
> > +               report_xfail(host_is_tcg(), *page == 0xff, "no
> > store occured");
> 
> What are you testing with this bit? If storage keys are really
> effective after the migration?

Yes.

> I'm wondering if using tprot would not be better, it should simplify
> the code a lot.

Hmm, good point. If I am not mistaken, tprot is intercepted, am I? Then it might make sense to actually do both, won't it?

> Plus you'd easily test for fetch protection, too.
> > +
> > +               report_prefix_pop();
> > +       }
> > +}
> > +
> > +int main(void)
> > +{
> > +       report_prefix_push("migration-skey");
> > +       if (test_facility(169)) {
> > +               report_skip("storage key removal facility is
> > active");
> > +
> > +               /*
> > +                * If we just exit and don't ask migrate_cmd to
> > migrate us, it
> > +                * will just hang forever. Hence, also ask for
> > migration when we
> > +                * skip this test alltogether.
> 
> s/alltogether/altogether/

Thanks fixed.


      parent reply	other threads:[~2022-05-13 13:03 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-12 14:01 [kvm-unit-tests PATCH v1 0/2] s390x: add migration test for storage keys Nico Boehr
2022-05-12 14:01 ` [kvm-unit-tests PATCH v1 1/2] lib: s390x: introduce check_pgm_int_code_xfail() Nico Boehr
2022-05-12 15:23   ` Claudio Imbrenda
2022-05-12 14:01 ` [kvm-unit-tests PATCH v1 2/2] s390x: add migration test for storage keys Nico Boehr
2022-05-12 14:43   ` Janosch Frank
2022-05-12 15:41   ` Claudio Imbrenda
2022-05-13 12:15     ` Nico Boehr
2022-05-13 11:04   ` Janis Schoetterl-Glausch
2022-05-13 12:33     ` Claudio Imbrenda
2022-05-13 12:46       ` Janis Schoetterl-Glausch
2022-05-13 13:04         ` Claudio Imbrenda
2022-05-16  8:45           ` Nico Boehr
2022-05-13 13:02     ` Nico Boehr [this message]

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=d046932759b2917fb75b3f60efe9707a32ef509d.camel@linux.ibm.com \
    --to=nrb@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=scgl@linux.ibm.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox