From: "Chen, Tiejun" <tiejun.chen@intel.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: kevin.tian@intel.com, ian.campbell@citrix.com,
andrew.cooper3@citrix.com, tim@xen.org, xen-devel@lists.xen.org,
stefano.stabellini@citrix.com, JBeulich@suse.com,
yang.z.zhang@intel.com, Ian.Jackson@eu.citrix.com
Subject: Re: [RFC][PATCH 01/13] tools: introduce some new parameters to set rdm policy
Date: Wed, 20 May 2015 13:27:56 +0800 [thread overview]
Message-ID: <555C1B5C.7070401@intel.com> (raw)
In-Reply-To: <20150519110041.GB21998@zion.uk.xensource.com>
On 2015/5/19 19:00, Wei Liu wrote:
> On Tue, May 19, 2015 at 06:50:11PM +0800, Chen, Tiejun wrote:
>> On 2015/5/19 17:42, Wei Liu wrote:
>
> [...]
>
>>>>>>>>> want you want?
>>>>>>>>
>>>>>>>> We have a little bit of complexity here,
>>>>>>>>
>>>>>>>> "Default per-device RDM policy is 'force', while default global RDM policy
>>>>>>>> is 'try'. When both policies are specified on a given region, 'force' is
>>>>>>>> always preferred."
>>>>>>>>
>>>>>>>
>>>>>>> This is going to be done in actual code anyway.
>>>>>>>
>>>>>>> This type is used both in global and per-device setting, so I envisage
>>>>>>
>>>>>> Yes.
>>>>>>
>>>>>>> this to have an invalid value to start with. Appropriate default values
>>>>>>
>>>>>> Sounds I should set this,
>>>>>>
>>>>>> +libxl_rdm_reserve_flag = Enumeration("rdm_reserve_flag", [
>>>>>> + (-1, "invalid"),
>>>>>> + (0, "strict"),
>>>>>> + (1, "relaxed"),
>>>>>> + ], init_val = "LIBXL_RDM_RESERVE_FLAG_INVALID")
>>>>>> +
>>>>>>
>>>>>
>>>
>>> Yet another question about this feature. The current setup suggests that
>>> we must choose a policy, either "strict" or "relaxed", i.e. there is no
>>> way to disable this feature, as in there is no "none" policy to skip
>>> checking rdm conflict.
>>>
>>> AIUI this feature is more like a bug fix to existing problem, so we
>>> always want to enable it. And the default relaxed policy makes sure we
>>> don't break guest that was working before this feature. Do I understand
>>> this correctly?
>>>
>>> If we risk breaking existing guests, we might want to consider adding a
>>> "none" (name subject to improvement) policy to just skip RDM all
>>> together.
>>
>> We have this definition,
>>
>> +libxl_rdm_reserve_type = Enumeration("rdm_reserve_type", [
>> + (0, "none"),
>> + (1, "host"),
>> + ])
>>
>> If we set 'type=none', this means we would do nothing actually since we
>> don't expose any rdms to guest. This behavior will ensue we go back the
>> existing scenario without our patch.
>>
>
> But this only works with global configuration and individual
> configuration in PCI spec trumps this, right?
You're right.
>
> Think about how an old configuration migrated to newer version of Xen
> should work. For example, I don't have rdm= but have pci=['xxxx']. Do we
> need to make sure this still work? I guess the answer is if it already
Definitely.
> works before RDM it should continue to work as there is really no
> conflict before. In this case whether we enable RDM or not doesn't make
> a difference to a guest that's already working before. Am I right?
I think we can set the default 'type' to NONE,
libxl__rdm_setdefault()
{
b_info->rdm.type = LIBXL_RDM_RESERVE_TYPE_NONE;
and then,
libxl__domain_device_construct_rdm()
{
...
/* Might not expose rdm. */
if (type == LIBXL_RDM_RESERVE_TYPE_NONE)
return 0;
This means we don't expose any rdm so we would never concern any policy
anymore.
Thanks
Tiejun
>
>>>
>>>>> Yes, and then don't forget to set the value to appropriate value in the
>>>>> _setdefault functions for different types.
>>>>
>
> [...]
>
>>> Spaces.
>>>
>>>>>>>>>> + if ( NULL == (buf2 = ptr = strdup(str)) )
>>>>>>>>>> + return ERROR_NOMEM;
>>>>>>>>>> +
>>>>>>>>>> + for(tok = ptr, end = ptr + strlen(ptr) + 1; ptr < end; ptr++) {
>>>>>>>>>> + switch(state) {
>>>>
>>>> I thought initially you let me to follow that previous "if" :)
>>>>
>>>
>>> Just be consistent with other part of the source code.
>>
>> I just refer to that existing xlu_pci_parse_bdf()...
>>
>
> Sorry I didn't mean to blame you for something that's not your fault.
>
>> Anyway I guess you mean I should do something like this,
>>
>> if (NULL == (buf2 = ptr = strdup(str)))
>> return ERROR_NOMEM;
>>
>> for (tok = ptr, end = ptr + strlen(ptr) + 1; ptr < end; ptr++) {
>> switch(state) {
>> case STATE_TYPE:
>> if (*ptr == '=') {
>> ...
>>
>
> Fair enough. I prefer consistency.
>
> Wei.
>
>> Thanks
>> Tiejun
>>
>
>
next prev parent reply other threads:[~2015-05-20 5:27 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-10 9:21 [RFC][PATCH 00/13] Fix RMRR Tiejun Chen
2015-04-10 9:21 ` [RFC][PATCH 01/13] tools: introduce some new parameters to set rdm policy Tiejun Chen
2015-05-08 13:04 ` Wei Liu
2015-05-11 5:35 ` Chen, Tiejun
2015-05-11 14:54 ` Wei Liu
2015-05-15 1:52 ` Chen, Tiejun
2015-05-18 1:06 ` Chen, Tiejun
2015-05-18 19:17 ` Wei Liu
2015-05-19 3:16 ` Chen, Tiejun
2015-05-19 9:42 ` Wei Liu
2015-05-19 10:50 ` Chen, Tiejun
2015-05-19 11:00 ` Wei Liu
2015-05-20 5:27 ` Chen, Tiejun [this message]
2015-05-20 8:36 ` Wei Liu
2015-05-20 8:51 ` Chen, Tiejun
2015-05-20 9:07 ` Wei Liu
2015-04-10 9:21 ` [RFC][PATCH 02/13] introduce XENMEM_reserved_device_memory_map Tiejun Chen
2015-04-16 14:59 ` Tim Deegan
2015-04-16 15:10 ` Jan Beulich
2015-04-16 15:24 ` Tim Deegan
2015-04-16 15:40 ` Tian, Kevin
2015-04-23 12:32 ` Chen, Tiejun
2015-04-23 12:59 ` Jan Beulich
2015-04-24 1:17 ` Chen, Tiejun
2015-04-24 7:21 ` Jan Beulich
2015-04-10 9:21 ` [RFC][PATCH 03/13] tools/libxc: Expose new hypercall xc_reserved_device_memory_map Tiejun Chen
2015-05-08 13:07 ` Wei Liu
2015-05-11 5:36 ` Chen, Tiejun
2015-05-11 9:50 ` Wei Liu
2015-04-10 9:21 ` [RFC][PATCH 04/13] tools/libxl: detect and avoid conflicts with RDM Tiejun Chen
2015-04-15 13:10 ` Ian Jackson
2015-04-15 18:22 ` Tian, Kevin
2015-04-23 12:31 ` Chen, Tiejun
2015-04-20 11:13 ` Jan Beulich
2015-05-06 15:00 ` Chen, Tiejun
2015-05-06 15:34 ` Jan Beulich
2015-05-07 2:22 ` Chen, Tiejun
2015-05-07 6:04 ` Jan Beulich
2015-05-08 1:14 ` Chen, Tiejun
2015-05-08 1:24 ` Chen, Tiejun
2015-05-08 15:13 ` Wei Liu
2015-05-11 6:06 ` Chen, Tiejun
2015-05-08 14:43 ` Wei Liu
2015-05-11 8:09 ` Chen, Tiejun
2015-05-11 11:32 ` Wei Liu
2015-05-14 8:27 ` Chen, Tiejun
2015-05-18 1:06 ` Chen, Tiejun
2015-05-18 20:00 ` Wei Liu
2015-05-19 1:32 ` Tian, Kevin
2015-05-19 10:22 ` Wei Liu
2015-05-19 6:47 ` Chen, Tiejun
2015-04-10 9:21 ` [RFC][PATCH 05/13] xen/x86/p2m: introduce set_identity_p2m_entry Tiejun Chen
2015-04-16 15:05 ` Tim Deegan
2015-04-23 12:33 ` Chen, Tiejun
2015-04-10 9:21 ` [RFC][PATCH 06/13] xen:vtd: create RMRR mapping Tiejun Chen
2015-04-16 15:16 ` Tim Deegan
2015-04-16 15:50 ` Tian, Kevin
2015-04-10 9:21 ` [RFC][PATCH 07/13] xen/passthrough: extend hypercall to support rdm reservation policy Tiejun Chen
2015-04-16 15:40 ` Tim Deegan
2015-04-23 12:32 ` Chen, Tiejun
2015-04-23 13:05 ` Tim Deegan
2015-04-23 13:59 ` Jan Beulich
2015-04-23 14:26 ` Tim Deegan
2015-05-04 8:15 ` Tian, Kevin
2015-04-20 13:36 ` Jan Beulich
2015-05-11 8:37 ` Chen, Tiejun
2015-05-08 16:07 ` Julien Grall
2015-05-11 8:42 ` Chen, Tiejun
2015-05-11 9:51 ` Julien Grall
2015-05-11 10:57 ` Jan Beulich
2015-05-14 5:48 ` Chen, Tiejun
2015-05-14 20:13 ` Jan Beulich
2015-05-14 5:47 ` Chen, Tiejun
2015-05-14 10:19 ` Julien Grall
2015-04-10 9:21 ` [RFC][PATCH 08/13] tools: extend xc_assign_device() " Tiejun Chen
2015-04-20 13:39 ` Jan Beulich
2015-05-11 9:45 ` Chen, Tiejun
2015-05-11 10:53 ` Jan Beulich
2015-05-14 7:04 ` Chen, Tiejun
2015-04-10 9:22 ` [RFC][PATCH 09/13] xen: enable XENMEM_set_memory_map in hvm Tiejun Chen
2015-04-16 15:42 ` Tim Deegan
2015-04-20 13:46 ` Jan Beulich
2015-05-15 2:33 ` Chen, Tiejun
2015-05-15 6:12 ` Jan Beulich
2015-05-15 6:24 ` Chen, Tiejun
2015-05-15 6:35 ` Jan Beulich
2015-05-15 6:59 ` Chen, Tiejun
2015-04-10 9:22 ` [RFC][PATCH 10/13] tools: extend XENMEM_set_memory_map Tiejun Chen
2015-04-10 10:01 ` Wei Liu
2015-04-13 2:09 ` Chen, Tiejun
2015-04-13 11:02 ` Wei Liu
2015-04-14 0:42 ` Chen, Tiejun
2015-05-05 9:32 ` Wei Liu
2015-04-20 13:51 ` Jan Beulich
2015-05-15 2:57 ` Chen, Tiejun
2015-05-15 6:16 ` Jan Beulich
2015-05-15 7:09 ` Chen, Tiejun
2015-05-15 7:32 ` Jan Beulich
2015-05-15 7:51 ` Chen, Tiejun
2015-04-10 9:22 ` [RFC][PATCH 11/13] hvmloader: get guest memory map into memory_map[] Tiejun Chen
2015-04-20 13:57 ` Jan Beulich
2015-05-15 3:10 ` Chen, Tiejun
2015-04-10 9:22 ` [RFC][PATCH 12/13] hvmloader/pci: skip reserved ranges Tiejun Chen
2015-04-20 14:21 ` Jan Beulich
2015-05-15 3:18 ` Chen, Tiejun
2015-05-15 6:19 ` Jan Beulich
2015-05-15 7:34 ` Chen, Tiejun
2015-05-15 7:44 ` Jan Beulich
2015-05-15 8:16 ` Chen, Tiejun
2015-05-15 8:31 ` Jan Beulich
2015-05-15 9:21 ` Chen, Tiejun
2015-05-15 9:32 ` Jan Beulich
2015-04-10 9:22 ` [RFC][PATCH 13/13] hvmloader/e820: construct guest e820 table Tiejun Chen
2015-04-20 14:29 ` Jan Beulich
2015-05-15 6:11 ` Chen, Tiejun
2015-05-15 6:25 ` Jan Beulich
2015-05-15 6:39 ` Chen, Tiejun
2015-05-15 6:56 ` Jan Beulich
2015-05-15 7:11 ` Chen, Tiejun
2015-05-15 7:34 ` Jan Beulich
2015-05-15 8:00 ` Chen, Tiejun
2015-05-15 8:12 ` Jan Beulich
2015-05-15 8:47 ` Chen, Tiejun
2015-05-15 8:54 ` Jan Beulich
2015-05-15 9:18 ` Chen, Tiejun
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=555C1B5C.7070401@intel.com \
--to=tiejun.chen@intel.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@citrix.com \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
--cc=yang.z.zhang@intel.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;
as well as URLs for NNTP newsgroup(s).