On 2015/7/1 18:57, George Dunlap wrote:
On 07/01/2015 11:26 AM, Chen, Tiejun wrote:
1. By default, the domain policy is RELAXED (See above,
libxl__rdm_setdefault()).

2. By default, the policy for individual devices is STRICT (see
libxl_pci.c:libxl__device_pci_setdefault())

3. If the domain policy is set to STRICT, this overrides per-device
policy

4. If the domain policy is set to RELAXED, I don't see that having an
effect on individual devices

This is our rule, and this is why I think you need to take a look at
patch #00, our design and all patch head descriptions,

"Default per-device RDM policy is 'strict', while default global RDM
policy is 'relaxed'. When both policies are specified on a given region,
'strict' is always preferred."

It looks like you didn't finish reading my message.  I suggest you do so:

Okay.


If I'm correct, then #3 means it's not possible to have devices for a
domain *default* to strict, but to be relaxed in individual instances.
If you had five devices you wanted strict, and only one device you
wanted to be relaxed (because you knew it didn't matter), you'd have
to set reserved=strict for all the other devices, rather than just
being able to set the domain setting to strict and set reserve=relaxed
for the one.

I think that both violates the principle of least surprise, and is
less useful.


So what's you idea to follow our requirement?

So consider the following config snippet:

---
rdm="reserve=relaxed"

pci=['01:00.1,msitranslate=1']
----

What should the policy for that device be?

According to your policy document, it seems to me like it should be
"relaxed", since the domain default* is set to "relaxed" and nothing

Why? "strict" should be in this case.

has been specified for the individual device.  That's what "default"

Shouldn't nothing mean we should take a default value?

+ /* We'd like to force reserve rdm specific to a device by default.*/
+            pcidev->rdm_reserve = LIBXL_RDM_RESERVE_FLAG_STRICT;

means.  But as far as I can tell from reading the code, the effective
policy for this one will actually be "strict".  That is not what people

Right.

will expect.

Why are you saying this is not our expectation? Just let me pick up that description *again*,

"Default per-device RDM policy is 'strict', while default global RDM policy is 'relaxed'. When both policies are specified on a given region, 'strict' is always preferred."


(* I say "domain default" rather than "global default" because the
default is defined only on a per-domain basis, not across all domains.
To me a "global default" would be one more level up -- something set in
xl.conf which affects all domains unless it's set in the config file.)

Furthermore, consider the following config snippet:

---
rdm="reserve=strict"

pci=['01:00.1,msitranslate=1,rdm_reserve=relaxed']
----

According to your policy document (and the code, as far as I can tell),
this will come up as "strict", even though the user has specifically
asked for it to be set to "relaxed".

Again, this is from our design and discussion.


This interface doesn't make any sense to me.  Why, if the "global

If you have any objection to our solution, and if you can't find any reasonable answer from our design, just please ping Jan or Kevin because I'm really not that person who can address this kind of change at this point in this high level.

Thanks
Tiejun

default" is set to "relaxed", do individual devices still default to
"strict"?  And why is it useful at the domain level to set a
configuration that can't be overridden on a per-device basis?

  -George






_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to