All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Ben Gardon <bgardon@google.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kvm <kvm@vger.kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>,
	David Matlack <dmatlack@google.com>,
	Jim Mattson <jmattson@google.com>,
	David Dunn <daviddunn@google.com>,
	Jing Zhang <jingzhangos@google.com>,
	Junaid Shahid <junaids@google.com>
Subject: Re: [PATCH v5 10/10] KVM: selftests: Test disabling NX hugepages on a VM
Date: Thu, 14 Apr 2022 22:29:14 +0000	[thread overview]
Message-ID: <YligOuhn9HG0/uGO@google.com> (raw)
In-Reply-To: <CANgfPd85MST8Lf_LhQ++JjxwJRvBoYk8FpOwzYbOhBL1zz157w@mail.gmail.com>

On Thu, Apr 14, 2022, Ben Gardon wrote:
> On Wed, Apr 13, 2022 at 3:48 PM Sean Christopherson <seanjc@google.com> wrote:
> > First off, huge kudos for negative testing!  But, it's going to provide poor coverage
> > if we teach everyone to use the runner script, because that'll likely require root on
> > most hosts, e.g. to futz with the module param.
> >
> > Aha!  Idea.  And it should eliminate the SYS_reboot shenanigans, which while hilarious,
> > are mildy scary.
> >
> > In the runner script, wrap all the modification of sysfs knobs with sudo, and then
> > (again with sudo) do:
> >
> >         setcap cap_sys_boot+ep path/to/nx_huge_pages_test
> >         path/to/nx_huge_pages_test MAGIC_NUMBER -b
> >
> > where "-b" means "has CAP_SYS_BOOT".  And then
> >
> >         setcap cap_sys_boot-ep path/to/nx_huge_pages_test
> >         path/to/nx_huge_pages_test MAGIC_NUMBER
> >
> > Hmm, and I guess if the script is run as root, just skip the second invocation.
> 
> Wouldn't it be easier to just run the test binary twice and just have
> the second time run without root permissions? I don't know if there's
> an easy way to do that.

I don't think so, e.g. what if there is no other user account to switch to?  On
the other hand, I doubt I'm the only person that typically runs selftests with a
user account.

Using setcap isn't hard, e.g.

	# If the test isn't running as root, verify KVM correctly rejects the
	# per-VM override if the process doesn't have CAP_SYS_BOOT.
	if [[ $(id -u) -ne 0 ]]; then
		sudo setcap cap_sys_boot-ep path/to/nx_huge_pages_test
		path/to/nx_huge_pages_test MAGIC_NUMBER

		sudo setcap cap_sys_boot+ep path/to/nx_huge_pages_test
	fi

	# The test now has CAP_SYS_BOOT, or is running as root.
	path/to/nx_huge_pages_test MAGIC_NUMBER -b

Bonus points if you want to save/restore the capability. 

  reply	other threads:[~2022-04-14 22:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-13 17:59 [PATCH v5 00/10] KVM: x86: Add a cap to disable NX hugepages on a VM Ben Gardon
2022-04-13 17:59 ` [PATCH v5 01/10] KVM: selftests: Remove dynamic memory allocation for stats header Ben Gardon
2022-04-13 17:59 ` [PATCH v5 02/10] KVM: selftests: Read binary stats header in lib Ben Gardon
2022-04-13 17:59 ` [PATCH v5 03/10] KVM: selftests: Read binary stats desc " Ben Gardon
2022-04-13 17:59 ` [PATCH v5 04/10] KVM: selftests: Clean up coding style in binary stats test Ben Gardon
2022-04-13 17:59 ` [PATCH v5 05/10] KVM: selftests: Read binary stat data in lib Ben Gardon
2022-04-13 17:59 ` [PATCH v5 06/10] KVM: selftests: Add NX huge pages test Ben Gardon
2022-04-13 22:35   ` Sean Christopherson
2022-04-14 20:59     ` Ben Gardon
2022-04-14 21:36       ` Sean Christopherson
2022-04-13 17:59 ` [PATCH v5 07/10] KVM: x86: Fix errant brace in KVM capability handling Ben Gardon
2022-04-13 17:59 ` [PATCH v5 08/10] KVM: x86/MMU: Allow NX huge pages to be disabled on a per-vm basis Ben Gardon
2022-04-13 23:03   ` Sean Christopherson
2022-04-13 17:59 ` [PATCH v5 09/10] KVM: selftests: Factor out calculation of pages needed for a VM Ben Gardon
2022-04-13 17:59 ` [PATCH v5 10/10] KVM: selftests: Test disabling NX hugepages on " Ben Gardon
2022-04-13 22:48   ` Sean Christopherson
2022-04-14 21:14     ` Ben Gardon
2022-04-14 22:29       ` Sean Christopherson [this message]
2022-04-13 21:21 ` [PATCH v5 00/10] KVM: x86: Add a cap to disable " David Matlack

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=YligOuhn9HG0/uGO@google.com \
    --to=seanjc@google.com \
    --cc=bgardon@google.com \
    --cc=daviddunn@google.com \
    --cc=dmatlack@google.com \
    --cc=jingzhangos@google.com \
    --cc=jmattson@google.com \
    --cc=junaids@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterx@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.