All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandru Stefan ISAILA <aisaila@bitdefender.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Petre Ovidiu PIRCALABU <ppircalabu@bitdefender.com>,
	"tamas@tklengyel.com" <tamas@tklengyel.com>,
	"julien@xen.org" <julien@xen.org>, "wl@xen.org" <wl@xen.org>,
	Razvan COJOCARU <rcojocaru@bitdefender.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
	"george.dunlap@eu.citrix.com" <george.dunlap@eu.citrix.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"ian.jackson@eu.citrix.com" <ian.jackson@eu.citrix.com>,
	"sstabellini@kernel.org" <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"roger.pau@citrix.com" <roger.pau@citrix.com>
Subject: Re: [Xen-devel] [PATCH V2 1/2] x86/altp2m: Add hypercall to set a range of sve bits
Date: Tue, 19 Nov 2019 09:05:06 +0000	[thread overview]
Message-ID: <559c1807-2f5d-2267-c563-448c0bd88725@bitdefender.com> (raw)
In-Reply-To: <9141e27c-edd4-301a-ee76-e3fcf5e787af@suse.com>



On 18.11.2019 16:09, Jan Beulich wrote:
> On 18.11.2019 14:39, Alexandru Stefan ISAILA wrote:
>> On 12.11.2019 13:54, Jan Beulich wrote:
>>> On 06.11.2019 16:35, Alexandru Stefan ISAILA wrote:
>>>> @@ -4693,8 +4694,23 @@ static int do_altp2m_op(
>>>>            }
>>>>            break;
>>>>    
>>>> +    case HVMOP_altp2m_set_suppress_ve_multi:
>>>> +        if ( a.u.suppress_ve.pad1 || !a.u.suppress_ve.nr )
>>>
>>> A count of zero typically is taken as a no-op, not an error.
>>
>> I will return -EPERM for !nr.
> 
> How is -EPERM better than ...
> 
>>>> +            rc = -EINVAL;
> 
> ... this, and hence how is it addressing my remark?
> 
>>>> +        else
>>>> +        {
>>>> +            rc = p2m_set_suppress_ve_multi(d, &a.u.suppress_ve);
>>>> +
>>>> +            if ( rc == -ERESTART )
>>>> +                if ( __copy_field_to_guest(guest_handle_cast(arg,
>>>> +                                           xen_hvm_altp2m_op_t),
>>>> +                                           &a, u.suppress_ve.opaque) )
>>>> +                    rc = -EFAULT;
>>>
>>> If the operation is best effort, _some_ indication of failure should
>>> still be handed back to the caller. Whether that's through the opaque
>>> field or by some other means is secondary. If not via that field
>>> (which would make the outer of the two if()-s disappear), please fold
>>> the if()-s.
>>
>> This can be solved by having a int error_list that will get
>> "copy_to_guest_offset()" at the end.
> 
> I was actually not meaning to suggest to go _that_ far, but I
> wouldn't mind such a full solution. Since there's a "get"
> counterpart, I was rather thinking that an indication of "there
> was _some_ error" might suffice, suggesting to the caller to
> inspect which settings actually took effect. Such an indication
> could e.g. be an index value identifying the first failed
> operation.

This sound good, I can use the return for this or have a separate field 
in the structure.

> 
>>>> --- a/xen/include/public/hvm/hvm_op.h
>>>> +++ b/xen/include/public/hvm/hvm_op.h
>>>> @@ -42,8 +42,9 @@ struct xen_hvm_altp2m_suppress_ve {
>>>>        uint16_t view;
>>>>        uint8_t suppress_ve; /* Boolean type. */
>>>>        uint8_t pad1;
>>>> -    uint32_t pad2;
>>>> +    uint32_t nr;
>>>>        uint64_t gfn;
>>>> +    uint64_t opaque;
>>>>    };
>>>
>>> How is this addition of a field going to work compatibly with old
>>> and new callers on old and new hypervisors? Recall in particular
>>> that these operations are (almost?) all potentially usable by the
>>> guest itself.
>>
>> For this HVMOP_ALTP2M_INTERFACE_VERSION shout be increased. I will leave
>> it to Tamas to decide if we will need a different structure for
>> xen_hvm_altp2m_suppress_ve_multi to keep the compatibility.
> 
> Wasn't is that due to the possible guest exposure it was decided
> that the interface version approach was not suitable here, and hence
> it shouldn't be bumped any further?
> 

That is correct but there was also requested to add the new opaque field 
so I don't know how to have that an still keep the same version.

Alex
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2019-11-19  9:05 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-06 15:35 [Xen-devel] [PATCH V2 1/2] x86/altp2m: Add hypercall to set a range of sve bits Alexandru Stefan ISAILA
2019-11-06 15:35 ` [Xen-devel] [PATCH V2 2/2] x86/mm: Make use of the default access param from xc_altp2m_create_view Alexandru Stefan ISAILA
2019-11-12 12:02   ` Jan Beulich
2019-11-18  8:38     ` Alexandru Stefan ISAILA
2019-11-18  9:53       ` Jan Beulich
2019-11-19 19:31         ` Tamas K Lengyel
2019-11-06 21:06 ` [Xen-devel] [PATCH V2 1/2] x86/altp2m: Add hypercall to set a range of sve bits Tamas K Lengyel
2019-11-07  7:46   ` Alexandru Stefan ISAILA
2019-11-07 15:00     ` Tamas K Lengyel
2019-11-08  8:31 ` Alexandru Stefan ISAILA
2019-11-12 11:54 ` Jan Beulich
2019-11-12 14:05   ` Tamas K Lengyel
2019-11-12 14:31     ` Jan Beulich
2019-11-13 14:51       ` Tamas K Lengyel
2019-11-13 14:57         ` Tamas K Lengyel
2019-11-13 16:52           ` Jan Beulich
2019-11-13 18:38             ` Tamas K Lengyel
2019-11-18 13:39   ` Alexandru Stefan ISAILA
2019-11-18 13:39   ` Alexandru Stefan ISAILA
2019-11-18 14:09     ` Jan Beulich
2019-11-19  9:05       ` Alexandru Stefan ISAILA [this message]
2019-11-19  9:23         ` Jan Beulich
2019-11-20  8:29           ` Alexandru Stefan ISAILA
2019-11-20  8:41             ` Jan Beulich
2019-11-20  8:48               ` Alexandru Stefan ISAILA

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=559c1807-2f5d-2267-c563-448c0bd88725@bitdefender.com \
    --to=aisaila@bitdefender.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=konrad.wilk@oracle.com \
    --cc=ppircalabu@bitdefender.com \
    --cc=rcojocaru@bitdefender.com \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=tamas@tklengyel.com \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.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.