From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org, pbonzini@redhat.com, marcel@redhat.com,
mst@redhat.com, kraxel@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 6/6] x86: Add sanity checks on phys_bits
Date: Tue, 5 Jul 2016 11:40:42 +0100 [thread overview]
Message-ID: <20160705104042.GH2118@work-vm> (raw)
In-Reply-To: <20160704204621.GL4131@thinpad.lan.raisama.net>
* Eduardo Habkost (ehabkost@redhat.com) wrote:
> On Mon, Jul 04, 2016 at 08:16:09PM +0100, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >
> > Add some sanity checks on the phys-bits setting now that
> > the user can set it.
> > a) That it's in a sane range (52..32)
> > b) Warn if it mismatches the host and isn't the old default.
> >
> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > ---
> > target-i386/cpu.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > index e15abea..5402002 100644
> > --- a/target-i386/cpu.c
> > +++ b/target-i386/cpu.c
> > @@ -2985,6 +2985,19 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp)
> > /* The user asked for us to use the host physical bits */
> > cpu->phys_bits = host_phys_bits;
> >
> > + } else if (cpu->phys_bits > 52 || cpu->phys_bits < 32) {
> > + error_setg(errp, "phys_bits should be between 32 and 52 or 0 to"
> > + " use host size (but is %u)", cpu->phys_bits);
> > + return;
> > + }
>
> This check belongs to patch 1/6, doesn't it?
Yes, I can move it to there.
> Here we have the same magic number (52), and I don't know where
> it came from. Maybe it should become a (documented) macro?
>
> Also, won't this make the "phys_bits < 52" check added by patch
> 3/6 unnecessary?
Possibly; although it did feel safer to put that in where we were generating
the bitmask.
> > + /* Print a warning if the user set it to a value that's not the
> > + * host value; ignore the magic value 40 because it may well just
> > + * be the old machine type.
> > + */
>
> With this, we won't print a warning if "phys-bits=40" is set
> explicitly. If we want to disable the warning only for the old
> machine-types, we can add a boolean flag that disables it.
Yes, I can do that.
> > + if (cpu->phys_bits != host_phys_bits && cpu->phys_bits != 40) {
> > + fprintf(stderr, "Warning: Host physical bits (%u)"
> > + " does not match phys_bits (%u)\n",
> > + host_phys_bits, cpu->phys_bits);
>
> Shouldn't we use error_report() for this?
>
> Also, this prints a warning for each VCPU. This is not the first
> time we want to print a warning only once (see
> x86_cpu_apic_id_from_index() in hw/i386/pc.c and ht_warned in
> target-i386/cpu.c). It looks like QEMU needs a warn_once()
> helper.
OK, will do.
Dave
> > }
> > } else {
> > /* For 32 bit systems don't use the user set value, but keep
> > --
> > 2.7.4
> >
>
> --
> Eduardo
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2016-07-05 10:40 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-04 19:16 [Qemu-devel] [PATCH v2 0/6] x86: Physical address limit patches Dr. David Alan Gilbert (git)
2016-07-04 19:16 ` [Qemu-devel] [PATCH v2 1/6] x86: Allow physical address bits to be set Dr. David Alan Gilbert (git)
2016-07-04 19:33 ` Eduardo Habkost
2016-07-05 13:43 ` Dr. David Alan Gilbert
2016-07-04 19:16 ` [Qemu-devel] [PATCH v2 2/6] x86: Mask mtrr mask based on CPU physical address limits Dr. David Alan Gilbert (git)
2016-07-04 20:02 ` Michael S. Tsirkin
2016-07-04 20:05 ` Eduardo Habkost
2016-07-04 22:37 ` Michael S. Tsirkin
2016-07-04 20:03 ` Eduardo Habkost
2016-07-04 19:16 ` [Qemu-devel] [PATCH v2 3/6] x86: fill high bits of mtrr mask Dr. David Alan Gilbert (git)
2016-07-04 20:03 ` Michael S. Tsirkin
2016-07-04 20:14 ` Eduardo Habkost
2016-07-04 20:21 ` Eduardo Habkost
2016-07-05 8:39 ` Dr. David Alan Gilbert
2016-07-04 19:16 ` [Qemu-devel] [PATCH v2 4/6] x86: Set physical address bits based on host Dr. David Alan Gilbert (git)
2016-07-04 20:27 ` Eduardo Habkost
2016-07-05 8:44 ` Dr. David Alan Gilbert
2016-07-04 19:16 ` [Qemu-devel] [PATCH v2 5/6] x86: fix up 32 bit phys_bits case Dr. David Alan Gilbert (git)
2016-07-05 9:42 ` Daniel P. Berrange
2016-07-05 11:29 ` Dr. David Alan Gilbert
2016-07-05 11:55 ` Daniel P. Berrange
2016-07-05 19:05 ` Dr. David Alan Gilbert
2016-07-04 19:16 ` [Qemu-devel] [PATCH v2 6/6] x86: Add sanity checks on phys_bits Dr. David Alan Gilbert (git)
2016-07-04 20:46 ` Eduardo Habkost
2016-07-05 10:40 ` Dr. David Alan Gilbert [this message]
2016-07-04 20:23 ` [Qemu-devel] [PATCH v2 0/6] x86: Physical address limit patches Michael S. Tsirkin
2016-07-05 9:33 ` Dr. David Alan Gilbert
2016-07-05 10:06 ` Michael S. Tsirkin
2016-07-05 10:13 ` Dr. David Alan Gilbert
2016-07-05 10:41 ` Michael S. Tsirkin
2016-07-05 10:59 ` Paolo Bonzini
2016-07-05 11:09 ` Michael S. Tsirkin
2016-07-05 11:46 ` Paolo Bonzini
2016-07-05 12:39 ` Michael S. Tsirkin
2016-07-05 12:41 ` Dr. David Alan Gilbert
2016-07-05 13:38 ` Michael S. Tsirkin
2016-07-05 9:46 ` Daniel P. Berrange
2016-07-05 9:49 ` Dr. David Alan Gilbert
2016-07-05 12:38 ` Eduardo Habkost
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=20160705104042.GH2118@work-vm \
--to=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kraxel@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.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 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.