[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 09/11] silo: remove circular xsm hook call


  • To: "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Mon, 6 Sep 2021 19:55:07 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7yWjg6RICr/TwDqra08velTyo7XtSAg1czseNajXQ4w=; b=HtY0uIqk0aBYBSqEF2MiXQ85JB+O2cogloBDo4z3j7VcEYe0fneV9T1ZjOrV/kSmyBnlF+n2kI/1B+rbNXt7Q5SwdOmimEsRzn5WfNhNMRnW/cAhQ/KsDBbjIMoQpnWtkv5LjDFo9CzteVvmNXV5uuyoiABIumTra/oCZCR7Pi5m7x5AMkObv7Lqkkb2fnkvbvEYFCVdk/7zeazEj/KtJ9YsOlf7dIXS81zYB2IHYFpSYmeDf2rJ/m/q0Q6ckEusbx20eVtFnIGmQC7TeJpGQTfgoXHUN8W9A7LiCVvBW2SWd2i1dtFa79WSqt/b1MfBjdw/cazhUBYOtKV3VXmhxw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N01OWPYe/+p9tuJjLX6zqVHoR4i7uIFst9lr62Lcse3ehhx6gblYvA8TofqTZr5Fc9Yy35VQbcrSEiHHUFQmzvq8AEyzyxUvOkcLWM2Oi8lUXMtuM9KJ6UlAT9QqYSlajJ521X2wp1efiZG2QNpgBTuvLRHAjzv4sPR3QSqq7zyPgo65/gnDZjOHiMGtqXO+QQHbx+fFh2lwuEjU1ArymIANV4X5LUDg3WokBw87gKPaDg6IBiVpXAlvI5P0/HGyJ19ONlviIAQXZfQXsth7A14rosVJMqdjE81zfG5l9dVjbEE7H8ls/8t+jCkajLItzyzrw8Nmqxl/p5h8A73RtQ==
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
  • Delivery-date: Mon, 06 Sep 2021 18:55:24 +0000
  • Ironport-hdrordr: A9a23:WBgp6KuWThjwJeXCEp1b6VOF7skC5oMji2hC6mlwRA09TyXGra +TdaUguSMc1gx9ZJhBo7G90KnpewK4yXcH2/hvAV7EZnibhILIFvAe0WKG+VPd8kLFh5ZgPM tbAs9D4ZjLfCJHZKXBkXmF+rQbsaC6GcmT7I+0pRcdLnAYV0gj1XYcNu/yKDwGeOAsP+teKH Pz3Lskm9PtQwVtUiztbUN1IdQr6ue72a7OUFojPVoK+QOOhTSn5PrTFAWZ5A4XV3dqza05+W bIvgTl7uH72svLhSP05iv21dB7idHhwtxMCIiljdUUECzljkKNaJ56U7OPkTgpqKWE6Uoskv PLvxA8Vv4Dp0/5TyWQm1/AygPg2DEh5zvLzkKZu2LqpYjDSDczG6N69MpkWyqcz3BlkMB30a pN0W7cnYFQFwn8kCP04MWNfw12l2KvyEBS0dI7vjh6a88zebVRpYsQ8Ad+C5EbBh/374ghDa 1HENzc3vBLalmXBkqp/1WH+ObcHEjbIy32B3Tr4qeuonxrdTFCvgUlLfUk7zQ9HMlXcegC2w zGWp4Y3Y2mAPVmK56VP91xNPdfPFa9Ny4kAFjiU2gPK5t3T04li6SHq4ndt9vaMqDh8vMJ6e P8uRVjxDcPR34=
  • Ironport-sdr: o6T8GI+uOEzF3SSOpElMJ/udZGNIFI8HyePgw/f/YFZSp2oJpJpjlynhgU6txRtrYymqVHrqzs 214jrw+V9CyTzY/9FfskEQEqwtXv/pUZV6uOLO2685M3Jm3wfF7qJy1rwU4DDvORR2LBCrBNQT NTblttk4KAwgMcqGMC4HZJKXE1evl+YjzlUevggSPOSZMx7cERQ/ZIqbhYUqasuZinnzDILhEc TKDfscrenrBt5DsVhBS92a7pWwom1MaB6g8qv0nLrMdNqah8p8YM1InxxEqHKB1peFtxnaDC/s mZ6UBolSxBL4l42CS9deU+Kn
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 03/09/2021 20:06, Daniel P. Smith wrote:
> SILO implements a few XSM hooks to extended the decision logic beyond
> what is defined in the dummy/default policy. For each of the hooks, it
> falls back to the dummy/default policy. The fall back is done a slight
> round-about way.

"done in a slightly" ?

>  This commit makes the direct call to the default policy's
> logic, xsm_default_action().
>
> Signed-off-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
> ---
>  xen/xsm/silo.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c
> index 6db793f35c..56a330a831 100644
> --- a/xen/xsm/silo.c
> +++ b/xen/xsm/silo.c
> @@ -17,6 +17,7 @@
>   * You should have received a copy of the GNU General Public License along 
> with
>   * this program; If not, see <http://www.gnu.org/licenses/>.
>   */
> +#include <xsm/xsm-core.h>
>  #include <xsm/dummy.h>
>  
>  /*
> @@ -43,7 +44,7 @@ static int silo_evtchn_unbound(struct domain *d1, struct 
> evtchn *chn,
>      else
>      {
>          if ( silo_mode_dom_check(d1, d2) )
> -            rc = xsm_evtchn_unbound(d1, chn, id2);
> +            rc = xsm_default_action(XSM_TARGET, current->domain, d1);
>          rcu_unlock_domain(d2);
>      }
>  
> @@ -54,7 +55,7 @@ static int silo_evtchn_interdomain(struct domain *d1, 
> struct evtchn *chan1,
>                                     struct domain *d2, struct evtchn *chan2)
>  {
>      if ( silo_mode_dom_check(d1, d2) )
> -        return xsm_evtchn_interdomain(d1, chan1, d2, chan2);
> +        return xsm_default_action(XSM_HOOK, d1, d2);
>      return -EPERM;
>  }
>  
> @@ -62,21 +63,21 @@ static int silo_grant_mapref(struct domain *d1, struct 
> domain *d2,
>                               uint32_t flags)
>  {
>      if ( silo_mode_dom_check(d1, d2) )
> -        return xsm_grant_mapref(d1, d2, flags);
> +        return xsm_default_action(XSM_HOOK, d1, d2);
>      return -EPERM;
>  }
>  
>  static int silo_grant_transfer(struct domain *d1, struct domain *d2)
>  {
>      if ( silo_mode_dom_check(d1, d2) )
> -        return xsm_grant_transfer(d1, d2);
> +        return xsm_default_action(XSM_HOOK, d1, d2);
>      return -EPERM;
>  }
>  
>  static int silo_grant_copy(struct domain *d1, struct domain *d2)
>  {
>      if ( silo_mode_dom_check(d1, d2) )
> -        return xsm_grant_copy(d1, d2);
> +        return xsm_default_action(XSM_HOOK, d1, d2);
>      return -EPERM;
>  }
>  
> @@ -86,14 +87,14 @@ static int silo_argo_register_single_source(const struct 
> domain *d1,
>                                              const struct domain *d2)
>  {
>      if ( silo_mode_dom_check(d1, d2) )
> -        return xsm_argo_register_single_source(d1, d2);
> +        return 0;
>      return -EPERM;
>  }
>  
>  static int silo_argo_send(const struct domain *d1, const struct domain *d2)
>  {
>      if ( silo_mode_dom_check(d1, d2) )
> -        return xsm_argo_send(d1, d2);
> +        return 0;

Shouldn't these be XSM_HOOK too?  Or should all other XSM_HOOK's be
short-circuted to 0?

The asymmetry here seems weird.

~Andrew




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.