From: Bandan Das <bsd@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/2 v2] pci: change default value of rom_bar to 2
Date: Sun, 23 Feb 2014 20:32:34 -0500 [thread overview]
Message-ID: <jpgsir9i9cd.fsf@redhat.com> (raw)
In-Reply-To: <20140224003114.GA7747@redhat.com> (Michael S. Tsirkin's message of "Mon, 24 Feb 2014 02:31:14 +0200")
"Michael S. Tsirkin" <mst@redhat.com> writes:
> On Sun, Feb 23, 2014 at 07:18:07AM -0700, Alex Williamson wrote:
>> On Sun, 2014-02-23 at 08:32 +0200, Michael S. Tsirkin wrote:
>> > On Sat, Feb 22, 2014 at 04:28:26PM -0700, Alex Williamson wrote:
>> > > On Thu, 2014-02-20 at 10:12 +0200, Michael S. Tsirkin wrote:
>> > > > On Wed, Feb 19, 2014 at 03:20:54PM -0500, Bandan Das wrote:
>> > > > > The following patch depends on the value of rom_bar to
>> > > > > determine rom blacklist behavior. Existing code shouldn't
>> > > > > be affected by changing the default value of rom_bar since
>> > > > > all relevant decisions only rely on whether rom_bar is zero
>> > > > > or non-zero.
>> > > > >
>> > > > > Signed-off-by: Bandan Das <bsd@redhat.com>
>> > > > > ---
>> > > > > hw/pci/pci.c | 7 ++++++-
>> > > > > 1 file changed, 6 insertions(+), 1 deletion(-)
>> > > > >
>> > > > > diff --git a/hw/pci/pci.c b/hw/pci/pci.c
>> > > > > index 4e0701d..12c3e27 100644
>> > > > > --- a/hw/pci/pci.c
>> > > > > +++ b/hw/pci/pci.c
>> > > > > @@ -53,7 +53,12 @@ static void pci_bus_finalize(Object *obj);
>> > > > > static Property pci_props[] = {
>> > > > > DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
>> > > > > DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
>> > > > > - DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 1),
>> > > > > + /*
>> > > > > + * 0 = disable
>> > > > > + * 1 = user requested on, force loading even if rom blacklisted
>> > > > > + * 2 = enabled but disables loading of blacklisted roms (default)
>> > > > > + */
>> > > > > + DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 2),
>> > > >
>> > > > How do users figure out this interface?
>> > > > Read code?
>> > > > Could we add a bit property rombarforce=on/off instead?
>> > > > Seems better.
>> > > >
>> > > > Maybe we should teach bool type visitors
>> > > > about 0 and 1 being legal values
>> > > > (call out to int visitor, then check value 0 or 1),
>> > > > then rombar can be changed to bit property too.
>> > > >
>> > > > Also, this will need QMP support right?
>> > > > IIUC rombar is not exposed in QMP ATM.
>> > >
>> > > rombarforce seems very redundant for a user interface; rombar=1 "expose
>> > > the ROM BAR of the device", rombarforce=1 "yes, really expose the ROM
>> > > BAR of the device".
>> >
>> > Not really.
>> > In this design, rombarforce=yes means "expose ROM BAR of the device",
>> > rombar should not be exposed to users - it's a compatibility property
>> > used for cross-version migration.
>> >
>> > > Even if force implies rombar,
>> > > I don't think that's
>> > > very easy to code in libvirt.
>> >
>> > Libvirt doesn't touch rombar AFAIK.
>>
>> It does
>>
>> http://libvirt.org/formatdomain.html#elementsNICSROM
>>
>> <rom bar='off'>
>
>
> Got it, thanks. So if you think the right thing
> to do for users it to interpret rom=on as
> meaning "force" then just do that.
> Use some new hidden field for machine compatibility.
Even if we use another variable for machine compatibility,
we can't assume rom=on means force.
"force" is that special case where even if the rom is blacklisted,
loading is attempted. (Please see 2/2 v2] vfio: blacklist loading of unstable roms)
For now, the usecase is to get around when there is a new rom to test.
A tristate property seems better, with an approach that addresses your concerns
about random values that could confuse users.
Bandan
>
>> > > I think we really just want to detect
>> > > unspecified versus specified, which probably means setting the default
>> > > value to something the user can't, or at least wouldn't, specify.
>> > > Thanks,
>> > >
>> > > Alex
>> >
>> > OK but I should be able to query value of each variable and figure
>> > out what it means.
>> >
>> > We can build a tri-state property type if desired:
>> > force on/force off/auto.
>> > Just let's not code up random magic values.
>> > 0 and 1 for on/off is ugly enough.
>> >
>> >
>> > > >
>> > > > > DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present,
>> > > > > QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false),
>> > > > > DEFINE_PROP_BIT("command_serr_enable", PCIDevice, cap_present,
>> > > > > --
>> > > > > 1.8.3.1
>> > >
>> > >
>>
>>
next prev parent reply other threads:[~2014-02-24 1:32 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-19 20:20 [Qemu-devel] [PATCH 0/2 v2] vfio: blacklist loading of unstable roms Bandan Das
2014-02-19 20:20 ` [Qemu-devel] [PATCH 1/2 v2] pci: change default value of rom_bar to 2 Bandan Das
2014-02-19 20:36 ` Alex Williamson
2014-02-19 20:43 ` Bandan Das
2014-02-20 8:13 ` Michael S. Tsirkin
2014-02-20 8:12 ` Michael S. Tsirkin
2014-02-20 17:22 ` Bandan Das
2014-02-22 23:28 ` Alex Williamson
2014-02-23 6:32 ` Michael S. Tsirkin
2014-02-23 14:18 ` Alex Williamson
2014-02-24 0:31 ` Michael S. Tsirkin
2014-02-24 1:32 ` Bandan Das [this message]
2014-02-24 2:56 ` Alex Williamson
2014-02-19 20:20 ` [Qemu-devel] [PATCH 2/2 v2] vfio: blacklist loading of unstable roms Bandan Das
2014-02-19 20:58 ` Alex Williamson
2014-02-20 17:27 ` Bandan Das
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=jpgsir9i9cd.fsf@redhat.com \
--to=bsd@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=mst@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.