All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Elena Ufimtseva <ufimtseva@gmail.com>
Cc: <xen-devel@lists.xenproject.org>, <konrad.wilk@oracle.com>,
	<boris.ostrovsky@oracle.com>, <tglx@linutronix.de>,
	<mingo@redhat.com>, <hpa@zytor.com>, <x86@kernel.org>,
	<akpm@linux-foundation.org>, <tangchen@cn.fujitsu.com>,
	<wency@cn.fujitsu.com>, <ian.campbell@citrix.com>,
	<stefano.stabellini@eu.citrix.com>, <mukesh.rathor@oracle.com>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH RESEND v2 1/2] xen: vnuma support for PV guests running as domU
Date: Tue, 19 Nov 2013 11:53:55 +0000	[thread overview]
Message-ID: <528B5153.80607@citrix.com> (raw)
In-Reply-To: <1384811922-14642-2-git-send-email-ufimtseva@gmail.com>

On 18/11/13 21:58, Elena Ufimtseva wrote:
> Issues Xen hypercall subop XENMEM_get_vnumainfo and sets the
> NUMA topology, otherwise sets dummy NUMA node and prevents
> numa_init from calling other numa initializators as they dont
> work with pv guests.
[...]
> --- /dev/null
> +++ b/arch/x86/include/asm/xen/vnuma.h
> @@ -0,0 +1,12 @@
> +#ifndef _ASM_X86_VNUMA_H
> +#define _ASM_X86_VNUMA_H
> +
> +#ifdef CONFIG_XEN
> +bool xen_vnuma_supported(void);
> +int xen_numa_init(void);
> +#else
> +static inline bool xen_vnuma_supported(void) { return false; };
> +static inline int xen_numa_init(void) { return -1; };

Return a valid -ve errno here.  e.g., -ENOSYS.

> +#endif
> +
> +#endif /* _ASM_X86_VNUMA_H */
> diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
> index 24aec58..99efa1b 100644
> --- a/arch/x86/mm/numa.c
> +++ b/arch/x86/mm/numa.c
> @@ -17,6 +17,7 @@
>  #include <asm/dma.h>
>  #include <asm/acpi.h>
>  #include <asm/amd_nb.h>
> +#include "asm/xen/vnuma.h"
>  
>  #include "numa_internal.h"
>  
> @@ -632,6 +633,8 @@ static int __init dummy_numa_init(void)
>  void __init x86_numa_init(void)
>  {
>  	if (!numa_off) {
> +		if (!numa_init(xen_numa_init))
> +			return;
>  #ifdef CONFIG_X86_NUMAQ
>  		if (!numa_init(numaq_numa_init))
>  			return;
> diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
> index 96ab2c0..de9deab 100644
> --- a/arch/x86/xen/Makefile
> +++ b/arch/x86/xen/Makefile
> @@ -13,7 +13,7 @@ CFLAGS_mmu.o			:= $(nostackp)
>  obj-y		:= enlighten.o setup.o multicalls.o mmu.o irq.o \
>  			time.o xen-asm.o xen-asm_$(BITS).o \
>  			grant-table.o suspend.o platform-pci-unplug.o \
> -			p2m.o
> +			p2m.o vnuma.o

obj-$(CONFIG_NUMA) += vnuma.o

I commented on this already, please take more care to address all
comments before reposting.

> --- /dev/null
> +++ b/arch/x86/xen/vnuma.c
> @@ -0,0 +1,127 @@
> +#include <linux/err.h>
> +#include <linux/memblock.h>
> +#include <xen/interface/xen.h>
> +#include <xen/interface/memory.h>
> +#include <asm/xen/interface.h>
> +#include <asm/xen/hypercall.h>
> +#include <asm/xen/vnuma.h>
> +
> +#ifdef CONFIG_NUMA
> +
> +/* Checks if hypercall is supported */
> +bool xen_vnuma_supported(void)
> +{
> +	return HYPERVISOR_memory_op(XENMEM_get_vnuma_info, NULL)
> +					== -ENOSYS ? false : true;

return HYPERVISOR_memory_op() != -ENOSYS;

But as I note in the other email, I think this function isn't needed.

> --- a/include/xen/interface/memory.h
> +++ b/include/xen/interface/memory.h
> @@ -263,4 +263,47 @@ struct xen_remove_from_physmap {
>  };
>  DEFINE_GUEST_HANDLE_STRUCT(xen_remove_from_physmap);
>  
> +/* vNUMA structures */
> +struct vmemrange {
> +	uint64_t start, end;
> +	/* reserved */
> +	uint64_t _padm;

If this field is reserved for future use, please name it _reserved and
ensure that the hypervisor checks that it is 0.

> +struct vnuma_topology_info {
> +	/* OUT */
> +	domid_t domid;
> +	uint32_t __pad;
> +	/* IN */
> +	/* number of virtual numa nodes */
> +	union {
> +		GUEST_HANDLE(uint) nr_nodes;
> +		uint64_t    _padn;
> +	};

I don't think anonymous unions are allowed in the ABI.  They're a c99
extension I think.

David

  parent reply	other threads:[~2013-11-19 11:54 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-18 21:58 [PATCH RESEND v2 0/2] xen: vnuma introduction for pv guest Elena Ufimtseva
2013-11-18 21:58 ` [PATCH RESEND v2 1/2] xen: vnuma support for PV guests running as domU Elena Ufimtseva
2013-11-18 21:58 ` Elena Ufimtseva
2013-11-19 11:53   ` David Vrabel
2013-11-19 11:53   ` David Vrabel [this message]
2013-11-18 21:58 ` [PATCH RESEND v2 2/2] xen: enable vnuma for PV guest Elena Ufimtseva
2013-11-18 21:58 ` Elena Ufimtseva
2013-11-19 11:54   ` David Vrabel
2013-11-19 14:16     ` Konrad Rzeszutek Wilk
2013-11-19 14:16     ` Konrad Rzeszutek Wilk
2013-11-19 14:35       ` David Vrabel
2013-11-19 14:46         ` Konrad Rzeszutek Wilk
2013-11-19 14:46         ` Konrad Rzeszutek Wilk
2013-11-19 14:56           ` David Vrabel
2013-11-19 14:56           ` David Vrabel
2013-11-19 15:19             ` Konrad Rzeszutek Wilk
2013-11-19 15:55               ` David Vrabel
2013-11-19 16:20                 ` Konrad Rzeszutek Wilk
2013-11-19 16:20                 ` Konrad Rzeszutek Wilk
2013-11-19 15:55               ` David Vrabel
2013-11-19 15:19             ` Konrad Rzeszutek Wilk
2013-11-23 16:48             ` Dario Faggioli
2013-11-23 16:48             ` [Xen-devel] " Dario Faggioli
2013-11-19 14:35       ` David Vrabel
2013-11-19 11:54   ` David Vrabel
2013-11-19  7:18 ` [Xen-devel] [PATCH RESEND v2 0/2] xen: vnuma introduction for pv guest Dario Faggioli
2013-11-19  7:18 ` Dario Faggioli

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=528B5153.80607@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=akpm@linux-foundation.org \
    --cc=boris.ostrovsky@oracle.com \
    --cc=hpa@zytor.com \
    --cc=ian.campbell@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mukesh.rathor@oracle.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tangchen@cn.fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=ufimtseva@gmail.com \
    --cc=wency@cn.fujitsu.com \
    --cc=x86@kernel.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.