Re: [Xen-devel] [PATCH v2 2/5] vTPM: limit libxl__add_vtpms() function to para virtual machine

2015-01-06 Thread Wei Liu
On Tue, Jan 06, 2015 at 02:17:36AM +, Xu, Quan wrote:
 
 
  -Original Message-
  From: Wei Liu [mailto:wei.l...@citrix.com]
  Sent: Monday, January 05, 2015 8:53 PM
  To: Xu, Quan
  Cc: xen-devel@lists.xen.org; ian.jack...@eu.citrix.com;
  stefano.stabell...@eu.citrix.com; ian.campb...@citrix.com;
  wei.l...@citrix.com
  Subject: Re: [PATCH v2 2/5] vTPM: limit libxl__add_vtpms() function to para
  virtual machine
  
  On Tue, Dec 30, 2014 at 11:45:02PM -0500, Quan Xu wrote:
   Signed-off-by: Quan Xu quan...@intel.com
   ---
tools/libxl/libxl_create.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
  
   diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
   index b1ff5ae..0a09925 100644
   --- a/tools/libxl/libxl_create.c
   +++ b/tools/libxl/libxl_create.c
   @@ -1358,8 +1358,9 @@ static void domcreate_attach_vtpms(libxl__egc
  *egc,
   goto error_out;
   }
  
   -/* Plug vtpm devices */
   -   if (d_config-num_vtpms  0) {
   +   /* Plug vtpm devices for para virtual domain*/
   +   if (d_config-num_vtpms  0 
   +   d_config-b_info.type == LIBXL_DOMAIN_TYPE_PV) {
  
  It's unclear to me why you stub out HVM domain. You need to state your
  reasoning in comment and commit log. :-/
 
 In brief, it is different to plug vtpm device for HVM/PV domain. I will try 
 to describe more detailed in next v3. Thanks Wei.
 

I got that idea when I read your later patch. But stubbing out PV here
is wrong. Essentially this patch introduces a functional regression by
itself because now you can't add vtpms for PV. I doubt that you will
still need this patch in your next round.  See my reply to patch 4/5.

Wei.

 Thanks 
 Quan Xu
  
  Wei.
  
   /* Attach vtpms */
   libxl__multidev_begin(ao, dcs-multidev);
   dcs-multidev.callback = domcreate_attach_pci;
   --
   1.8.3.2

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


Re: [Xen-devel] [PATCH 3/4] tools: libxl: code preparation for MBM

2015-01-06 Thread Chao Peng
On Mon, Jan 05, 2015 at 12:25:05PM +, Wei Liu wrote:
 On Tue, Dec 23, 2014 at 04:54:38PM +0800, Chao Peng wrote:
 [...]
  diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
  index 3737c7e..f4534ec 100644
  --- a/tools/libxl/xl_cmdimpl.c
  +++ b/tools/libxl/xl_cmdimpl.c
  @@ -7845,12 +7845,13 @@ out:
   }
   
   #ifdef LIBXL_HAVE_PSR_CMT
  -static void psr_cmt_print_domain_cache_occupancy(libxl_dominfo *dominfo,
  +static void psr_cmt_print_domain_l3_info(libxl_dominfo *dominfo,
  +libxl_psr_cmt_type 
  type,
   uint32_t nr_sockets)
 
 Indentation.
 
   {
   char *domain_name;
   uint32_t socketid;
  -uint32_t l3_cache_occupancy;
  +uint32_t data;
   
   if (!libxl_psr_cmt_domain_attached(ctx, dominfo-domid))
   return;
  @@ -7860,15 +7861,21 @@ static void 
  psr_cmt_print_domain_cache_occupancy(libxl_dominfo *dominfo,
   free(domain_name);
   
   for (socketid = 0; socketid  nr_sockets; socketid++) {
  -if ( !libxl_psr_cmt_get_cache_occupancy(ctx, dominfo-domid,
  - socketid, l3_cache_occupancy) )
  -printf(%13u KB, l3_cache_occupancy);
  +switch (type) {
  +case LIBXL_PSR_CMT_TYPE_CACHE_OCCUPANCY:
  +if ( !libxl_psr_cmt_get_cache_occupancy(ctx, dominfo-domid,
  + socketid, data) )
  +printf(%13u KB, data);
  +break;
  +default:
  +return;
  +}
   }
   
   printf(\n);
   }
   
  -static int psr_cmt_show_cache_occupancy(uint32_t domid)
  +static int psr_cmt_show_l3_info(libxl_psr_cmt_type type, uint32_t domid)
   {
   uint32_t i, socketid, nr_sockets, total_rmid;
   uint32_t l3_cache_size;
  @@ -7904,18 +7911,22 @@ static int psr_cmt_show_cache_occupancy(uint32_t 
  domid)
   printf(%14s %d, Socket, socketid);
   printf(\n);
   
  -/* Total L3 cache size */
  -printf(%-46s, Total L3 Cache Size);
  -for (socketid = 0; socketid  nr_sockets; socketid++) {
  -rc = libxl_psr_cmt_get_l3_cache_size(ctx, socketid, 
  l3_cache_size);
  -if (rc  0) {
  -fprintf(stderr, Failed to get system l3 cache size for 
  socket:%d\n,
  -socketid);
  -return -1;
  -}
  -printf(%13u KB, l3_cache_size);
  +if ( type == LIBXL_PSR_CMT_TYPE_CACHE_OCCUPANCY ) {
 
 Coding style, no space after ( and before ).
 
 I missed this issue when I reviewed your previous patches.  You can fix
 this style problem here while you're at it.
Sure, I will fix them all.
Thanks.

Chao

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


Re: [Xen-devel] [PATCH 3/4] tools: libxl: code preparation for MBM

2015-01-06 Thread Wei Liu
On Tue, Jan 06, 2015 at 05:46:12PM +0800, Chao Peng wrote:
[...]
  Coding style, no space after ( and before ).
  
  I missed this issue when I reviewed your previous patches.  You can fix
  this style problem here while you're at it.
 Sure, I will fix them all.

If you plan to fix them all and there are many instances, please use
preparatory patch -- don't mix them with functional changes.

Wei.

 Thanks.
 
 Chao

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


Re: [Xen-devel] Writable page tables questions

2015-01-06 Thread Ian Campbell
On Mon, 2015-01-05 at 17:28 +, Andrew Cooper wrote:
 On 04/01/2015 17:17, Junji Zhi wrote:
  Hi,
 
  I'm Junji, a newbie in Xen and hoping I can contribute to the
  community one day. I have a few questions regarding the writable page
  tables, while reading The Definitive Guide to the Xen Hypervisor by
  David Chisnall:
 
  1. Writable page tables is one Xen memory assist technique, applied to
  paravirtualized guests ONLY. HVM does not apply. Correct?
 
  2. According to the book, when a guest wants to modify its page table,
  it triggers a trap into the hypervisor and it does a few steps:
 
  (1) it invalidates a PTE that points to the page containing the page
  table. Is my understanding correct?
 
  Q: What does invalidate really mean here? Does it mean simply
  flipping a bit in the PTE of the page table, or removing the PTE
  completely?

At least clearing the present bit, what happens to the other bits in the
PTE is up to the implementation I think.

  Does it also need to invalidate the TLB entry?

Yes, I think so, else the CPU might subsequently use a stale mapping.

  (2) then the control goes back to the guest and it can write/read the
  page table now.
 
  (3) The book's words pasted: When an address referenced by the newly
  invalidated page directory entry is referenced (read or write), a page
  fault occurs. 
 
  Q: The description of step (3) is confusing. What does it mean by an
  address referenced by the newly invalidated page directory entry is
  referenced? Does it mean the case when the guest code is accessing an
  virtual address that needs to search the invalidated page table for
  translation?

Yes, it means when something tries to access memory which would have
been mapped by the PT page which was removed in (1).

 I do not have the Chisnall book to hand at the moment, so cannot comment
 as to the exact text in it.
 
 However, looking at the code as it exists today,
 XENFEAT_writable_page_tables (there is a typo in the ABI) is strictly
 only offered to HVM guests, and not to PV guests.

XENFEAT_writable_page_tables is different from out of sync PT updates,
which is what Junji (and the book) seems to be referring to.

I don't know if modern Xen still does this for PV (I think it still does
for shadow mode HVM under at least some circumstances) but at at one
point in time (presumably when the book was written) it used to be that
Xen would handle an emulated write to a r/o page table page by:
  * unhooking it from the higher level PTs which referenced it,
flushing TLBs
  * map the PT page itself r/w (contrary to the usual invariant that
it be mapped r/o, which is Xen's usual invariant)

At which point any subsequent writes to the now out-of-sync PT page can
just happen without trapping. This is safe because after the unhook the
PT is not part of any cr3 and the invariant is not violated (the guest
doesn't really know this is happening, for all it knows all writes are
still being emulated).

At some point something would try and access the memory which would be
mapped by the out of sync PT page and Xen will, in the page fault
handler:
  * make all the mappings r/o again (+ tlb flush)
  * validate all the entries in the page
  * rehook it into the higher level PTs which should reference it

At which point the mappings are available again and Xen's invariants are
preserved.

The tlb flushes involved in the above are reasonably expensive, IIRC Xen
flip flopped a bit (years ago now) on whether it is worthwhile doing
this or not, which is why I'm not sure if it still does or not.

This is all different from XENFEAT_writable_page_tables that you talk
about which is where the guest is informed that it is not obliged to
make the regular mappings r/o in the first place, i.e. to ignore Xen's
invariant completely.

Ian.


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


Re: [Xen-devel] [Qemu-devel] bind interdomain ioctl error xen-kvm.c

2015-01-06 Thread Rishi Ranjan
Hi Stefano,
 Please find my answers inline.

 However Anthony (CC'ed) should have some patches for it.
Anthony, can you please share any patch that can help me with this?


 Can you post the full output of the logs?
I have attached the output of sudo xl -v create /etc/xen/qemu-pv.cfg
as xl_create.txt. I have also enabled DEBUG_XEN_HVM in xen-hvm.c and pasted
output of sudo ./x86_64-softmmu/qemu-system-x86_64  -machine q35,accel=xen
-cpu qemu64 -xen-domid 13 below:


xen: shared page at pfn feffd
xen: buffered io page at pfn feffb
bind interdomain ioctl error 22
xen hardware virtual machine initialisation failed


 What is the Xen version that you are running?

I am using XEN 4.4.1 as this is the default on Ubuntu 14.04. I have
attached the output of xl info command as xl_info.txt.

Did you execute the xencommons init script at boot time?
On Ubuntu I don't see /etc/init.d/xencommon but there is a /etc/init.d/xen
script which starts xenstored and xenconsoled. I did confirm from ps aufx
that both the daemons are running. I have attched log for ps aufx as
ps_aufx_grep_xen.txt .






On Mon, Jan 5, 2015 at 4:48 AM, Stefano Stabellini 
stefano.stabell...@eu.citrix.com wrote:

 On Tue, 30 Dec 2014, Rishi Ranjan wrote:
  I am trying to use Xen as accelerator for my Qemu machine. I have
 created a guest domain with following xl config:
  builder = hvm
  name = qemu-hvm
  memory = 512
  vcpus = 1
  vif = ['']
  vnc = 1
  boot=c
 
 
  When I try to run with following parameters:
 
  -machine q35,accel=xen -cpu qemu64 -bios ./pc-bios/bios-256k.bin
 -xen-domid Domain id of guest

 You should know that q35 emulation is not fully working on Xen yet.
 However Anthony (CC'ed) should have some patches for it.

 That said, it does not look like this error has something to do with
 q35.


  I am getting follwing error from xen-hvm.c:
 
  bind interdomain ioctl error in xen_hvm_init while calling
 state-shared_vmport_page =
  xc_map_foreign_range(xen_xc, xen_domid, XC_PAGE_SIZE,
   PROT_READ|PROT_WRITE, ioreq_pfn);
 
  Can someone help me get this working?

 Can you post the full output of the logs?
 What is the Xen version that you are running?
 Did you execute the xencommons init script at boot time?
host   : rishi-700-327c
release: 3.13.0-43-generic
version: #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014
machine: x86_64
nr_cpus: 8
max_cpu_id : 7
nr_nodes   : 1
cores_per_socket   : 4
threads_per_core   : 2
cpu_mhz: 3392
hw_caps: 
bfebfbff:2c100800::7f00:77fafbff::0021:2fbb
virt_caps  : hvm hvm_directio
total_memory   : 16289
free_memory: 128
sharing_freed_memory   : 0
sharing_used_memory: 0
outstanding_claims : 0
free_cpus  : 0
xen_major  : 4
xen_minor  : 4
xen_extra  : .1
xen_version: 4.4.1
xen_caps   : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 
hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler  : credit
xen_pagesize   : 4096
platform_params: virt_start=0x8000
xen_changeset  : 
xen_commandline: placeholder no-real-mode edd=off
cc_compiler: gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
cc_compile_by  : stefan.bader
cc_compile_domain  : canonical.com
cc_compile_date: Wed Nov 26 14:12:33 UTC 2014
xend_config_format : 4
root65  0.0  0.0  0 0 ?S09:33   0:00  \_ [xenwatch]
root66  0.0  0.0  0 0 ?S09:33   0:00  \_ [xenbus]
root72  0.0  0.0  0 0 ?S   09:33   0:00  \_ 
[xenbus_frontend]
root  1112  0.0  0.0  10232  2408 ?Ss   09:33   0:00 dhclient -1 -v 
-pf /run/dhclient.xenbr0.pid -lf /var/lib/dhcp/dhclient.xenbr0.leases xenbr0
root  1524  0.0  0.0  10992   960 ?S09:33   0:00 
/usr/lib/xen-4.4/bin/xenstored --pid-file=/var/run/xenstore.pid
root  1530  0.0  0.0  82572   632 ?SLl  09:33   0:00 
/usr/lib/xen-4.4/bin/xenconsoled --pid-file=/var/run/xenconsoled.pid
rishi 4309  0.0  0.0  17444   932 pts/1S+   10:44   0:00  | 
  \_ grep --color=auto xen
sudo xl -v create /etc/xen/qemu-pv.cfg 
Parsing config from /etc/xen/qemu-pv.cfg
libxl: detail: libxl_dom.c:195:numa_place_domain: NUMA placement candidate with 
1 nodes, 8 cpus and 4477 KB free selected
xc: detail: elf_parse_binary: phdr: paddr=0x10 memsz=0xa7a84
xc: detail: elf_parse_binary: memory: 0x10 - 0x1a7a84
xc: detail: VIRTUAL MEMORY ARRANGEMENT:
  Loader:0010-001a7a84
  Modules:   -
  TOTAL: -ff80
  ENTRY ADDRESS: 00100620
xc: detail: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0200
  2MB PAGES: 

Re: [Xen-devel] [PATCH 4/4] tools: add total/local memory bandwith monitoring

2015-01-06 Thread Andrew Cooper
On 06/01/15 10:09, Chao Peng wrote:
 On Mon, Jan 05, 2015 at 12:39:42PM +, Wei Liu wrote:
 On Tue, Dec 23, 2014 at 04:54:39PM +0800, Chao Peng wrote:
 [...]
 +static int libxl__psr_cmt_get_mem_bandwidth(libxl__gc *gc, uint32_t domid,
 +xc_psr_cmt_type type, uint32_t socketid, uint32_t *bandwidth)
 +{
 +uint64_t sample1, sample2;
 +uint32_t upscaling_factor;
 +int rc;
 +
 +rc = libxl__psr_cmt_get_l3_monitoring_data(gc, domid,
 +type, socketid, sample1);
 +if (rc  0)
 +return ERROR_FAIL;
 +
 +usleep(1);
 +
 +rc = libxl__psr_cmt_get_l3_monitoring_data(gc, domid,
 +type, socketid, sample2);
 +if (rc  0)
 +   return ERROR_FAIL;
 +
 +if (sample2  sample1) {
 + LOGE(ERROR, event counter overflowed between two samplings);
 + return ERROR_FAIL;
 +}
 +
 What's the likelihood of counter overflows? Can we handle this more
 gracefully? Say, retry (with maximum retry cap) when counter overflows?
 The likelihood is very small here. Hardware guarantees the counter will
 not overflow in one second even under maximum platform bandwidth conditions.
 And we only sleep 0.01 second here. 

 I'd like to adopt your suggestion to retry another time once that happens.
 But only one retry and it should correct the overflow.

 Thanks,
 Chao

You have no possible way of guaranteeing that the actual elapsed time
between the two samples is less than 1 second.  On a very heavily loaded
system, even regular task scheduling could cause an actual elapsed time
of more than one second in that snippet of code.

~Andrew


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


Re: [Xen-devel] [win-pv-devel] XenBus_AddWatch

2015-01-06 Thread Paul Durrant
 -Original Message-
 From: win-pv-devel-boun...@lists.xenproject.org [mailto:win-pv-devel-
 boun...@lists.xenproject.org] On Behalf Of hanji unit
 Sent: 31 December 2014 15:15
 To: win-pv-de...@lists.xenproject.org; xen-devel@lists.xen.org
 Subject: [win-pv-devel] XenBus_AddWatch
 
 Hello, I am calling XenBus_AddWatch API from a DomU guest in the
 win-pvdrivers xenpci driver, and noticed that I am not able to watch
 xenstore entries that are outside of the DomU's xenstore tree. For
 example, the following call in
 XenPci_EvtDeviceD0EntryPostInterruptsEnabled fails with response=EIO
 even if the xenstore permissions for Container and Container/DomU in
 xenstore are both b0:
 
 response = XenBus_AddWatch(xpdd, XN_BASE_GLOBAL,
 Container/DomU,
 MyCallback, xpdd);
 
 However, the following call works and it watches a xenstore entry
 relative to DomUs xenstore tree:
 
 response = XenBus_AddWatch(xpdd, XBT_NIL, DomU, MyCallback, xpdd);
 
 Writing to an entry outside the DomUs tree is allowed if permissions are b0:
 
 result = XnWriteString(xpdd, XN_BASE_GLOBAL, Container/DomU, buffer);
 
 It seems like DomUs should be allowed to watch xenstore entries
 outside their trees. Is this a bug or is it by design?

Hi,

  The API you're referring to is part of James Harper's GPLPV drivers I 
believe, which I'm no expert on. I would imagine the API simply passes error 
codes back from xenstored though so you should probably check 
xenstored-access.log, although EIO does sound like an odd code to get back.

  Paul

 
 Thanks.
 
 ___
 win-pv-devel mailing list
 win-pv-de...@lists.xenproject.org
 http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

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


Re: [Xen-devel] Parallel make supported?

2015-01-06 Thread Wei Liu
On Tue, Jan 06, 2015 at 12:08:33AM +, Peter Kay wrote:
 root[xen-4.5.0-rc4]# ls -l tools/xenstore/libxenstore*
 -rw-r--r-- 1 root root 98580 Dec 19 22:02 tools/xenstore/libxenstore.a
 -rwxr-xr-x 1 root root 82624 Dec 19 22:02
 tools/xenstore/libxenstore.so.3.0.3
 
 Please see output of make -d -C tools/xenstore init-xenstore-domain
 attached - it's quite long uncompressed
 

The log file suggests compilation of init-xenstore-domain is
successful. :-/

If you encounter that problem with parallel build you might want to
invoke make with -j?

Wei.

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


Re: [Xen-devel] One question about the hypercall to translate gfn to mfn.

2015-01-06 Thread Ian Campbell
On Tue, 2015-01-06 at 08:42 +, Tian, Kevin wrote:
  From: George Dunlap
  Sent: Monday, January 05, 2015 11:50 PM
  
  On Fri, Dec 12, 2014 at 6:29 AM, Tian, Kevin kevin.t...@intel.com wrote:
   We're not there in the current design, purely because XenGT has to be
   in dom0 (so it can trivially DoS Xen by rebooting the host).
  
   Can we really decouple dom0 from DoS Xen? I know there's on-going effort
   like PVH Dom0, however there are lots of trickiness in Dom0 which can
   put the platform into a bad state. One example is ACPI. All the platform
   details are encapsulated in AML language, and only dom0 knows how to
   handle ACPI events. Unless Xen has another parser to guard all possible
   resources which might be touched thru ACPI, a tampered dom0 has many
   way to break out. But that'd be very challenging and complex.
  
   If we can't containerize Dom0's behavior completely, I would think dom0
   and Xen actually in the same trust zone, so putting XenGT in Dom0 
   shouldn't
   make things worse.
  
  The question here is, If a malicious guest can manage to break into
  XenGT, what can they do?
  
  If XenGT is running in dom0, then the answer is, At very least, they
  can DoS the host because dom0 is allowed to reboot; they can probably
  do lots of other nasty things as well.
  
  If XenGT is running in its own domain, and can only add IOMMU entries
  for MFNs belonging to XenGT-only VMs, then the answer is, They can
  access other XenGT-enabled VMs, but they cannot shut down the host or
  access non-XenGT VMs.
  
  Slides 8-11 of a presentation I gave
  (http://www.slideshare.net/xen_com_mgr/a-brief-tutorial-on-xens-advanced-s
  ecurity-features)
  can give you a graphical idea of what we're' talking about.
  
 
 I agree we need to make XenGT more isolated following on-going trend from
 previous discussion, but regarding to whether Dom0/Xen are in the same 
 security
 domain, I don't see my statement is changed w/ above attempts which just try 
 to 
 move privileged Xen stuff away from dom0, but all existing Linux 
 vulnerabilities 
 allow a tampered Dom0 do many evil things with root permission or even 
 tampered 
 kernel to DoS Xen (e.g. w/ ACPI). PVH dom0 can help performance... but itself 
 alone 
 doesn't change the fact that Dom0/Xen are actually in the same security 
 domain. :-)

Which is a good reason why one would want to remove as much potentially
vulnerable code from dom0 as possible, and then deny it the
corresponding permissions via XSM too.

I also find the argument dom0 can do some bad things so we should let
it be able to do all bad things rather specious.

Ian.


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


Re: [Xen-devel] [PATCH 0/2] VT-d: extend XSA-59 workaround

2015-01-06 Thread Jan Beulich
 Dugger, Donald D donald.d.dug...@intel.com 01/05/15 5:28 PM 
Working to resolve this issue, I hope to have a definitive answer by the end 
of this week.

I.e. too late for 4.5, unless it gets slipped further...

Jan


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


Re: [Xen-devel] [RFC 2/2] x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader

2015-01-06 Thread Paolo Bonzini


On 05/01/2015 20:17, Marcelo Tosatti wrote:
 But there is no guarantee that vCPU-N has updated its pvti when
 vCPU-M resumes guest instruction execution.

You're right.

 So the cost this patch removes is mainly from __getcpu (==RDTSCP?) ?
 Perhaps you can use Gleb's idea to stick vcpu id into version field ?

Or just replace __getcpu with rdtscp.

Paolo

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


Re: [Xen-devel] One question about the hypercall to translate gfn to mfn.

2015-01-06 Thread Tian, Kevin
 From: George Dunlap
 Sent: Monday, January 05, 2015 11:50 PM
 
 On Fri, Dec 12, 2014 at 6:29 AM, Tian, Kevin kevin.t...@intel.com wrote:
  We're not there in the current design, purely because XenGT has to be
  in dom0 (so it can trivially DoS Xen by rebooting the host).
 
  Can we really decouple dom0 from DoS Xen? I know there's on-going effort
  like PVH Dom0, however there are lots of trickiness in Dom0 which can
  put the platform into a bad state. One example is ACPI. All the platform
  details are encapsulated in AML language, and only dom0 knows how to
  handle ACPI events. Unless Xen has another parser to guard all possible
  resources which might be touched thru ACPI, a tampered dom0 has many
  way to break out. But that'd be very challenging and complex.
 
  If we can't containerize Dom0's behavior completely, I would think dom0
  and Xen actually in the same trust zone, so putting XenGT in Dom0 shouldn't
  make things worse.
 
 The question here is, If a malicious guest can manage to break into
 XenGT, what can they do?
 
 If XenGT is running in dom0, then the answer is, At very least, they
 can DoS the host because dom0 is allowed to reboot; they can probably
 do lots of other nasty things as well.
 
 If XenGT is running in its own domain, and can only add IOMMU entries
 for MFNs belonging to XenGT-only VMs, then the answer is, They can
 access other XenGT-enabled VMs, but they cannot shut down the host or
 access non-XenGT VMs.
 
 Slides 8-11 of a presentation I gave
 (http://www.slideshare.net/xen_com_mgr/a-brief-tutorial-on-xens-advanced-s
 ecurity-features)
 can give you a graphical idea of what we're' talking about.
 

I agree we need to make XenGT more isolated following on-going trend from
previous discussion, but regarding to whether Dom0/Xen are in the same security
domain, I don't see my statement is changed w/ above attempts which just try to 
move privileged Xen stuff away from dom0, but all existing Linux 
vulnerabilities 
allow a tampered Dom0 do many evil things with root permission or even tampered 
kernel to DoS Xen (e.g. w/ ACPI). PVH dom0 can help performance... but itself 
alone 
doesn't change the fact that Dom0/Xen are actually in the same security domain. 
:-)

Thanks
Kevin
___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] xen/x86: properly retrieve NMI reason

2015-01-06 Thread Jan Beulich
 David Vrabel david.vra...@citrix.com 01/05/15 11:35 AM 
On 19/12/14 16:16, Jan Beulich wrote:
 Using the native code here can't work properly, as the hypervisor would
 normally have cleared the two reason bits by the time Dom0 gets to see
 the NMI (if passed to it at all). There's a shared info field for this,
 and there's an existing hook to use - just fit the two together. Note
 that the hook can (and should) be used irrespective of whether being in
 Dom0, as accessing port 0x61 in a DomU would be even worse, while the
 shared info field would just hold zero all the time.
 
 Signed-off-by: Jan Beulich jbeul...@suse.com

This doesn't build.

In file included from
/local/davidvr/work/k.org/tip/arch/x86/xen/enlighten.c:43:0:
/local/davidvr/work/k.org/tip/include/xen/interface/nmi.h:44:1: warning:
data definition has no type or storage class [enabled by default]
/local/davidvr/work/k.org/tip/include/xen/interface/nmi.h:44:1: error:
type defaults to ‘int’ in declaration of ‘DEFINE_XEN_GUEST_HANDLE’
[-Werror=implicit-int]
cc1: some warnings being treated as errors

Hmm, I can see why this happens (Linux renaming the macro from what
the canonical headers use), but I'll have to check why my build test didn't
catch this...

Jan


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


Re: [Xen-devel] One question about the hypercall to translate gfn to mfn.

2015-01-06 Thread Tian, Kevin
 From: Tim Deegan [mailto:t...@xen.org]
 Sent: Thursday, December 18, 2014 11:47 PM
 
 Hi,
 
 At 07:24 + on 12 Dec (1418365491), Tian, Kevin wrote:
   I'm afraid not.  There's nothing worrying per se in a backend knowing
   the MFNs of the pages -- the worry is that the backend can pass the
   MFNs to hardware.  If the check happens only at lookup time, then XenGT
   can (either through a bug or a security breach) just pass _any_ MFN to
   the GPU for DMA.
  
   But even without considering the security aspects, this model has bugs
   that may be impossible for XenGT itself to even detect.  E.g.:
1. Guest asks its virtual GPU to DMA to a frame of memory;
2. XenGT looks up the GFN-MFN mapping;
3. Guest balloons out the page;
4. Xen allocates the page to a different guest;
5. XenGT passes the MFN to the GPU, which DMAs to it.
  
   Whereas if stage 2 is a _mapping_ operation, Xen can refcount the
   underlying memory and make sure it doesn't get reallocated until XenGT
   is finished with it.
 
  yes, I see your point. Now we can't support ballooning in VM given above
  reason, and refcnt is required to close that gap.
 
  but just to confirm one point. from my understanding whether it's a
  mapping operation doesn't really matter. We can invent an interface
  to get p2m mapping and then increase refcnt. the key is refcnt here.
  when XenGT constructs a shadow GPU page table, it creates a reference
  to guest memory page so the refcnt must be increased. :-)
 
 True. :)  But Xen does need to remember all the refcounts that were
 created (so it can tidy up if the domain crashes).  If Xen is already
 doing that it might as well do it in the IOMMU tables since that
 solves other problems.

would a refcnt in p2m layer enough so we don't need separate refcnt in both
EPT and IOMMU page table?

 
   [First some hopefully-helpful diagrams to explain my thinking.  I'll
borrow 'BFN' from Malcolm's discussion of IOMMUs to describe the
addresses that devices issue their DMAs in:
 
  what's 'BFN' short for? Bus Frame Number?
 
 Yes, I think so.
 
   If we replace that lookup with a _map_ hypercall, either with Xen
   choosing the BFN (as happens in the PV grant map operation) or with
   the guest choosing an unused address (as happens in the HVM/PVH
   grant map operation), then:
- the only extra code in XenGT itself is that you need to unmap
  when you change the GTT;
- Xen can track and control exactly which MFNs XenGT/the GPU can
 access;
- running XenGT in a driver domain or PVH dom0 ought to work; and
- we fix the race condition I described above.
 
  ok, I see your point here. It does sound like a better design to meet
  Xen hypervisor's security requirement and can also work with PVH
  Dom0 or driver domain. Previously even when we said a MFN is
  required, it's actually a BFN due to IOMMU existence, and it works
  just because we have a 1:1 identity mapping in-place. And by finding
  a BFN
 
  some follow-up think here:
 
  - one extra unmap call will have some performance impact, especially
  for media processing workloads where GPU page table modifications
  are hot. but suppose this can be optimized with batch request
 
 Yep.  In general I'd hope that the extra overhead of unmap is small
 compared with the trap + emulate + ioreq + schedule that's just
 happened.  Though I know that IOTLB shootdowns are potentially rather
 expensive right now so it might want some measurement.

yes, that's the hard part requiring experiments to find a good balance
between complexity and performance. IOMMU page table is not designed 
with same frequent modifications as CPU/GPU page tables, but following
above trend make them connected. Another option might be reserve a big
enough BFNs to cover all available guest memory at boot time, so to
eliminate run-time modification overhead.

 
  - is there existing _map_ call for this purpose per your knowledge, or
  a new one is required? If the latter, what's the additional logic to be
  implemented there?
 
 For PVH, the XENMEM_add_to_physmap (gmfn_foreign) path ought to do
 what you need, I think.  For PV, I think we probably need a new map
 operation with sensible semantics.  My inclination would be to have it
 follow the grant-map semantics (i.e. caller supplies domid + gfn,
 hypervisor supplies BFN and success/failure code).

setup mapping is not a big problem. it's more about finding available BFNs
in a way not conflicting with other usages e.g. memory hotplug, ballooning
(well for this I'm not sure now whether it's only for existing gfns from other
thread...)

 
 Malcolm might have opinions about this -- it starts looking like the
 sort of PV IOMMU interface he's suggested before.

we'd like to hear Malcolm's suggestion here.

 
  - when you say _map_, do you expect this mapped into dom0's virtual
  address space, or just guest physical space?
 
 For PVH, I mean into guest physical address space (and iommu tables,
 since those 

Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Sander Eikelenboom

Monday, January 5, 2015, 9:08:32 PM, you wrote:

 Xen 4.5-rc4 was out on Monday (Dec 15th). The GA
 General Release is on Jan 7th^H^H^14th!

 There are some outstanding patches on which we need to figure
 out whether we will commit them in or not.

 When we commit a patch in, the OSSTest takes a day or so to push it to 
 'master'
 - and if it fails during that time patches that are later in the sequence are
 not applied. Hence if everything works out great - we get the patches
 to show up next day - however if something breaks - we are stalled.

 Ian(s) has pointed to me that the OSSTest is sometimes on the fritz and that 
 it
 might take more than one day to push patches through which means we won't
 make it by Wednesday.

 As such, moving it the release by a week to give us ample room to get through
 those changes.

 These are the patches that need to be investigated whether they should
 go in or not:

  VT-d: don't crash when PTE bits 52 and up are non-zero
  VT-d: extend XSA-59 workaround to XeonE5 v3 (Haswell)
  VT-d: make XSA-59 workaround fully cover XeonE5/E7 v2
  x86/VPMU: Clear last_vcpu when destroying VPMU
  tools/hotplug: add wrapper to start xenstored
  tools/hotplug: remove EnvironmentFile from xen-qemu-dom0-disk-backend.service
  tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service
  tools/hotplug: use xencommons as EnvironmentFile in xenconsoled.service
  tools/hotplug: xendomains.service depends on network
  tools/hotplug: remove XENSTORED_ROOTDIR from xenstored.service
  tools/hotplug: remove SELinux options from var-lib-xenstored.mount
  tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ss
  xen: arm: correct off-by-one error in consider_module

Hi Konrad,

Has this: http://lists.xen.org/archives/html/xen-devel/2014-12/msg01715.html 
patch slipped through the cracks ?
It has your release-ack but isn't applied yet, nor is it on the above short 
list.

BTW: Will there be a branch off and one last non-debug RC before release ?
 (i thought that has been done in the past, but could be mistaken)

--
Sander

  
 = Timeline =

 Xen 4.5 is a 10 month release. The dates are:

 * Feature Freeze: 24th September 2014
 * First RC: 24th October [Friday!]
 * RC2: Nov 11th
 * RC2 Test-day: Nov 13th
 * RC3: Dec 3rd.
 * RC3 Test-day: Dec 4th
 * RC4: Dec 15th
 * RC4 Test-day: Dec 17th

  WE ARE HERE ===

  Release Date: Jan 14th.





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


Re: [Xen-devel] Parallel make supported?

2015-01-06 Thread Ian Campbell
On Tue, 2015-01-06 at 10:36 +, Wei Liu wrote:
 On Tue, Jan 06, 2015 at 12:08:33AM +, Peter Kay wrote:

Peter, could you not top post and do trim your quotes please.

  root[xen-4.5.0-rc4]# ls -l tools/xenstore/libxenstore*
  -rw-r--r-- 1 root root 98580 Dec 19 22:02 tools/xenstore/libxenstore.a
  -rwxr-xr-x 1 root root 82624 Dec 19 22:02
  tools/xenstore/libxenstore.so.3.0.3
  
  Please see output of make -d -C tools/xenstore init-xenstore-domain
  attached - it's quite long uncompressed
  
 
 The log file suggests compilation of init-xenstore-domain is
 successful. :-/
 
 If you encounter that problem with parallel build you might want to
 invoke make with -j?

Sorry, my fault for not including that in the initial suggestion.

Ian.


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


Re: [Xen-devel] [Qemu-devel] bind interdomain ioctl error xen-kvm.c

2015-01-06 Thread Ian Campbell
On Mon, 2015-01-05 at 11:10 -0800, Rishi Ranjan wrote:
 Hi Stefano,
  Please find my answers inline. 
 
 
  However Anthony (CC'ed) should have some patches for it.
 
 Anthony, can you please share any patch that can help me with this?
 
 
 
 
  Can you post the full output of the logs?
 I have attached the output of sudo xl -v create /etc/xen/qemu-pv.cfg
 as xl_create.txt. I have also enabled DEBUG_XEN_HVM in xen-hvm.c and
 pasted output of sudo ./x86_64-softmmu/qemu-system-x86_64  -machine
 q35,accel=xen -cpu qemu64 -xen-domid 13 below: 

Have you done anything which stops xl create from also launching a
qemu? The guest cfg file you posted earlier didn't suggest so. Running
two qemu's against the same domain doesn't seem likely to result in good
things...

 Did you execute the xencommons init script at boot time?
 On Ubuntu I don't see /etc/init.d/xencommon but there is
 a /etc/init.d/xen script which starts xenstored and xenconsoled.

Yes, Debian and Ubuntu don't use the upstream initscript but have their
own.

Ian.



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


Re: [Xen-devel] [Qemu-devel] bind interdomain ioctl error xen-kvm.c

2015-01-06 Thread Anthony PERARD
On Mon, Jan 05, 2015 at 11:10:34AM -0800, Rishi Ranjan wrote:
  However Anthony (CC'ed) should have some patches for it.
 Anthony, can you please share any patch that can help me with this?

Hi,

The patches are in two repos:
git://xenbits.xen.org/people/aperard/xen-unstable.git
branch: machine-q35-wip

git://xenbits.xen.org/people/aperard/qemu-dm.git
branch: xen-q35-wip

For the xen tree, it's the 3 top commit, and the top commit for qemu.
Once applied, hvmloader will only work with Q35 and not with the
default machine.

-- 
Anthony PERARD

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


Re: [Xen-devel] [PATCH 1/7] tools/hotplug: remove SELinux options from var-lib-xenstored.mount

2015-01-06 Thread Ian Campbell
On Fri, 2014-12-19 at 12:25 +0100, Olaf Hering wrote:
 Using SELinux mount options per default breaks several systems.
 Either the context= mount option is not known at all to the kernel,
 as reported for ArchLinux. Or the default value none is unknown to
 SELinux, as reported for Fedora. In both cases the unit will fail.
 
 The proper place to specify mount options is /etc/fstab. Appearently
 systemd is kind enough to use values from there even if Options= or
 What= is specified in a .mount file.
 
 Remove XENSTORED_MOUNT_CTX, the reference to a non-existant
 EnvironmentFile and trim default Options= for the mount point.
 
 The removed code was first mentioned in the patch referenced below,
 with the following description:
 ...
  * Some systems define the selinux context in the systemd Option for
the /var/lib/xenstored tmpfs:
  Options=mode=755,context=system_u:object_r:xenstored_var_lib_t:s0
For the upstream version we remove that and let systems specify
the context on their system /etc/default/xenstored or
/etc/sysconfig/xenstored $XENSTORED_MOUNT_CTX variable
 ...
 It is nowhere stated (on xen-devel) what Some systems means, which
 is unfortunately common practice in nearly all opensource projects.
 http://lists.xenproject.org/archives/html/xen-devel/2014-03/msg02462.html
 
 Signed-off-by: Olaf Hering o...@aepfle.de
 Cc: Ian Jackson ian.jack...@eu.citrix.com
 Cc: Stefano Stabellini stefano.stabell...@eu.citrix.com

Acked-by: Ian Campbell ian.campb...@citrix.com

(on commit s/Appearently/Apparently/; s/non-existant/non-existent/ in
the commit log)

 -Options=mode=755,context=$XENSTORED_MOUNT_CTX
 +Options=mode=755

FWIW an alternative might have been:
  Options=mode=755,$XENSTORED_MOUNT_OPTIONS
where the variable from the EnvironmentFile could contain context= as
necessary (and maybe even mode=... by default).

But if /etc/fstab is the Right Place(tm) then lets go with that for 4.5.

Ian.



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


Re: [Xen-devel] [PATCH 4/7] tools/hotplug: use xencommons as EnvironmentFile in xenconsoled.service

2015-01-06 Thread Ian Campbell
On Fri, 2014-12-19 at 12:25 +0100, Olaf Hering wrote:
 The referenced sysconfig/xenconsoled does not exist. If anything
 needs to be specified it has to go into the existing
 sysconfig/xencommons file.

That seems consistent with the initscript and the xencommons sysconfig
template even includes XENCONSOLED_TRACE as an example, so I think this
is correct.

 Signed-off-by: Olaf Hering o...@aepfle.de
 Cc: Ian Jackson ian.jack...@eu.citrix.com
 Cc: Stefano Stabellini stefano.stabell...@eu.citrix.com

Acked-by: Ian Campbell ian.campb...@citrix.com

 Cc: Wei Liu wei.l...@citrix.com
 ---
  tools/hotplug/Linux/systemd/xenconsoled.service.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/tools/hotplug/Linux/systemd/xenconsoled.service.in 
 b/tools/hotplug/Linux/systemd/xenconsoled.service.in
 index cb44cd6..74d0428 100644
 --- a/tools/hotplug/Linux/systemd/xenconsoled.service.in
 +++ b/tools/hotplug/Linux/systemd/xenconsoled.service.in
 @@ -9,7 +9,7 @@ Type=simple
  Environment=XENCONSOLED_ARGS=
  Environment=XENCONSOLED_LOG=none
  Environment=XENCONSOLED_LOG_DIR=@XEN_LOG_DIR@/console
 -EnvironmentFile=-@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xenconsoled
 +EnvironmentFile=@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
  PIDFile=@XEN_RUN_DIR@/xenconsoled.pid
  ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
  ExecStartPre=/bin/mkdir -p ${XENCONSOLED_LOG_DIR}



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


Re: [Xen-devel] [PATCH 5/7] tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service

2015-01-06 Thread Ian Campbell
On Fri, 2014-12-19 at 12:25 +0100, Olaf Hering wrote:
 Instead of inventing a new XENCONSOLED_LOG= variable reuse the
 existing XENCONSOLED_TRACE= variable in xenconsoled.service.
 
 Signed-off-by: Olaf Hering o...@aepfle.de
 Cc: Ian Jackson ian.jack...@eu.citrix.com
 Cc: Stefano Stabellini stefano.stabell...@eu.citrix.com

Acked-by: Ian Campbell ian.campb...@citrix.com

(should XENCONSOLED_LOG_DIR be changed for consistency?)

 Cc: Wei Liu wei.l...@citrix.com
 ---
  tools/hotplug/Linux/systemd/xenconsoled.service.in | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/tools/hotplug/Linux/systemd/xenconsoled.service.in 
 b/tools/hotplug/Linux/systemd/xenconsoled.service.in
 index 74d0428..4788129 100644
 --- a/tools/hotplug/Linux/systemd/xenconsoled.service.in
 +++ b/tools/hotplug/Linux/systemd/xenconsoled.service.in
 @@ -7,13 +7,13 @@ ConditionPathExists=/proc/xen/capabilities
  [Service]
  Type=simple
  Environment=XENCONSOLED_ARGS=
 -Environment=XENCONSOLED_LOG=none
 +Environment=XENCONSOLED_TRACE=none
  Environment=XENCONSOLED_LOG_DIR=@XEN_LOG_DIR@/console
  EnvironmentFile=@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
  PIDFile=@XEN_RUN_DIR@/xenconsoled.pid
  ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
  ExecStartPre=/bin/mkdir -p ${XENCONSOLED_LOG_DIR}
 -ExecStart=@sbindir@/xenconsoled --pid-file @XEN_RUN_DIR@/xenconsoled.pid 
 --log=${XENCONSOLED_LOG} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
 +ExecStart=@sbindir@/xenconsoled --pid-file @XEN_RUN_DIR@/xenconsoled.pid 
 --log=${XENCONSOLED_TRACE} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
  
  [Install]
  WantedBy=multi-user.target



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


Re: [Xen-devel] [Qemu-devel] bind interdomain ioctl error xen-kvm.c

2015-01-06 Thread Anthony PERARD
On Tue, Jan 06, 2015 at 11:11:48AM +, Anthony PERARD wrote:
 On Mon, Jan 05, 2015 at 11:10:34AM -0800, Rishi Ranjan wrote:
   However Anthony (CC'ed) should have some patches for it.
  Anthony, can you please share any patch that can help me with this?
 
 Hi,
 
 The patches are in two repos:
 git://xenbits.xen.org/people/aperard/xen-unstable.git
 branch: machine-q35-wip
 
 git://xenbits.xen.org/people/aperard/qemu-dm.git
 branch: xen-q35-wip
 
 For the xen tree, it's the 3 top commit, and the top commit for qemu.
 Once applied, hvmloader will only work with Q35 and not with the
 default machine.

To start a guest, I have this in the guest config:
disk = [ 'phy:/dev/mapper/vg-guest_q35,sda,w' ]
machine='q35'

If you wish, you can recompile only hvmloader and qemu and have
something like this in your guest config:
firmware_override  = '/root/hvmloader-q35'
device_model_override = '/root/qemu-xen-q35'
device_model_version = 'qemu-xen'
device_model_args_hvm = [ '-machine', 'q35,accel=xen' ]


Hope that help.

-- 
Anthony PERARD

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


Re: [Xen-devel] [PATCH 6/7] tools/hotplug: remove EnvironmentFile from xen-qemu-dom0-disk-backend.service

2015-01-06 Thread Ian Campbell
On Fri, 2014-12-19 at 12:25 +0100, Olaf Hering wrote:
 The references Environment file does not exist, and the service file

referenced

 does not make use of variables anyway.

In principal the env vars are also for the benefit of the thing launched
by the Exec line too, not just the unit file.

qemu-system-i386 does use getenv() but not in any way which looks
relevant under Xen (e.g. linux-user/main.c uses it, but we don't care).

If someone changes exec to something (e.g. a wrapper) which cares about
envvars they can equally well set EnvironmentFile too. So:

Acked-by: Ian Campbell ian.campb...@citrix.com



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


Re: [Xen-devel] [PATCH] tools: libxl: link libxlu against libxl.

2015-01-06 Thread Ian Campbell
On Wed, 2014-12-17 at 15:54 -0500, Konrad Rzeszutek Wilk wrote:
 On Mon, Dec 15, 2014 at 10:02:31AM +, Ian Campbell wrote:
  On Mon, 2014-08-04 at 10:58 +0100, Ian Campbell wrote:
  
  Ping again. This issue has resurfaced in the Debian packaging of the 4.5
  rcs. I think we should fix this for 4.5, the risks are minimal.
 
 Ah, the patch did not have 'for-xen-4.5' in it :-P
 
  
   It uses libxl_defbool_set and must therefore be linked against the
   right library.
   
   Spotted by dpkg-shlibdeps and pointed out by Bastian Blank:
   
   dpkg-shlibdeps: warning: symbol libxl_defbool_set used by 
   debian/libxen-4.4/usr/lib/libxlutil-4.4.so found in none of the libraries
   
   This required switching the make rule from $^ to an explicit
   LIBXLU_OBJS since the former now includes libxenlight.so.
   
   Signed-off-by: Ian Campbell ian.campb...@citrix.com
   Cc: Bastian Blank wa...@debian.org
 
 Shouldn't this be 'Reported-by: 
 
 Anyhow,
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

Applied. 



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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Ian Campbell
On Mon, 2015-01-05 at 15:08 -0500, konrad.w...@oracle.com wrote:
  tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ss
  xen: arm: correct off-by-one error in consider_module

I've just now applied both.

Also I found these with release acks and applied them:
tools: libxl: link libxlu against libxl.
xen/arm: Initialize the domain vgic lock
reset PCI devices on force removal even when QEMU returns error

I was a little unsure about enacting Release-Acks given more than a few
weeks ago, but I figured we could always revert if your opinion was that
it was now too close to the release (my main concern would be the third
one, the other two seem trivial enough).

I also saw some patches regarding a Bison update,
21639.5225.596115.600...@mariner.uk.xensource.com et al, which I was
expecting Ian J to take care of. I've not done anything about it either.
I think it might be too late.

Ian.


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


Re: [Xen-devel] [PATCH for 4.5] xen/arm: Initialize the domain vgic lock

2015-01-06 Thread Ian Campbell
On Fri, 2014-12-19 at 09:23 -0500, Konrad Rzeszutek Wilk wrote:
 On Thu, Dec 18, 2014 at 09:47:37AM +, Ian Campbell wrote:
  On Wed, 2014-12-17 at 15:40 +, Julien Grall wrote:
   The domain vgic lock is used uninitialized.
   
   Signed-off-by: Julien Grall julien.gr...@linaro.org
  
  Acked-by: Ian Campbell ian.campb...@citrix.com
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

Applied.



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


Re: [Xen-devel] [PATCH for-4.5] reset PCI devices on force removal even when QEMU returns error

2015-01-06 Thread Ian Campbell
On Wed, 2014-12-17 at 16:07 -0500, Konrad Rzeszutek Wilk wrote:
 On Mon, Dec 15, 2014 at 11:13:06AM +, Stefano Stabellini wrote:
  On Fri, 12 Dec 2014, Konrad Rzeszutek Wilk wrote:
   On Fri, Dec 12, 2014 at 04:13:52PM +0100, Sander Eikelenboom wrote:
Hi Konrad,

This doesn't seem to be applied yet, nor does it seem to have a 
release-(N)ACK 
from you ?
   
   Hm, Stefano:
   
   - Is this a regression?
  
  I don't think so. Probably a regression compared to the xend toolstack
  though.
 
 OK, so that is Xen 4.4 - Xen 4.5 regression then.
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

An updated version with the logging which I had indicated I would prefer
doesn't appear to be forthcoming so I've just applied this one.



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


Re: [Xen-devel] [Xen-users] HVM PCI Passthrough: Code 12: Undersized PCI MMIO region?

2015-01-06 Thread Pasi Kärkkäinen
On Tue, Dec 02, 2014 at 10:08:35PM -0500, Stephen Oberholtzer wrote:
 All,
 

Hello,

 Please bear with me.  I don't fully understand all of the mechanisms
 involved here, so this message contains a large quantity of data,
 including some links to even larger quantities of data.
 The short version is: I think something isn't reserving enough (GPFN)
 address space for MMIO.


This issue probably should be taken to xen-devel mailinglist.. CC added..


 I'm trying to do a three-part PCI passthrough to a HVM domU running Windows 
 8.1:
 00:14.0, An xHCI (USB 3.0) controller
 01:00.0, Function 0 of an ATI card (VGA controller, non-primary passthrough)
 01:00.1, Function 1 of the same ATI card (HDMI audio)
 
 The USB controller seems to work fine.  USB mouse/keyboard are
 functional, and I plugged in a few Mass Storage devices and they work
 fine.
 The HDMI audio controller is harder to vet, because I don't have
 anything that will process audio without an associated video stream.
 However, I don't get any complains from the software.
 
 For the the VGA controller (01:00.0), Windows reports Code 12 and
 complains about insufficient resources being available for the device.
 
 I tried to gather all of the information I could on the memory layouts
 involved, from three sources:
 (1) From dom0 and Xen itself
 (2) From domU running Windows, using a program called SIV (System
 Information Viewer)
 (3) From domU running Linux (by booting a Knoppix live DVD image)
 
 ---
 
 Information from dom0:
 http://www.klozoff.org/xen/dom0-xl-info.txt - 'xl info'
 http://www.klozoff.org/xen/dom0-xl-dmesg.txt - 'xl dmesg'
 http://www.klozoff.org/xen/dom0-proc_iomem.txt - 'cat /proc/iomem'
 http://www.klozoff.org/xen/dom0-lspci-output.txt - 'lspci -vvv' for
 the three devices I'm forwarding.
 
 Information from domU (Windows):
 http://www.klozoff.org/xen/domU-device-manager-info.txt - Text
 transcribed from Windows' Device Manager
 http://www.klozoff.org/xen/domU-siv-usb-controller-info.txt -
 Information on 00:14.0 from SIV
 http://www.klozoff.org/xen/domU-siv-video-card-info.txt - Information
 on 01:00.0 from SIV
 http://www.klozoff.org/xen/domU-siv-hdmi-audio-info.txt - Information
 on 01:00.1 from SIV
 
 Information from domU (Linux/Knoppix):
 http://www.klozoff.org/xen/domU-knoppix-proc-iomem.txt - 'cat /proc/iomem'
 http://www.klozoff.org/xen/domU-knoppix-lspci-output.txt - 'lspci
 -vvv' for the three devices.
 
 
 ---
 
 Of particular interest to me is domU-knoppix-lspci-output.txt, which
 for the VGA controller, says:
 
 Region 0: Memory at ignored (64-bit, prefetchable)
 Region 2: Memory at f304 (64-bit, non-prefetchable) [size=256K]
 
 In dom0, this showed as:
 
 Region 0: Memory at d000 (64-bit, prefetchable) [size=256M]
 Region 2: Memory at efc0 (64-bit, non-prefetchable) [size=256K]
 
 
 I looked closer by running the following script:
 
 perl -lne '/^([0-9a-f]+)-([0-9a-f]+)/  print $_,  (, ((hex($2) -
 hex($1))  20),  MB)' /proc/iomem
 
 In dom0, I see this:
 
 0010-99f53fff : System RAM (2462 MB)
 bf20-feaf : PCI Bus :00 (1016 MB)   - Region 0 is in this range
 1-83edf : System RAM (29677 MB)
 
 
 In domU, I see this:
 0010-effecfff : System RAM (3838 MB)
 f000-fbff : PCI Bus :00 (191 MB)- Definitely not big
 enough to hold the 256MB we need
 1-20f7f : System RAM (4343 MB)
 
 Now, I don't fully understand how this stuff all works, but here's
 what appears to be happening: Xen isn't reserving enough contiguous
 GPFN (virtual machine address space) for all of the devices on the
 virtual PCI bus -- in particular, for what is probably a big honkin'
 window into the card's onboard RAM.
 
 So my two questions are:
 (1) Is my guess correct?  Or at least close?
 (2) What the heck do I do about it? I don't see any options in
 xl.cfg(5) for specifying the size of the MMIO region for the virtual
 PCI bus, or anything similar to that.
 
 
 NOTE: If I assign 2048MB or less RAM to this VM, the VM crashes at
 bootup, and has a nasty tendency to take the host with it (lockup).
 
 -- 
 -- Stevie-O
 Real programmers use COPY CON PROGRAM.EXE
 


-- Pasi


 ___
 Xen-users mailing list
 xen-us...@lists.xen.org
 http://lists.xen.org/xen-users

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


Re: [Xen-devel] [PATCH for-4.5] tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ssid_label

2015-01-06 Thread Ian Campbell
On Mon, 2015-01-05 at 10:33 -0500, Konrad Rzeszutek Wilk wrote:
 On Mon, Jan 05, 2015 at 02:19:58PM +, Andrew Cooper wrote:
  libxl_dominfo contains a ssid_label pointer which will have memory allocated
  for it in libxl_domain_info() if the hypervisor has CONFIG_XSM compiled.
  However, the lack of appropriate use of libxl_dominfo_{init,dispose}() will
  cause the label string to be leaked, even in success cases.
  
  This was discovered by XenServers Coverity scanning, and are issues not
  identified by upstream Coverity Scan.
  
  Signed-off-by: Andrew Cooper andrew.coop...@citrix.com
  CC: Ian Campbell ian.campb...@citrix.com
  CC: Ian Jackson ian.jack...@eu.citrix.com
  CC: Wei Liu wei.l...@citrix.com
  CC: Konrad Rzeszutek Wilk konrad.w...@oracle.com
  
  ---
  
  Requesting a release-exception as suggested by IanJ.  These are memory leaks
  which accumulate via the successful completion of libxl library functions 
  (if
  XSM is enabled), which will undoubtedly cause issues for the likes of 
  libvirt
  and xenopsd-libxl which use libxl in daemon processes.
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

Somehow I don't seem to have the original in any folder, I probably fat
fingered the D key at some point.

Anyway, this looks good to me for 4.5:
Acked-by: Ian Campbell ian.campb...@citrix.com

Applied.



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


Re: [Xen-devel] [PATCH v2 1/4] pci: Do not ignore device's PXM information

2015-01-06 Thread Andrew Cooper
On 06/01/15 02:18, Boris Ostrovsky wrote:

 diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
 index 5f295f3..a5eb81c 100644
 --- a/xen/include/xen/pci.h
 +++ b/xen/include/xen/pci.h
 @@ -56,6 +56,8 @@ struct pci_dev {
  
  u8 phantom_stride;
  
 +int node; /* NUMA node */
 +
  enum pdev_type {
  DEV_TYPE_PCI_UNKNOWN,
  DEV_TYPE_PCIe_ENDPOINT,
 @@ -102,7 +104,8 @@ void setup_hwdom_pci_devices(struct domain *,
  int pci_release_devices(struct domain *d);
  int pci_add_segment(u16 seg);
  const unsigned long *pci_get_ro_map(u16 seg);
 -int pci_add_device(u16 seg, u8 bus, u8 devfn, const struct pci_dev_info *);
 +int pci_add_device(u16 seg, u8 bus, u8 devfn,
 +   const struct pci_dev_info *, int);

Please use parameter names in definitions.

~Andrew

  int pci_remove_device(u16 seg, u8 bus, u8 devfn);
  int pci_ro_device(int seg, int bus, int devfn);
  void arch_pci_ro_device(int seg, int bdf);



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


[Xen-devel] [PATCH] xen/blkfront: restart request queue when there is enough persistent_gnts_c

2015-01-06 Thread Bob Liu
When there is no enough free grants, gnttab_alloc_grant_references()
will fail and block request queue will stop.
If the system is always lack of grants, blkif_restart_queue_callback() can't be
scheduled and block request queue can't be restart(block I/O hang).

But when there are former requests complete, some grants may free to
persistent_gnts_c, we can give the request queue another chance to restart and
avoid block hang.

Reported-by: Junxiao Bi junxiao...@oracle.com
Signed-off-by: Bob Liu bob@oracle.com
---
 drivers/block/xen-blkfront.c |   11 +++
 1 file changed, 11 insertions(+)

diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 2236c6f..dd30f99 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -1125,6 +1125,17 @@ static void blkif_completion(struct blk_shadow *s, 
struct blkfront_info *info,
}
}
}
+
+   /*
+* Request queue would be stopped if failed to alloc enough grants and
+* won't be restarted until gnttab_free_count = info-callback-count.
+*
+* But there is another case, once we have enough persistent grants we
+* can try to restart the request queue instead of continue to wait for
+* 'gnttab_free_count'.
+*/
+   if (info-persistent_gnts_c = info-callback.count)
+   schedule_work(info-work);
 }
 
 static irqreturn_t blkif_interrupt(int irq, void *dev_id)
-- 
1.7.10.4


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


Re: [Xen-devel] [PATCH 7/7] tools/hotplug: add wrapper to start xenstored

2015-01-06 Thread Ian Campbell
On Fri, 2014-12-19 at 12:25 +0100, Olaf Hering wrote:
 The shell wrapper in xenstored.service does not handle XENSTORE_TRACE.
 
 Create a separate wrapper script which is used in the sysv runlevel
 script and in systemd xenstored.service. It preserves existing
 behaviour by handling the XENSTORE_TRACE boolean. It also implements
 the handling of XENSTORED_ARGS=. This variable has to be added to
 sysconfig/xencommons.

Why don't we just drop XENSTORED_* in favour of XENSTORED_ARGS (with an
example in the sysconfig file of enabling tracing if you like)?

Going to a wrapper script just to make some fairly uncommon debugging
option marginally more convenient seems like overkill to me, plus
XENSTORED_ARGS would allow for passing other useful options to
xenstored.

 The wrapper uses exec unconditionally. This works because the
 systemd service file passes --no-fork, which has the desired effect
 that the binary launched by systemd becomes the final daemon
 process. The sysv script does not pass --no-fork, which causes
 xenstored to fork internally to return to the caller of the wrapper
 script.
 
 The place of the wrapper is currently LIBEXEC_BIN, it has to be
 decided what the final location is supposed to be. IanJ wants it in
 /etc.

If we go this route then I agree with Ian J. (/etc/xen/scripts, I
suppose).

Ian.


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


Re: [Xen-devel] [PATCH] xen: arm: correct off-by-one error in consider_modules

2015-01-06 Thread Ian Campbell
On Mon, 2015-01-05 at 11:17 -0500, Konrad Rzeszutek Wilk wrote:
 On Mon, Dec 22, 2014 at 11:54:01AM +0100, Julien Grall wrote:
  Hi Ian,
  
  On 21/12/2014 12:18, Ian Campbell wrote:
  By iterating up to = mi-nr_mods we are running off the end of the boot
  modules, but more importantly it causes us to then skip the first FDT 
  reserved
  region, meaning we might clobber it.
  
  Oops. Good catch!
  
  OOI, how did you find it?
  
  Signed-off-by: Ian Campbell i...@hellion.org.uk
  
  Reviewed-by: Julien Grall julien.gr...@linaro.org
  
  ---
  For 4.5: I think this bug fix should go in, it fixes a real issue and is 
  low
  risk.
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

Applied, thanks.


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


Re: [Xen-devel] smmu/ccp warnings on Seattle

2015-01-06 Thread Julien Grall
Hello,

On 06/01/15 12:50, Jintack Lim wrote:
 While Xen was booting on Seattle, I got warnings/errors related to smmu
 and ccp.
 Eventually Seattle was rebooted. 
 These are the relevant logs (and more warnings in a full log at the bottom).

The support of Seattle in the SMMU drivers is missing.

I would advise you to disable the IOMMU for now (iommu=disable on Xen
command line).

Regards,

-- 
Julien Grall

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Konrad Rzeszutek Wilk
On Tue, Jan 06, 2015 at 11:43:47AM +, Ian Campbell wrote:
 On Mon, 2015-01-05 at 15:08 -0500, konrad.w...@oracle.com wrote:
   tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ss
   xen: arm: correct off-by-one error in consider_module
 
 I've just now applied both.
 
 Also I found these with release acks and applied them:
 tools: libxl: link libxlu against libxl.
 xen/arm: Initialize the domain vgic lock
 reset PCI devices on force removal even when QEMU returns error
 
 I was a little unsure about enacting Release-Acks given more than a few
 weeks ago, but I figured we could always revert if your opinion was that
 it was now too close to the release (my main concern would be the third
 one, the other two seem trivial enough).

I am OK with the Release-Acks staying active. Thank you for checking.
 
 I also saw some patches regarding a Bison update,
 21639.5225.596115.600...@mariner.uk.xensource.com et al, which I was
 expecting Ian J to take care of. I've not done anything about it either.
 I think it might be too late.

I was OK with the bison update patch. Ian J convienced me it is worth it.
IanJ, are you OK putting it in or would prefer to skip to 4.6?

Or alternatively I can dig up the patch and apply it.
 
 Ian.
 

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Ian Jackson
(CC list massively trimmed)

Konrad Rzeszutek Wilk writes (Re: Xen 4.5 Development Update (GA slip by a 
week)):
 On Tue, Jan 06, 2015 at 11:43:47AM +, Ian Campbell wrote:
  I also saw some patches regarding a Bison update,
  21639.5225.596115.600...@mariner.uk.xensource.com et al, which I was
  expecting Ian J to take care of. I've not done anything about it either.
  I think it might be too late.
 
 I was OK with the bison update patch. Ian J convienced me it is worth it.
 IanJ, are you OK putting it in or would prefer to skip to 4.6?

I will do this today.

Ian.

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


Re: [Xen-devel] [RFC 2/2] x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader

2015-01-06 Thread Konrad Rzeszutek Wilk
On Mon, Jan 05, 2015 at 10:56:07AM -0800, Andy Lutomirski wrote:
 On Mon, Jan 5, 2015 at 7:25 AM, Marcelo Tosatti mtosa...@redhat.com wrote:
  On Mon, Dec 22, 2014 at 04:39:57PM -0800, Andy Lutomirski wrote:
  The pvclock vdso code was too abstracted to understand easily and
  excessively paranoid.  Simplify it for a huge speedup.
 
  This opens the door for additional simplifications, as the vdso no
  longer accesses the pvti for any vcpu other than vcpu 0.
 
  Before, vclock_gettime using kvm-clock took about 64ns on my machine.
  With this change, it takes 19ns, which is almost as fast as the pure TSC
  implementation.
 
  Signed-off-by: Andy Lutomirski l...@amacapital.net
  ---
   arch/x86/vdso/vclock_gettime.c | 82 
  --
   1 file changed, 47 insertions(+), 35 deletions(-)
 
  diff --git a/arch/x86/vdso/vclock_gettime.c 
  b/arch/x86/vdso/vclock_gettime.c
  index 9793322751e0..f2e0396d5629 100644
  --- a/arch/x86/vdso/vclock_gettime.c
  +++ b/arch/x86/vdso/vclock_gettime.c
  @@ -78,47 +78,59 @@ static notrace const struct pvclock_vsyscall_time_info 
  *get_pvti(int cpu)
 
   static notrace cycle_t vread_pvclock(int *mode)
   {
  - const struct pvclock_vsyscall_time_info *pvti;
  + const struct pvclock_vcpu_time_info *pvti = get_pvti(0)-pvti;
cycle_t ret;
  - u64 last;
  - u32 version;
  - u8 flags;
  - unsigned cpu, cpu1;
  -
  + u64 tsc, pvti_tsc;
  + u64 last, delta, pvti_system_time;
  + u32 version, pvti_tsc_to_system_mul, pvti_tsc_shift;
 
/*
  -  * Note: hypervisor must guarantee that:
  -  * 1. cpu ID number maps 1:1 to per-CPU pvclock time info.
  -  * 2. that per-CPU pvclock time info is updated if the
  -  *underlying CPU changes.
  -  * 3. that version is increased whenever underlying CPU
  -  *changes.
  +  * Note: The kernel and hypervisor must guarantee that cpu ID
  +  * number maps 1:1 to per-CPU pvclock time info.
  +  *
  +  * Because the hypervisor is entirely unaware of guest userspace
  +  * preemption, it cannot guarantee that per-CPU pvclock time
  +  * info is updated if the underlying CPU changes or that that
  +  * version is increased whenever underlying CPU changes.
  +  *
  +  * On KVM, we are guaranteed that pvti updates for any vCPU are
  +  * atomic as seen by *all* vCPUs.  This is an even stronger
  +  * guarantee than we get with a normal seqlock.
 *
  +  * On Xen, we don't appear to have that guarantee, but Xen still
  +  * supplies a valid seqlock using the version field.
  +
  +  * We only do pvclock vdso timing at all if
  +  * PVCLOCK_TSC_STABLE_BIT is set, and we interpret that bit to
  +  * mean that all vCPUs have matching pvti and that the TSC is
  +  * synced, so we can just look at vCPU 0's pvti.
 */
 
  Can Xen guarantee that ?
 
 I think so, vacuously.  Xen doesn't seem to set PVCLOCK_TSC_STABLE_BIT
 at all.  I have no idea going forward, though.
 
 Xen people?

The person who would know of the top of his head is Dan Magenheimer, who
is now enjoy retirement :-(

I will have to dig in the code to answer this - that will take a bit of time
sadly (I am sick this week).
 
 
  - do {
  - cpu = __getcpu()  VGETCPU_CPU_MASK;
  - /* TODO: We can put vcpu id into higher bits of pvti.version.
  -  * This will save a couple of cycles by getting rid of
  -  * __getcpu() calls (Gleb).
  -  */
  -
  - pvti = get_pvti(cpu);
  -
  - version = __pvclock_read_cycles(pvti-pvti, ret, flags);
  -
  - /*
  -  * Test we're still on the cpu as well as the version.
  -  * We could have been migrated just after the first
  -  * vgetcpu but before fetching the version, so we
  -  * wouldn't notice a version change.
  -  */
  - cpu1 = __getcpu()  VGETCPU_CPU_MASK;
  - } while (unlikely(cpu != cpu1 ||
  -   (pvti-pvti.version  1) ||
  -   pvti-pvti.version != version));
  -
  - if (unlikely(!(flags  PVCLOCK_TSC_STABLE_BIT)))
  +
  + if (unlikely(!(pvti-flags  PVCLOCK_TSC_STABLE_BIT))) {
*mode = VCLOCK_NONE;
  + return 0;
  + }
 
  This check must be performed after reading a stable pvti.
 
 
 We can even read it in the middle, guarded by the version checks.
 I'll do that for v2.
 
  +
  + do {
  + version = pvti-version;
  +
  + /* This is also a read barrier, so we'll read version first. 
  */
  + rdtsc_barrier();
  + tsc = __native_read_tsc();
  +
  + pvti_tsc_to_system_mul = pvti-tsc_to_system_mul;
  + pvti_tsc_shift = pvti-tsc_shift;
  + pvti_system_time = pvti-system_time;
  + pvti_tsc = pvti-tsc_timestamp;
  +
  +   

Re: [Xen-devel] [PATCH 4/7] tools/hotplug: use xencommons as EnvironmentFile in xenconsoled.service

2015-01-06 Thread Ian Jackson
Olaf Hering writes ([PATCH 4/7] tools/hotplug: use xencommons as 
EnvironmentFile in xenconsoled.service):
 The referenced sysconfig/xenconsoled does not exist. If anything
 needs to be specified it has to go into the existing
 sysconfig/xencommons file.

Acked-by: Ian Jackson ian.jack...@eu.citrix.com

Ian.

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


Re: [Xen-devel] [PATCH v2 2/4] sysctl: Make XEN_SYSCTL_topologyinfo sysctl a little more efficient

2015-01-06 Thread Andrew Cooper
On 06/01/15 02:18, Boris Ostrovsky wrote:
 Instead of copying data for each field in xen_sysctl_topologyinfo separately
 put cpu/socket/node into a single structure and do a single copy for each
 processor.

 There is also no need to copy whole op to user at the end, max_cpu_index is
 sufficient

 Rename xen_sysctl_topologyinfo and XEN_SYSCTL_topologyinfo to reflect the fact
 that these are used for CPU topology. Subsequent patch will add support for
 PCI topology sysctl.

 Signed-off-by: Boris Ostrovsky boris.ostrov...@oracle.com

If we are going to change the hypercall, then can we see about making it
a stable interface (i.e. not a sysctl/domctl)?  There are non-toolstack
components which might want/need access to this information.  (i.e. I am
still looking for a reasonable way to get this information from Xen in
hwloc)

 snip

 +if ( cpu_online(i) )
  {
 -uint32_t socket = cpu_online(i) ? cpu_to_socket(i) : ~0u;
 -if ( copy_to_guest_offset(ti-cpu_to_socket, i, socket, 1) )
 -break;
 +cputopo.core = cpu_to_core(i);
 +cputopo.socket = cpu_to_socket(i);
 +cputopo.node = cpu_to_node(i);
  }
 -if ( !guest_handle_is_null(ti-cpu_to_node) )
 +else
 +cputopo.core = cputopo.socket =
 +cputopo.node = INVALID_TOPOLOGY_ID;
 +

In particular, can we fix this broken behaviour.  The cpu being online
or not has no bearing on whether Xen has topology information, and a
side effect is that when the cpu governer powers down a cpu, it
disappears from the reported topology.

~Andrew


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


[Xen-devel] [qemu-mainline test] 33176: regressions - trouble: blocked/fail/pass/preparing/queued/running

2015-01-06 Thread xen . org
flight 33176 qemu-mainline running [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33176/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-win7-amd64none executed  queued
 test-amd64-i386-xl-win7-amd64none executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1none executed queued
 test-amd64-i386-xl-winxpsp3 none executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-intelnone executed  queued
 test-amd64-i386-freebsd10-i386none executed  queued
 test-amd64-i386-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-amd64-xl-winxpsp3none executed  queued
 test-amd64-amd64-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-amd64-xl-pvh-intelnone executed  queued
 test-amd64-i386-freebsd10-amd64none executed  queued
 test-amd64-i386-xl-qemuu-debianhvm-amd64none executed queued
 test-amd64-i386-xl-qemuu-win7-amd64none executed  queued
 test-amd64-i386-xl-winxpsp3-vcpus1none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-amdnone executed  queued
 test-amd64-i386-rhel6hvm-intelnone executed  queued
 test-amd64-i386-rhel6hvm-amdnone executed  queued
 test-amd64-amd64-xl-qemuu-winxpsp3none executed  queued
 test-armhf-armhf-xl   3 host-install(3)  running [st=running!]
 test-amd64-amd64-libvirtnone executed  queued
 test-amd64-amd64-xl-pcipt-intelnone executed  queued
 test-amd64-amd64-xl-qemuu-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemuu-debianhvm-amd64none executedqueued
 test-amd64-i386-qemut-rhel6hvm-amdnone executed  queued
 build-i386-libvirt  none executed  queued
 test-amd64-amd64-xl-pvh-amd none executed  queued
 test-amd64-i386-libvirt none executed  queued
 test-amd64-i386-qemut-rhel6hvm-intelnone executed  queued
 test-amd64-amd64-xl none executed  queued
 test-amd64-amd64-xl-sedf-pinnone executed  queued
 test-amd64-i386-xl  none executed  queued
 test-amd64-i386-xl-credit2  none executed  queued
 test-amd64-i386-xl-qemut-win7-amd64none executed  queued
 test-amd64-amd64-xl-sedfnone executed  queued
 build-armhf-libvirt   5 libvirt-build fail REGR. vs. 32598
 build-i386-pvops  2 hosts-allocate   running [st=running!]
 build-amd64-libvirt none executed  queued
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1none executed queued
 test-amd64-amd64-pair   none executed  queued
 test-amd64-amd64-xl-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemut-debianhvm-amd64none executed queued
 test-amd64-i386-xl-multivcpunone executed  queued
 build-amd64-pvops 2 hosts-allocate   running [st=running!]
 build-amd64   2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemut-win7-amd64none executed  queued
 build-i3862 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemut-debianhvm-amd64none executedqueued
 test-amd64-i386-xl-qemut-winxpsp3none executed  queued
 test-amd64-i386-pairnone executed  queued

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-libvirt  1 build-check(1)   blocked  n/a

version targeted for testing:
 qemuuab0302ee764fd702465aef6d88612cdff4302809
baseline version:
 qemuu7e58e2ac7778cca3234c33387e49577bb7732714


People who touched revisions under test:
  Alex Williamson alex.william...@redhat.com
  Eric Auger eric.au...@linaro.org
  Fabian Aggeler aggel...@ethz.ch
  Frank Blaschka blasc...@linux.vnet.ibm.com
  Greg Bellows greg.bell...@linaro.org
  Kim Phillips kim.phill...@linaro.org
  Laszlo Ersek ler...@redhat.com
  Marcel Apfelbaum marce...@redhat.com
  Paolo Bonzini pbonz...@redhat.com
  Peter Maydell peter.mayd...@linaro.org


jobs:
 build-amd64  preparing
 build-armhf  pass
 build-i386   preparing
 build-amd64-libvirt  queued  
 build-armhf-libvirt   

[Xen-devel] [xen-4.4-testing test] 33181: trouble: pass/preparing/queued/running

2015-01-06 Thread xen . org
flight 33181 xen-4.4-testing running [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33181/

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-rhel6hvm-amdnone executed  queued
 build-amd64-libvirt none executed  queued
 test-amd64-amd64-xl-qemuu-ovmf-amd64none executed  queued
 build-amd64-xend  2 hosts-allocate   running [st=running!]
 test-amd64-amd64-pv none executed  queued
 test-amd64-i386-pairnone executed  queued
 test-amd64-i386-xl-winxpsp3-vcpus1none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-intelnone executed  queued
 build-i386-xend   2 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-win7-amd64none executed  queued
 test-amd64-i386-qemut-rhel6hvm-intelnone executed  queued
 test-amd64-i386-xl-qemuu-ovmf-amd64none executed  queued
 build-armhf-pvops 5 kernel-build running [st=running!]
 test-amd64-i386-pv  none executed  queued
 test-amd64-amd64-xl-qemuu-winxpsp3none executed  queued
 test-amd64-i386-qemut-rhel6hvm-amdnone executed  queued
 test-armhf-armhf-libvirtnone executed  queued
 test-amd64-amd64-xl-pcipt-intelnone executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1none executed queued
 test-amd64-i386-freebsd10-amd64none executed  queued
 test-amd64-i386-rumpuserxen-i386none executed  queued
 test-amd64-amd64-xl-qemuu-debianhvm-amd64none executedqueued
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1none executed queued
 test-amd64-i386-rhel6hvm-intelnone executed  queued
 test-amd64-amd64-xl-sedfnone executed  queued
 test-amd64-i386-xend-winxpsp3none executed  queued
 test-amd64-amd64-xl-winxpsp3none executed  queued
 test-amd64-i386-libvirt none executed  queued
 test-amd64-amd64-pair   none executed  queued
 test-amd64-i386-xl-multivcpunone executed  queued
 build-armhf-libvirt   2 hosts-allocate   running [st=running!]
 build-amd64-rumpuserxen none executed  queued
 test-amd64-amd64-rumpuserxen-amd64none executed  queued
 test-amd64-i386-freebsd10-i386none executed  queued
 build-i386-libvirt  none executed  queued
 test-amd64-amd64-xl none executed  queued
 test-amd64-i386-xl-qemut-win7-amd64none executed  queued
 test-amd64-amd64-libvirtnone executed  queued
 test-amd64-amd64-xl-qemuu-win7-amd64none executed  queued
 test-armhf-armhf-xl none executed  queued
 test-amd64-i386-xend-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemuu-win7-amd64none executed  queued
 test-amd64-amd64-xl-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemut-winxpsp3none executed  queued
 build-amd64-pvops 2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemut-debianhvm-amd64none executedqueued
 test-amd64-i386-xl-credit2  none executed  queued
 test-amd64-i386-xl-qemut-debianhvm-amd64none executed queued
 test-amd64-amd64-xl-qemut-win7-amd64none executed  queued
 build-i3862 hosts-allocate   running [st=running!]
 test-amd64-i386-qemuu-rhel6hvm-amdnone executed  queued
 test-amd64-i386-xl-qemuu-debianhvm-amd64none executed queued
 build-i386-rumpuserxen  none executed  queued
 build-amd64   2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-sedf-pinnone executed  queued
 test-amd64-i386-xl  none executed  queued
 build-i386-pvops  2 hosts-allocate   running [st=running!]

version targeted for testing:
 xen  089dd62211042011e26de1b87b558394cdfe388b
baseline version:
 xen  7bb6b2722be1e27f99948e5c68f7f42eb23f8e53


People who touched revisions under test:
  Mihai Donțu mdo...@bitdefender.com
  Răzvan Cojocaru rcojoc...@bitdefender.com


jobs:
 build-amd64-xend preparing
 build-i386-xend  preparing
 build-amd64  preparing
 build-armhf  

Re: [Xen-devel] [PATCH OSSTEST v3] ts-libvirt-build: use Osstest::BuildSupport::submodulefixup

2015-01-06 Thread Ian Campbell
On Mon, 2015-01-05 at 15:53 +, Ian Campbell wrote:
 On Mon, 2015-01-05 at 15:36 +, Ian Campbell wrote:
  Instead of cloning gnulib manually which can break if upstream gnulib
  gets ahead of libvirt.git (which applies patches on the fly etc). By
  using submodulefixup we automatically DTRT and use the version of
  gnulib specified by the libvirt.git submodule metadata, but with a
  runvar override if necessary.
  
  This also removes a whole bunch of faffing in ap-*, cr-daily-branch
  and mfi-common to get the version of gnulib to use, which was always a
  bit of a wart (ungated for one thing...).
  
  We continue to use --no-git and GNULIB_SRCDIR because otherwise
  autogen.sh (via bootstrap) will force its own version, overwriting
  what submodulefixup has done. For this we need a way to get the hash
  representing the module, so introduce submodule_find (and rework
  submodule_have in terms of it).
  
  Tested in standalone mode with build-amd64-libvirt and
  build-amd64-rumpuserxen (because I touched submodule_have, AFAICT the
  bodges were not run). The libvirt build was tested both with the
  automatic revisions and with:
  revision_libvirt=2360fe5d24175835d3f5fd1c7e8e6e13addab629
  revision_libvirt_gnulib=16518d9ed8f25d3e53931dd1aa343072933e4604
  (used in successful libvirt flight 32648), in both cases confirming
  that the build used the desired versions.
  
  Signed-off-by: Ian Campbell ian.campb...@citrix.com
 
 Ian J acked on IRC so I have pushed to osstests' pretest branch.

The flight which tested this had a couple of fails, but everything
related to this change passed, so after consulting with Ian J I force
pushed this changeset and killed all the inprogress jobs (none of which
could have passed). Any new flights have a chance of passing again now.

Ian.


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


[Xen-devel] [linux-linus test] 33156: regressions - trouble: blocked/fail/pass/preparing/queued/running

2015-01-06 Thread xen . org
flight 33156 linux-linus running [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33156/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-pvh-intelnone executed  queued
 test-amd64-i386-libvirt none executed  queued
 test-amd64-amd64-rumpuserxen-amd64none executed  queued
 test-amd64-i386-rumpuserxen-i386  2 hosts-allocate   running [st=running!]
 test-amd64-amd64-libvirtnone executed  queued
 test-amd64-amd64-xl-pvh-amd none executed  queued
 test-amd64-amd64-xl-pcipt-intelnone executed  queued
 test-amd64-i386-rhel6hvm-amd  2 hosts-allocate   running [st=running!]
 test-amd64-i386-qemut-rhel6hvm-amd  2 hosts-allocate running [st=running!]
 test-amd64-i386-qemuu-rhel6hvm-amd  2 hosts-allocate running [st=running!]
 build-i386-libvirt3 host-install(3)  running [st=running!]
 test-amd64-i386-freebsd10-i386  2 hosts-allocate running [st=running!]
 test-amd64-amd64-xl none executed  queued
 test-amd64-amd64-xl-sedfnone executed  queued
 test-amd64-amd64-xl-sedf-pinnone executed  queued
 test-amd64-i386-qemut-rhel6hvm-intel  2 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-multivcpu  2 hosts-allocate   running [st=running!]
 build-amd64-libvirt   2 hosts-allocate   running [st=running!]
 test-amd64-i386-xl3 host-install(3)  running [st=running!]
 test-amd64-i386-qemuu-rhel6hvm-intel  2 hosts-allocate   running [st=running!]
 build-armhf-libvirt   5 libvirt-build fail REGR. vs. 32879
 test-amd64-i386-xl-credit22 hosts-allocate   running [st=running!]
 test-amd64-i386-rhel6hvm-intel  2 hosts-allocate running [st=running!]
 build-amd64-pvops 2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-winxpsp3none executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 2 hosts-allocate running [st=running!]
 test-amd64-i386-xl-qemuu-winxpsp3  2 hosts-allocate  running [st=running!]
 test-amd64-i386-xl-qemuu-ovmf-amd64  2 hosts-allocaterunning [st=running!]
 test-amd64-i386-xl-qemut-debianhvm-amd64 2 hosts-allocate running [st=running!]
 test-amd64-i386-xl-qemuu-debianhvm-amd64 2 hosts-allocate running [st=running!]
 test-amd64-i386-xl-qemut-win7-amd64  2 hosts-allocaterunning [st=running!]
 test-amd64-amd64-pair   none executed  queued
 test-amd64-i386-xl-qemuu-win7-amd64  2 hosts-allocaterunning [st=running!]
 test-amd64-i386-xl-win7-amd64  2 hosts-allocate  running [st=running!]
 test-amd64-amd64-xl-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemut-debianhvm-amd64none executedqueued
 test-amd64-amd64-xl-qemuu-debianhvm-amd64none executedqueued
 test-amd64-amd64-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-i386-xl-winxpsp3-vcpus1  2 hosts-allocate running [st=running!]
 test-amd64-amd64-xl-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 2 hosts-allocate running [st=running!]
 test-amd64-i386-pair  2 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-winxpsp3   2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemut-win7-amd64none executed  queued
 test-amd64-i386-xl-qemut-winxpsp3  2 hosts-allocate  running [st=running!]
 test-amd64-amd64-xl-qemuu-winxpsp3none executed  queued
 test-amd64-amd64-xl-qemuu-win7-amd64none executed  queued

Regressions which are regarded as allowable (not blocking):
 test-amd64-i386-freebsd10-amd64  7 freebsd-install fail like 32879

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl  10 migrate-support-checkfail   never pass
 test-armhf-armhf-libvirt  1 build-check(1)   blocked  n/a

version targeted for testing:
 linuxb1940cd21c0f4abdce101253e860feff547291b0
baseline version:
 linux9bb29b6b927bcd79cf185ee67bcebfe630f0dea1


People who touched revisions under test:
  Alan Stern st...@rowland.harvard.edu
  Andrew Jackson andrew.jack...@arm.com
  Anil Chintalapati (achintal) achin...@cisco.com
  Anil Chintalapati achin...@cisco.com
  Christoph Hellwig h...@lst.de
  Daniel Borkmann dbork...@redhat.com
  Daniel Walter d.wal...@0x90.at
  Fang, Yang A yang.a.f...@intel.com
  Hannes Reinecke h...@suse.de
  Hari Bathini hbath...@linux.vnet.ibm.com
  Herbert Xu herb...@gondor.apana.org.au
  Hiral Shah his...@cisco.com
  James Bottomley jbottom...@parallels.com
  Jarkko Nikula jarkko.nik...@linux.intel.com
  Jianqun Xu jay...@rock-chips.com
  Jie 

[Xen-devel] [xen-4.3-testing test] 33179: regressions - trouble: fail/pass/preparing/queued/running

2015-01-06 Thread xen . org
flight 33179 xen-4.3-testing running [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33179/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-rhel6hvm-amdnone executed  queued
 build-amd64-libvirt none executed  queued
 test-amd64-amd64-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-amd64-pv none executed  queued
 test-amd64-i386-pairnone executed  queued
 test-amd64-i386-xl-winxpsp3-vcpus1none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-intelnone executed  queued
 test-amd64-i386-xl-win7-amd64none executed  queued
 test-amd64-i386-qemut-rhel6hvm-intelnone executed  queued
 test-amd64-i386-xl-qemuu-ovmf-amd64none executed  queued
 build-armhf-pvops 5 kernel-build running [st=running!]
 test-amd64-i386-pv  none executed  queued
 test-amd64-amd64-xl-qemuu-winxpsp3none executed  queued
 test-amd64-i386-qemut-rhel6hvm-amdnone executed  queued
 test-armhf-armhf-libvirtnone executed  queued
 test-amd64-amd64-xl-pcipt-intelnone executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1none executed queued
 test-amd64-i386-freebsd10-amd64none executed  queued
 test-amd64-i386-rumpuserxen-i386none executed  queued
 test-amd64-amd64-xl-qemuu-debianhvm-amd64none executedqueued
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1none executed queued
 test-amd64-i386-rhel6hvm-intelnone executed  queued
 test-amd64-amd64-xl-sedfnone executed  queued
 test-amd64-i386-xend-winxpsp3none executed  queued
 test-amd64-amd64-xl-winxpsp3none executed  queued
 test-amd64-i386-libvirt none executed  queued
 build-armhf-libvirt   5 libvirt-build fail REGR. vs. 32282
 test-amd64-amd64-pair   none executed  queued
 test-amd64-i386-xl-multivcpunone executed  queued
 build-amd64-rumpuserxen none executed  queued
 test-amd64-amd64-rumpuserxen-amd64none executed  queued
 test-amd64-i386-freebsd10-i386none executed  queued
 build-i386-libvirt  none executed  queued
 test-amd64-amd64-xl none executed  queued
 test-amd64-i386-xl-qemut-win7-amd64none executed  queued
 test-amd64-amd64-libvirtnone executed  queued
 test-amd64-amd64-xl-qemuu-win7-amd64none executed  queued
 test-armhf-armhf-xl none executed  queued
 test-amd64-i386-xend-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemuu-win7-amd64none executed  queued
 test-amd64-amd64-xl-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemut-winxpsp3none executed  queued
 build-amd64-pvops 2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemut-debianhvm-amd64none executedqueued
 test-amd64-i386-xl-credit2  none executed  queued
 test-amd64-i386-xl-qemut-debianhvm-amd64none executed queued
 test-amd64-amd64-xl-qemut-win7-amd64none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-amdnone executed  queued
 build-i3862 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-qemuu-debianhvm-amd64none executed queued
 build-i386-rumpuserxen  none executed  queued
 build-amd64   2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-sedf-pinnone executed  queued
 test-amd64-i386-xl  none executed  queued
 build-i386-pvops  2 hosts-allocate   running [st=running!]

version targeted for testing:
 xen  5d4e3ff19c33770ce01bec949c50326b11088fef
baseline version:
 xen  5cd7ed02530eb86ffee6f5b9c7f04743c726754f


People who touched revisions under test:
  Mihai Donțu mdo...@bitdefender.com
  Răzvan Cojocaru rcojoc...@bitdefender.com


jobs:
 build-amd64  preparing
 build-armhf  pass
 build-i386   preparing
 build-amd64-libvirt  queued
 build-armhf-libvirt  fail
 build-i386-libvirt   

Re: [Xen-devel] [PATCH v2 2/5] vTPM: limit libxl__add_vtpms() function to para virtual machine

2015-01-06 Thread Xu, Quan


 -Original Message-
 From: Wei Liu [mailto:wei.l...@citrix.com]
 Sent: Tuesday, January 06, 2015 5:45 PM
 To: Xu, Quan
 Cc: Wei Liu; xen-devel@lists.xen.org; ian.jack...@eu.citrix.com;
 stefano.stabell...@eu.citrix.com; ian.campb...@citrix.com
 Subject: Re: [PATCH v2 2/5] vTPM: limit libxl__add_vtpms() function to para
 virtual machine
 
 On Tue, Jan 06, 2015 at 02:17:36AM +, Xu, Quan wrote:
 
 
   -Original Message-
   From: Wei Liu [mailto:wei.l...@citrix.com]
   Sent: Monday, January 05, 2015 8:53 PM
   To: Xu, Quan
   Cc: xen-devel@lists.xen.org; ian.jack...@eu.citrix.com;
   stefano.stabell...@eu.citrix.com; ian.campb...@citrix.com;
   wei.l...@citrix.com
   Subject: Re: [PATCH v2 2/5] vTPM: limit libxl__add_vtpms() function
   to para virtual machine
  
   On Tue, Dec 30, 2014 at 11:45:02PM -0500, Quan Xu wrote:
Signed-off-by: Quan Xu quan...@intel.com
---
 tools/libxl/libxl_create.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
   
diff --git a/tools/libxl/libxl_create.c
b/tools/libxl/libxl_create.c index b1ff5ae..0a09925 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -1358,8 +1358,9 @@ static void
domcreate_attach_vtpms(libxl__egc
   *egc,
goto error_out;
}
   
-/* Plug vtpm devices */
-   if (d_config-num_vtpms  0) {
+   /* Plug vtpm devices for para virtual domain*/
+   if (d_config-num_vtpms  0 
+   d_config-b_info.type == LIBXL_DOMAIN_TYPE_PV) {
  
   It's unclear to me why you stub out HVM domain. You need to state
   your reasoning in comment and commit log. :-/
 
  In brief, it is different to plug vtpm device for HVM/PV domain. I will try 
  to
 describe more detailed in next v3. Thanks Wei.
 
 
 I got that idea when I read your later patch. But stubbing out PV here is
 wrong. Essentially this patch introduces a functional regression by itself
 because now you can't add vtpms for PV. I doubt that you will still need this
 patch in your next round.  See my reply to patch 4/5.
 

Okay, I will reply with that email directly..
Quan 

 Wei.
 
  Thanks
  Quan Xu
  
   Wei.
  
/* Attach vtpms */
libxl__multidev_begin(ao, dcs-multidev);
dcs-multidev.callback = domcreate_attach_pci;
--
1.8.3.2

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


[Xen-devel] [xen-4.2-testing test] 33180: trouble: preparing/queued

2015-01-06 Thread xen . org
flight 33180 xen-4.2-testing running [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33180/

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-rhel6hvm-amdnone executed  queued
 build-amd64-libvirt none executed  queued
 test-amd64-amd64-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-amd64-pv none executed  queued
 test-amd64-i386-pairnone executed  queued
 test-amd64-i386-xl-winxpsp3-vcpus1none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-intelnone executed  queued
 test-i386-i386-xl-winxpsp3  none executed  queued
 test-i386-i386-libvirt  none executed  queued
 test-amd64-i386-xl-win7-amd64none executed  queued
 test-amd64-i386-qemut-rhel6hvm-intelnone executed  queued
 test-amd64-i386-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-i386-pv  none executed  queued
 test-amd64-i386-qemuu-freebsd10-i386none executed  queued
 test-amd64-amd64-xl-qemuu-winxpsp3none executed  queued
 test-amd64-i386-qemut-rhel6hvm-amdnone executed  queued
 test-i386-i386-xl   none executed  queued
 test-amd64-amd64-xl-pcipt-intelnone executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1none executed queued
 test-amd64-i386-rumpuserxen-i386none executed  queued
 test-amd64-amd64-xl-qemuu-debianhvm-amd64none executedqueued
 test-i386-i386-pair none executed  queued
 test-i386-i386-pv   none executed  queued
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1none executed queued
 test-amd64-i386-rhel6hvm-intelnone executed  queued
 test-i386-i386-rumpuserxen-i386none executed  queued
 test-i386-i386-xl-qemuu-winxpsp3none executed  queued
 test-amd64-amd64-xl-sedfnone executed  queued
 test-amd64-i386-xend-winxpsp3none executed  queued
 test-amd64-amd64-xl-winxpsp3none executed  queued
 test-amd64-i386-libvirt none executed  queued
 test-amd64-amd64-pair   none executed  queued
 test-amd64-i386-xl-multivcpunone executed  queued
 build-amd64-rumpuserxen none executed  queued
 test-amd64-amd64-rumpuserxen-amd64none executed  queued
 test-i386-i386-xl-qemut-winxpsp3none executed  queued
 build-i386-libvirt  none executed  queued
 test-amd64-amd64-xl none executed  queued
 test-amd64-i386-xl-qemut-win7-amd64none executed  queued
 test-amd64-amd64-libvirtnone executed  queued
 test-amd64-amd64-xl-qemuu-win7-amd64none executed  queued
 test-amd64-i386-xend-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemuu-win7-amd64none executed  queued
 test-amd64-amd64-xl-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemut-winxpsp3none executed  queued
 build-amd64-pvops 2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemut-debianhvm-amd64none executedqueued
 test-amd64-i386-xl-credit2  none executed  queued
 test-amd64-i386-qemuu-freebsd10-amd64none executed  queued
 test-amd64-i386-xl-qemut-debianhvm-amd64none executed queued
 test-amd64-amd64-xl-qemut-win7-amd64none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-amdnone executed  queued
 build-i3862 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-qemuu-debianhvm-amd64none executed queued
 build-amd64   2 hosts-allocate   running [st=running!]
 build-i386-rumpuserxen  none executed  queued
 test-amd64-amd64-xl-sedf-pinnone executed  queued
 test-amd64-i386-xl  none executed  queued
 build-i386-pvops  2 hosts-allocate   running [st=running!]

version targeted for testing:
 xen  95af3f09eeef089e0100a8518f7ca75206e33c7c
baseline version:
 xen  353de6b221c2d0fb59edfceb1f535357e4d84825


People who touched revisions under test:
  Mihai Donțu mdo...@bitdefender.com
  Răzvan Cojocaru rcojoc...@bitdefender.com


jobs:
 build-amd64  preparing
 build-i386  

[Xen-devel] [OSSTEST PATCH] README.dev: Document how to do a force push.

2015-01-06 Thread Ian Campbell
Signed-off-by: Ian Campbell ian.campb...@citrix.com
---
 README.dev | 9 +
 1 file changed, 9 insertions(+)

diff --git a/README.dev b/README.dev
index eb72659..1257649 100644
--- a/README.dev
+++ b/README.dev
@@ -123,3 +123,12 @@ initial push works
 When pushing the patches, be sure to make sure that the
 for-$branch.git repo can fast forward to the pushed version (perhaps
 by resetting it).
+
+Force pushing a branch
+==
+
+As osstest user on test controller
+$ cd ~/branches/for-$branch.git
+$ OSSTEST_CONFIG=production-config ./ap-push $branch $revision
+
+NOTE: $revision must be a revision *not* a tag.
-- 
2.1.1


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


[Xen-devel] smmu/ccp warnings on Seattle

2015-01-06 Thread Jintack Lim
While Xen was booting on Seattle, I got warnings/errors related to smmu and
ccp.
Eventually Seattle was rebooted.
These are the relevant logs (and more warnings in a full log at the bottom).

(XEN) smmu: /smb/motherboard/smmu@00C0: Try to add master ccp
(XEN) smmu: /smb/motherboard/smmu@00C0: duplicate stream ID (11)
(XEN) smmu: /smb/motherboard/smmu@00C0: failed to add master ccp
...
...
(XEN) arm-smmu: attach /smb/motherboard/ccp@0010 to domain 0
(XEN) /smb/motherboard/ccp@0010: cannot attach to SMMU, is it on the
same bus?
(XEN) Failed to setup the IOMMU for /smb/motherboard/ccp@0010
(XEN) Device tree generation failed (-19).

Even after removing smmu/ccp nodes from the DT, I got an unexpected
hypervisor trap on cpu0, and Seattle was rebooted again.

Here's the full log WITH smmu/ccp.

Shell FS0:\xen\xenImg.gz
Xen 4.5.0-rc (c/s Mon Dec 15 09:30:05 2014 +0100 git:2676bc9) EFI loader
Using configuration file 'xenImg.cfg'
v318: 0x0083fbd93000-0x0083fc4eada0
 Xen 4.5.0-rc
(XEN) Xen version 4.5.0-rc (soccertack@) (aarch64-linux-gnu-gcc
(crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GC
C 4.9-2014.09) 4.9.2 20140904 (prerelease)) debug=y Wed Dec 17 11:50:57 EST
2014
(XEN) Latest ChangeSet: Mon Dec 15 09:30:05 2014 +0100 git:2676bc9
(XEN) Processor: 410fd070: ARM Limited, variant: 0x0, part 0xd07, rev 0x0
(XEN) 64-bit Execution:
(XEN)   Processor Features:  
(XEN) Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN) Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 10305106 
(XEN)   Auxiliary Features:  
(XEN)   Memory Model Features: 1124 
(XEN)   ISA Features:  00011120 
(XEN) 32-bit Execution:
(XEN)   Processor Features: 0131:00011011
(XEN) Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN) Extensions: GenericTimer Security
(XEN)   Debug Features: 03010066
(XEN)   Auxiliary Features: 
(XEN)   Memory Model Features: 10101105 4000 0126 02102211
(XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121
(XEN) Platform: SEATTLE
(XEN) Using PSCI-0.1 for SMP bringup
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27
(XEN) Using generic timer at 187500 KHz
(XEN) GICv2 initialization:
(XEN) gic_dist_addr=e111
(XEN) gic_cpu_addr=e112f000
(XEN) gic_hyp_addr=e114
(XEN) gic_vcpu_addr=e116
(XEN) gic_maintenance_irq=24
(XEN) GICv2: 448 lines, 8 cpus, secure (IID 0200143b).
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Xen WARN at device_tree.c:1191
(XEN) [ Xen-4.5.0-rc  arm64  debug=y  Not tainted ]
(XEN) CPU:0
(XEN) PC: 002038dc __dt_parse_phandle_with_args+0x160/0x220
(XEN) LR: 00203858
(XEN) SP: 002b7c40
(XEN) CPSR:   2249 MODE:64-bit EL2h (Hypervisor, handler)
(XEN)  X0: 0020  X1: 0001  X2: 0004
(XEN)  X3:   X4: 0080  X5: 6c61626f6c672300
(XEN)  X6: 8023676c6f62616c  X7: 6b60616e6b6621ff  X8: 7f7f7f7f7f7f7f7f
(XEN)  X9: fffb X10: 0101010101010101 X11: 
(XEN) X12: 0018 X13:  X14: 00219438
(XEN) X15:  X16: 00289298 X17: 
(XEN) X18:  X19: 0004 X20: 
(XEN) X21: 8003d384 X22: 8003d404 X23: 8003fff82ba0
(XEN) X24:  X25: 0001 X26: 
(XEN) X27: 00270940 X28: 002b7d40  FP: 002b7c40
(XEN)
(XEN)   VTCR_EL2: 8000
(XEN)  VTTBR_EL2: 
(XEN)
(XEN)  SCTLR_EL2: 30cd183d
(XEN)HCR_EL2: 0038643f
(XEN)  TTBR0_EL2: 008027ef4000
(XEN)
(XEN)ESR_EL2: f201
(XEN)  HPFAR_EL2: 
(XEN)FAR_EL2: 
(XEN)
(XEN) Xen stack trace from sp=002b7c40:
(XEN)002b7cc0 00204c88 8003fbd90660 0002
(XEN)0002 0001 00270440 0004
(XEN) 00270940 00270440 0027
(XEN)8003fff82d78 0100 002b7cd0 00840020
(XEN)002b7cd0 00280f84 002b7da0 00286204
(XEN)00278a30 0001 00278a90 8003fff82d78
(XEN) 0004 002a0108 00800100
(XEN)0084 000d 00278a90 00270958
(XEN)002b7d50 00203aa8 002b7d80 00286154
(XEN)00290050 8003fff82d78 002b7da0 000c002861b4
(XEN)002b7da0 002861e4 0001 e040
(XEN)002b7de0 0028093c 8003fff82d78 

Re: [Xen-devel] [PATCH for-4.5] reset PCI devices on force removal even when QEMU returns error

2015-01-06 Thread Sander Eikelenboom

Tuesday, January 6, 2015, 12:45:17 PM, you wrote:

 On Wed, 2014-12-17 at 16:07 -0500, Konrad Rzeszutek Wilk wrote:
 On Mon, Dec 15, 2014 at 11:13:06AM +, Stefano Stabellini wrote:
  On Fri, 12 Dec 2014, Konrad Rzeszutek Wilk wrote:
   On Fri, Dec 12, 2014 at 04:13:52PM +0100, Sander Eikelenboom wrote:
Hi Konrad,

This doesn't seem to be applied yet, nor does it seem to have a 
release-(N)ACK 
from you ?
   
   Hm, Stefano:
   
   - Is this a regression?
  
  I don't think so. Probably a regression compared to the xend toolstack
  though.
 
 OK, so that is Xen 4.4 - Xen 4.5 regression then.
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

 An updated version with the logging which I had indicated I would prefer
 doesn't appear to be forthcoming so I've just applied this one.

I wasn't aware of that, thx for applying !

--
Sander 



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


[Xen-devel] [linux-3.10 test] 33150: regressions - trouble: blocked/fail/pass/preparing/queued

2015-01-06 Thread xen . org
flight 33150 linux-3.10 running [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33150/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-pvh-intelnone executed  queued
 test-amd64-amd64-rumpuserxen-amd64none executed  queued
 test-amd64-i386-rumpuserxen-i386none executed  queued
 build-armhf-libvirt   5 libvirt-build fail REGR. vs. 26303
 test-amd64-i386-libvirt none executed  queued
 test-amd64-amd64-libvirtnone executed  queued
 test-amd64-amd64-xl-pcipt-intelnone executed  queued
 test-amd64-amd64-xl-pvh-amd none executed  queued
 build-i386-libvirt2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl none executed  queued
 test-amd64-i386-rhel6hvm-amdnone executed  queued
 test-amd64-i386-qemuu-rhel6hvm-amdnone executed  queued
 test-amd64-i386-qemut-rhel6hvm-amdnone executed  queued
 test-amd64-i386-qemut-rhel6hvm-intelnone executed  queued
 test-amd64-amd64-xl-sedf-pinnone executed  queued
 test-amd64-i386-xl-credit2  none executed  queued
 test-amd64-i386-rhel6hvm-intelnone executed  queued
 test-amd64-i386-xl  none executed  queued
 test-amd64-i386-qemuu-rhel6hvm-intelnone executed  queued
 test-amd64-amd64-xl-sedfnone executed  queued
 test-amd64-i386-xl-qemut-win7-amd64none executed  queued
 test-amd64-i386-freebsd10-i386none executed  queued
 test-amd64-i386-freebsd10-amd64none executed  queued
 build-amd64-libvirt none executed  queued
 test-amd64-amd64-xl-qemuu-winxpsp3none executed  queued
 build-amd64-rumpuserxen none executed  queued
 test-amd64-i386-xl-winxpsp3-vcpus1none executed  queued
 build-amd64-pvops 2 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-qemut-debianhvm-amd64none executed queued
 test-amd64-i386-xl-multivcpunone executed  queued
 build-amd64   2 hosts-allocate   running [st=running!]
 test-amd64-i386-xl-qemuu-debianhvm-amd64none executed queued
 test-amd64-i386-xl-qemuu-win7-amd64none executed  queued
 test-amd64-amd64-pair   none executed  queued
 test-amd64-i386-xl-winxpsp3 none executed  queued
 test-amd64-amd64-xl-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemut-win7-amd64none executed  queued
 test-amd64-amd64-xl-qemuu-win7-amd64none executed  queued
 test-amd64-i386-xl-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-amd64-xl-qemut-debianhvm-amd64none executedqueued
 test-amd64-amd64-xl-qemuu-debianhvm-amd64none executedqueued
 test-amd64-amd64-xl-qemuu-ovmf-amd64none executed  queued
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1none executed queued
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1none executed queued
 test-amd64-i386-pairnone executed  queued
 test-amd64-i386-xl-win7-amd64none executed  queued
 test-amd64-amd64-xl-winxpsp3none executed  queued
 test-amd64-amd64-xl-qemut-winxpsp3none executed  queued
 test-amd64-i386-xl-qemuu-winxpsp3none executed  queued

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl   5 xen-boot fail   never pass
 test-armhf-armhf-libvirt  1 build-check(1)   blocked  n/a

version targeted for testing:
 linuxa472efc75989c7092187fe00f0400e02c495c436
baseline version:
 linuxbe67db109090b17b56eb8eb2190cd70700f107aa


816 people touched revisions under test,
not listing them all


jobs:
 build-amd64  preparing
 build-armhf  pass
 build-i386   pass
 build-amd64-libvirt  queued  
 build-armhf-libvirt  fail
 build-i386-libvirt   preparing
 build-amd64-pvopspreparing
 build-armhf-pvopspass
 build-i386-pvops 

Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Ian Jackson
(CC list replaced by just the list.)

konrad.w...@oracle.com writes (Xen 4.5 Development Update (GA slip by a 
week)):
  WE ARE HERE ===
  Release Date: Jan 14th.

There are two remaining dates left unspecified in your mail:

 * When do we branch for 4.5 ?  I think we should do this right away
   so that we can set up osstest to have a working push gate for 4.5
   by the time of the release.

   This will work best with coordination with all committers to avoid
   stuff appearing on staging after staging-4.5 is created.

   The implication of branching of course is that 4.6-unstable becomes
   open for business.

 * What is the last commit deadline for 4.5 ?

   We need time to wait for a test push, discover a possible problem,
   and perhaps revert.  A week would be best, but maybe a bit less
   would be OK.

Ian.

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


Re: [Xen-devel] [PATCH v2 2/4] sysctl: Make XEN_SYSCTL_topologyinfo sysctl a little more efficient

2015-01-06 Thread Boris Ostrovsky

On 01/06/2015 08:41 AM, Andrew Cooper wrote:

On 06/01/15 02:18, Boris Ostrovsky wrote:

Instead of copying data for each field in xen_sysctl_topologyinfo separately
put cpu/socket/node into a single structure and do a single copy for each
processor.

There is also no need to copy whole op to user at the end, max_cpu_index is
sufficient

Rename xen_sysctl_topologyinfo and XEN_SYSCTL_topologyinfo to reflect the fact
that these are used for CPU topology. Subsequent patch will add support for
PCI topology sysctl.

Signed-off-by: Boris Ostrovsky boris.ostrov...@oracle.com

If we are going to change the hypercall, then can we see about making it
a stable interface (i.e. not a sysctl/domctl)?  There are non-toolstack
components which might want/need access to this information.  (i.e. I am
still looking for a reasonable way to get this information from Xen in
hwloc)


Can't those components dlopen libxl? That's what I was assuming we'd do 
with hwlock.





snip

+if ( cpu_online(i) )
  {
-uint32_t socket = cpu_online(i) ? cpu_to_socket(i) : ~0u;
-if ( copy_to_guest_offset(ti-cpu_to_socket, i, socket, 1) )
-break;
+cputopo.core = cpu_to_core(i);
+cputopo.socket = cpu_to_socket(i);
+cputopo.node = cpu_to_node(i);
  }
-if ( !guest_handle_is_null(ti-cpu_to_node) )
+else
+cputopo.core = cputopo.socket =
+cputopo.node = INVALID_TOPOLOGY_ID;
+

In particular, can we fix this broken behaviour.  The cpu being online
or not has no bearing on whether Xen has topology information, and a
side effect is that when the cpu governer powers down a cpu, it
disappears from the reported topology.


Yes, I should fix that as well.

-boris


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


Re: [Xen-devel] [PATCH 1/7] tools/hotplug: remove SELinux options from var-lib-xenstored.mount

2015-01-06 Thread Ian Jackson
Olaf Hering writes ([PATCH 1/7] tools/hotplug: remove SELinux options from 
var-lib-xenstored.mount):
 Using SELinux mount options per default breaks several systems.
 Either the context= mount option is not known at all to the kernel,
 as reported for ArchLinux. Or the default value none is unknown to
 SELinux, as reported for Fedora. In both cases the unit will fail.
...
 Signed-off-by: Olaf Hering o...@aepfle.de

Acked-by: Ian Jackson ian.jack...@eu.citrix.com

When applied along with the README change provided by Konrad.

Ian.

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


Re: [Xen-devel] [PATCH 7/7] tools/hotplug: add wrapper to start xenstored

2015-01-06 Thread Ian Jackson
Olaf Hering writes ([PATCH 7/7] tools/hotplug: add wrapper to start 
xenstored):
 The shell wrapper in xenstored.service does not handle XENSTORE_TRACE.
...
 +XENSTORED_LIBEXEC = xenstored.sh

Should be in /etc as previously discussed.  Previously I wrote:

  Bottom line: as relevant maintainer, I'm afraid I'm going to insist
  that this script be in /etc.

I'm disappointed.  It is not acceptable to resubmit a change ignoring
such unequivocal feedback.

Nacked-by: Ian Jackson ian.jack...@eu.citrix.com

 +hotplug/Linux/xenstored.sh

Although many of the existing hotplug scripts have this notion of
calling things foo.sh because they happen to be written in shell, I
think this is bad practice.

I would prefer xenstored-wrap or some such.  (My co-maintainers may
disagree...)  But this is a bit of a bikeshed issue.

   echo -n Starting $XENSTORED...
 - $XENSTORED --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
 + XENSTORED=$XENSTORED \
 + XENSTORED_TRACE=$XENSTORED_TRACE \
 + XENSTORED_ARGS=$XENSTORED_ARGS \
 + ${LIBEXEC_BIN}/xenstored.sh --pid-file 
 /var/run/xenstored.pid

It might be easier to . xenstore-wrap.  Failing that using `export'
will avoid this rather odd and repetitive style.

 diff --git a/tools/hotplug/Linux/xenstored.sh.in 
 b/tools/hotplug/Linux/xenstored.sh.in
 new file mode 100644
 index 000..dc806ee
 --- /dev/null
 +++ b/tools/hotplug/Linux/xenstored.sh.in
 @@ -0,0 +1,6 @@
 +#!/bin/sh
 +if test -n $XENSTORED_TRACE
 +then
 + XENSTORED_ARGS= -T /var/log/xen/xenstored-trace.log
 +fi
 +exec $XENSTORED $@ $XENSTORED_ARGS

This should probably have  around $@ just in case.

Thanks,
Ian.

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


Re: [Xen-devel] [PATCH 0/7 v3] tools/hotplug: systemd changes for 4.5

2015-01-06 Thread Ian Jackson
Konrad Rzeszutek Wilk writes (Re: [Xen-devel] [PATCH 0/7 v3] tools/hotplug: 
systemd changes for 4.5):
 #4 (tools/hotplug: use xencommons as EnvironmentFile in xenconsoled.service)
 #5 (tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service)
 #6 (tools/hotplug: remove EnvironmentFile from 
 xen-qemu-dom0-disk-backend.service)
 
 need Acks. 

Done.

 For patch #1 (tools/hotplug: remove SELinux options from 
 var-lib-xenstored.mount)
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
 Tested-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
 
 with the below change to README file. It also needs an Ack.

Done.

 For patch #7 ( tools/hotplug: add wrapper to start xenstored)
 
 Tested-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
 However there is a question in there for Ian:
 
 The place of the wrapper is currently LIBEXEC_BIN, it has to be
 decided what the final location is supposed to be. IanJ wants it in
 /etc.
 
 
 IanJ - any specific reasons for having it in /etc instead of
 LIBEXEC_BIN? This is in regards to the introduction of this file:

I explained this in my previous response and made what I thought was
an unequivocal declaration about the location of the file.

 Such as this might be good (Or perhaps move it to the INSTALL file)
...
 --- a/README
 +++ b/README
...
 +Release Issues
 +==

I'm happy to have this particular issue here in the README.

But I think the release notes need to be out of tree.  This is so that
if we discover an issue between last commit deadline and release, we
can update the release notes.

Thanks,
Ian.

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Lars Kurth
Hi all (and a Happy New Year),

besides the actual release and the remaining code issues there are a few other 
items that typically need to be done. I am listing these below. Some have 
owners, others don't. If you are on the CC list, please have a look at the 
unowned pages and see whether you can help.

Once all the outstanding changes have made it into master, please let me know 
such that I can re-run the stats. If not, people may not be credited for their 
contribution.

= (Owned) Documentation - needs checking =

* Lars: http://wiki.xenproject.org/wiki/Xen_Project_4.5_Feature_List
**  it is possible that a feature you developed was missed or wrongly 
described.  Feel free to add to the page or update it.

* Lars: http://wiki.xenproject.org/wiki/Xen_Project_Release_Features
** The Host Limits need to be checked. I believe the limits for ARM increased. 
Not sure about x98

= (Unowned) Documentation =
These will need to be checked by someone who knows the relevant functionality. 
Please reply to this section.

* http://wiki.xenproject.org/wiki/Linux_PVH - not sure whether this page 
correct. Someone in the know please have a look and ACK or point out issues
* http://wiki.xenproject.org/wiki/Xen_Project_4.5_Release_Notes - I can 
populate some of it. Will need help for the known issues section though
* 
http://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/OdroidXU 
- missing

= (Owned) Documentation =
* Lars: http://wiki.xenproject.org/wiki/Xen_Project_4.5_Acknowledgements - will 
populate after I ran the stats script after the last commit
* Lars: http://wiki.xenproject.org/wiki/Xen_Project_4.5_Man_Pages - done, but 
links are broken until the branch is made

= (Owned) Making the Release = 
Typically done by Ian Jackson and me.

See http://wiki.xenproject.org/wiki/Checklist/XenHypervisorRelease

= (Owned) Press release / Blog post =
Done by Sarah Conway and me
Status: have a draft press release and blog post (see 
http://lists.xenproject.org/archives/html/publicity/2015-01/msg1.html) - 
feel free to check your feature description

Open Issue: Konrad to check whether he is allowed to publish the blog post 
under his name. If not we can create a Release Manager account to publish it 
under.

Cheers
Lars

On 5 Jan 2015, at 20:08, konrad.w...@oracle.com wrote:

 Xen 4.5-rc4 was out on Monday (Dec 15th). The GA
 General Release is on Jan 7th^H^H^14th!
 
 There are some outstanding patches on which we need to figure
 out whether we will commit them in or not.
 
 When we commit a patch in, the OSSTest takes a day or so to push it to 
 'master'
 - and if it fails during that time patches that are later in the sequence are
 not applied. Hence if everything works out great - we get the patches
 to show up next day - however if something breaks - we are stalled.
 
 Ian(s) has pointed to me that the OSSTest is sometimes on the fritz and that 
 it
 might take more than one day to push patches through which means we won't
 make it by Wednesday.
 
 As such, moving it the release by a week to give us ample room to get through
 those changes.
 
 These are the patches that need to be investigated whether they should
 go in or not:
 
 VT-d: don't crash when PTE bits 52 and up are non-zero
 VT-d: extend XSA-59 workaround to XeonE5 v3 (Haswell)
 VT-d: make XSA-59 workaround fully cover XeonE5/E7 v2
 x86/VPMU: Clear last_vcpu when destroying VPMU
 tools/hotplug: add wrapper to start xenstored
 tools/hotplug: remove EnvironmentFile from xen-qemu-dom0-disk-backend.service
 tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service
 tools/hotplug: use xencommons as EnvironmentFile in xenconsoled.service
 tools/hotplug: xendomains.service depends on network
 tools/hotplug: remove XENSTORED_ROOTDIR from xenstored.service
 tools/hotplug: remove SELinux options from var-lib-xenstored.mount
 tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ss
 xen: arm: correct off-by-one error in consider_module
 
 
 = Timeline =
 
 Xen 4.5 is a 10 month release. The dates are:
 
 * Feature Freeze: 24th September 2014
 * First RC: 24th October [Friday!]
 * RC2: Nov 11th
 * RC2 Test-day: Nov 13th
 * RC3: Dec 3rd.
 * RC3 Test-day: Dec 4th
 * RC4: Dec 15th
 * RC4 Test-day: Dec 17th
 
  WE ARE HERE ===
 
 Release Date: Jan 14th.
 
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel


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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Konrad Rzeszutek Wilk
On Tue, Jan 06, 2015 at 02:40:31PM +, Ian Jackson wrote:
 (CC list replaced by just the list.)
 
 konrad.w...@oracle.com writes (Xen 4.5 Development Update (GA slip by a 
 week)):
   WE ARE HERE ===
   Release Date: Jan 14th.
 
 There are two remaining dates left unspecified in your mail:
 
  * When do we branch for 4.5 ?  I think we should do this right away
so that we can set up osstest to have a working push gate for 4.5
by the time of the release.

I concur. Would you be OK doing that?


 
This will work best with coordination with all committers to avoid
stuff appearing on staging after staging-4.5 is created.

Um, not following you. I think we want people to put patches in staging,
just not 4.5 material?


 
The implication of branching of course is that 4.6-unstable becomes
open for business.

Right.
 
  * What is the last commit deadline for 4.5 ?
 
We need time to wait for a test push, discover a possible problem,
and perhaps revert.  A week would be best, but maybe a bit less

How long do those 'test push' take?
would be OK.
 
 Ian.

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


Re: [Xen-devel] [PATCH 0/7 v3] tools/hotplug: systemd changes for 4.5

2015-01-06 Thread Konrad Rzeszutek Wilk
On Tue, Jan 06, 2015 at 03:00:16PM +, Ian Jackson wrote:
 Konrad Rzeszutek Wilk writes (Re: [Xen-devel] [PATCH 0/7 v3] tools/hotplug: 
 systemd changes for 4.5):
  #4 (tools/hotplug: use xencommons as EnvironmentFile in 
  xenconsoled.service)
  #5 (tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service)
  #6 (tools/hotplug: remove EnvironmentFile from 
  xen-qemu-dom0-disk-backend.service)
  
  need Acks. 
 
 Done.

Thank you. Let me apply #1-#6 in staging then.
 
  For patch #1 (tools/hotplug: remove SELinux options from 
  var-lib-xenstored.mount)
  
  Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
  Tested-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
  
  with the below change to README file. It also needs an Ack.
 
 Done.
 
  For patch #7 ( tools/hotplug: add wrapper to start xenstored)
  
  Tested-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
  However there is a question in there for Ian:
  
  The place of the wrapper is currently LIBEXEC_BIN, it has to be
  decided what the final location is supposed to be. IanJ wants it in
  /etc.
  
  
  IanJ - any specific reasons for having it in /etc instead of
  LIBEXEC_BIN? This is in regards to the introduction of this file:
 
 I explained this in my previous response and made what I thought was
 an unequivocal declaration about the location of the file.
 
  Such as this might be good (Or perhaps move it to the INSTALL file)
 ...
  --- a/README
  +++ b/README
 ...
  +Release Issues
  +==
 
 I'm happy to have this particular issue here in the README.
 
 But I think the release notes need to be out of tree.  This is so that
 if we discover an issue between last commit deadline and release, we
 can update the release notes.

nods Will create one on the Wiki and add it there.
 
 Thanks,
 Ian.

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


Re: [Xen-devel] [PATCH] libxl: Fix building libxlu_cfg_y.y with bison 3.0

2015-01-06 Thread Ian Jackson
Konrad Rzeszutek Wilk writes (Re: [Xen-devel] [PATCH] libxl: Fix building 
libxlu_cfg_y.y with bison 3.0):
 On Wed, Dec 10, 2014 at 04:44:00PM +, Ian Campbell wrote:
  On Wed, 2014-12-10 at 11:41 -0500, Konrad Rzeszutek Wilk wrote:
   On Tue, Dec 09, 2014 at 03:25:29PM +, Ian Jackson wrote:
I think for 4.5 we should:

 * Regenerate the flex files with current wheezy's flex.  (I have
   reviewed the diff in the generated code.  It produces trivial
   changes which add declarations of xlu__cfg_yyget_column and
   xlu__cfg_yyset_column, but no code body changes - see below.)

 * Take the patch from Ed and regenerate the bison files too.

Konrad: can we have two freeze exceptions please ?
...
 Based on that reasoning (And thank you for pointing out the developers
 factors), I retract my earlier reason and:
 
 Release-Acked-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com

Thanks.  I have now pushed these two.

Ian.

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


Re: [Xen-devel] [PATCH 6/7] tools/hotplug: remove EnvironmentFile from xen-qemu-dom0-disk-backend.service

2015-01-06 Thread Ian Jackson
Olaf Hering writes ([PATCH 6/7] tools/hotplug: remove EnvironmentFile from 
xen-qemu-dom0-disk-backend.service):
 The references Environment file does not exist, and the service file
 does not make use of variables anyway.

Acked-by: Ian Jackson ian.jack...@eu.citrix.com

Although of course this will have to come back in a slightly different
form if we ever start honouring env settings for any reason.

Thanks,
Ian.

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Konrad Rzeszutek Wilk
On Tue, Jan 06, 2015 at 03:11:21PM +, Lars Kurth wrote:
 Hi all (and a Happy New Year),
 
 besides the actual release and the remaining code issues there are a few 
 other items that typically need to be done. I am listing these below. Some 
 have owners, others don't. If you are on the CC list, please have a look at 
 the unowned pages and see whether you can help.
 
 Once all the outstanding changes have made it into master, please let me know 
 such that I can re-run the stats. If not, people may not be credited for 
 their contribution.
 
 = (Owned) Documentation - needs checking =
 
 * Lars: http://wiki.xenproject.org/wiki/Xen_Project_4.5_Feature_List
 **  it is possible that a feature you developed was missed or wrongly 
 described.  Feel free to add to the page or update it.
 
 * Lars: http://wiki.xenproject.org/wiki/Xen_Project_Release_Features
 ** The Host Limits need to be checked. I believe the limits for ARM 
 increased. Not sure about x98
 
 = (Unowned) Documentation =
 These will need to be checked by someone who knows the relevant 
 functionality. Please reply to this section.
 
 * http://wiki.xenproject.org/wiki/Linux_PVH - not sure whether this page 
 correct. Someone in the know please have a look and ACK or point out issues
 * http://wiki.xenproject.org/wiki/Xen_Project_4.5_Release_Notes - I can 
 populate some of it. Will need help for the known issues section though
 * 
 http://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/OdroidXU
  - missing
 
 = (Owned) Documentation =
 * Lars: http://wiki.xenproject.org/wiki/Xen_Project_4.5_Acknowledgements - 
 will populate after I ran the stats script after the last commit
 * Lars: http://wiki.xenproject.org/wiki/Xen_Project_4.5_Man_Pages - done, but 
 links are broken until the branch is made
 
 = (Owned) Making the Release = 
 Typically done by Ian Jackson and me.
 
 See http://wiki.xenproject.org/wiki/Checklist/XenHypervisorRelease
 
 = (Owned) Press release / Blog post =
 Done by Sarah Conway and me
 Status: have a draft press release and blog post (see 
 http://lists.xenproject.org/archives/html/publicity/2015-01/msg1.html) - 
 feel free to check your feature description
 
 Open Issue: Konrad to check whether he is allowed to publish the blog post 
 under his name. If not we can create a Release Manager account to publish it 
 under.

No problem with me doing the blogs.
 
 Cheers
 Lars
 
 On 5 Jan 2015, at 20:08, konrad.w...@oracle.com wrote:
 
  Xen 4.5-rc4 was out on Monday (Dec 15th). The GA
  General Release is on Jan 7th^H^H^14th!
  
  There are some outstanding patches on which we need to figure
  out whether we will commit them in or not.
  
  When we commit a patch in, the OSSTest takes a day or so to push it to 
  'master'
  - and if it fails during that time patches that are later in the sequence 
  are
  not applied. Hence if everything works out great - we get the patches
  to show up next day - however if something breaks - we are stalled.
  
  Ian(s) has pointed to me that the OSSTest is sometimes on the fritz and 
  that it
  might take more than one day to push patches through which means we won't
  make it by Wednesday.
  
  As such, moving it the release by a week to give us ample room to get 
  through
  those changes.
  
  These are the patches that need to be investigated whether they should
  go in or not:
  
  VT-d: don't crash when PTE bits 52 and up are non-zero
  VT-d: extend XSA-59 workaround to XeonE5 v3 (Haswell)
  VT-d: make XSA-59 workaround fully cover XeonE5/E7 v2
  x86/VPMU: Clear last_vcpu when destroying VPMU
  tools/hotplug: add wrapper to start xenstored
  tools/hotplug: remove EnvironmentFile from 
  xen-qemu-dom0-disk-backend.service
  tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service
  tools/hotplug: use xencommons as EnvironmentFile in xenconsoled.service
  tools/hotplug: xendomains.service depends on network
  tools/hotplug: remove XENSTORED_ROOTDIR from xenstored.service
  tools/hotplug: remove SELinux options from var-lib-xenstored.mount
  tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ss
  xen: arm: correct off-by-one error in consider_module
  
  
  = Timeline =
  
  Xen 4.5 is a 10 month release. The dates are:
  
  * Feature Freeze: 24th September 2014
  * First RC: 24th October [Friday!]
  * RC2: Nov 11th
  * RC2 Test-day: Nov 13th
  * RC3: Dec 3rd.
  * RC3 Test-day: Dec 4th
  * RC4: Dec 15th
  * RC4 Test-day: Dec 17th
  
   WE ARE HERE ===
  
  Release Date: Jan 14th.
  
  
  ___
  Xen-devel mailing list
  Xen-devel@lists.xen.org
  http://lists.xen.org/xen-devel
 

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


Re: [Xen-devel] [PATCH 5/7] tools/hotplug: use XENCONSOLED_TRACE in xenconsoled.service

2015-01-06 Thread Konrad Rzeszutek Wilk
On Tue, Jan 06, 2015 at 11:30:38AM +, Ian Campbell wrote:
 On Fri, 2014-12-19 at 12:25 +0100, Olaf Hering wrote:
  Instead of inventing a new XENCONSOLED_LOG= variable reuse the
  existing XENCONSOLED_TRACE= variable in xenconsoled.service.
  
  Signed-off-by: Olaf Hering o...@aepfle.de
  Cc: Ian Jackson ian.jack...@eu.citrix.com
  Cc: Stefano Stabellini stefano.stabell...@eu.citrix.com
 
 Acked-by: Ian Campbell ian.campb...@citrix.com
 
 (should XENCONSOLED_LOG_DIR be changed for consistency?)

To XENCONSOLED_TRACE_DIR ? It could but lets leave that for
another patch.

 
  Cc: Wei Liu wei.l...@citrix.com
  ---
   tools/hotplug/Linux/systemd/xenconsoled.service.in | 4 ++--
   1 file changed, 2 insertions(+), 2 deletions(-)
  
  diff --git a/tools/hotplug/Linux/systemd/xenconsoled.service.in 
  b/tools/hotplug/Linux/systemd/xenconsoled.service.in
  index 74d0428..4788129 100644
  --- a/tools/hotplug/Linux/systemd/xenconsoled.service.in
  +++ b/tools/hotplug/Linux/systemd/xenconsoled.service.in
  @@ -7,13 +7,13 @@ ConditionPathExists=/proc/xen/capabilities
   [Service]
   Type=simple
   Environment=XENCONSOLED_ARGS=
  -Environment=XENCONSOLED_LOG=none
  +Environment=XENCONSOLED_TRACE=none
   Environment=XENCONSOLED_LOG_DIR=@XEN_LOG_DIR@/console
   EnvironmentFile=@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
   PIDFile=@XEN_RUN_DIR@/xenconsoled.pid
   ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
   ExecStartPre=/bin/mkdir -p ${XENCONSOLED_LOG_DIR}
  -ExecStart=@sbindir@/xenconsoled --pid-file @XEN_RUN_DIR@/xenconsoled.pid 
  --log=${XENCONSOLED_LOG} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
  +ExecStart=@sbindir@/xenconsoled --pid-file @XEN_RUN_DIR@/xenconsoled.pid 
  --log=${XENCONSOLED_TRACE} --log-dir=${XENCONSOLED_LOG_DIR} 
  $XENCONSOLED_ARGS
   
   [Install]
   WantedBy=multi-user.target
 
 

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Ian Campbell
(culling CCs)

On Tue, 2015-01-06 at 15:11 +, Lars Kurth wrote:
 * 
 http://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/OdroidXU
  - missing

The link to this from [Xen_ARM_with_Virtualization_Extensions] seems to
have been added by[0] the user Suriyan, who I presume to is the same
Suriyan as is now CCd.

Suriyan,

Do you have any content for this page? Since the Odroid's are also
Exynos based perhaps it should just link to the Arndale page, which
could become a more generic Exynos page?

If not then we should remove the link and add to the hardware section
instead. (Or perhaps we should nuke this Platform specific section and
inline the links into the list of supported hardware, since having what
is effectively two lists of supported hardware seems a bit pointless).

Ian.

[0] Does media wiki really lack a git blame analogue? It was very
tedious to work this out by hand...



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


Re: [Xen-devel] [PATCH] README, xen/Makefile: Update to Xen 4.5.0

2015-01-06 Thread Don Slutz
On 01/06/15 14:14, Pasi Kärkkäinen wrote:
 On Tue, Jan 06, 2015 at 01:21:58PM -0500, Konrad Rzeszutek Wilk wrote:
 On Tue, Jan 06, 2015 at 06:06:23PM +, Ian Jackson wrote:
 Konrad Rzeszutek Wilk writes ([Xen-devel] [PATCH] README, xen/Makefile: 
 Update to Xen 4.5.0):
 -The 4.3 release offers a number of improvements, including NUMA
 -scheduling affinity, openvswitch integration, and defaulting to
 -qemu-xen rather than qemu-traditional for non-stubdom guests.
 -(qemu-xen is kept very close to the upstream project.)  We also have a
 -number of updates to vTPM, and improvements to XSM and Flask to allow
 -greater disaggregation.  Additionally, 4.3 contains a basic version of
 -Xen for the new ARM server architecture, both 32- and 64-bit.  And as
 -always, there are a number of performance, stability, and security
 +The 4.5 release offers a number of improvements: including shedding

 Should read
   +The 4.5 release offers a number of improvements, including: shedding
 (note two punctuation changes) and the list items should all be
 separated with semicolons IMO.


 Thank you for your update.

 I've incorporated feedback from all folks I hope. Would this be satisfactory?

 
 Do we want to mention things like HVM guest direct kernel boot,
 or HVM guests MMIO hole resize support? 
 

It is not resize support, it is configure size support.  And
yes it might be good to list it.

   -Don Slutz

 
 And I think there was optimizations to oxenstored to support up to 1000 VMs 
 per host.. 
 
 
 -- Pasi
 
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel
 

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


Re: [Xen-devel] [PATCH v2 1/5] vTPM: event channel bind interdomain with para/hvm virtual machine

2015-01-06 Thread Daniel De Graaf

On 01/06/2015 11:46 AM, Xu, Quan wrote:

-Original Message-
From: Daniel De Graaf [mailto:dgde...@tycho.nsa.gov]
On 12/30/2014 11:44 PM, Quan Xu wrote:[...]

diff --git a/extras/mini-os/tpmback.c b/extras/mini-os/tpmback.c

[...]

+   domid = (domtype == T_DOMAIN_TYPE_HVM) ? 0 : tpmif-domid;


Unless I'm missing something, this still assumes that the HVM device model
is located in domain 0, and so it will not work if a stub domain is used for
qemu.



QEMU is running in Dom0 as usual, so the domid is 0.
as similar to Linux PV frontend driver, this frontend driver is enabled in QEMU.


This is a valid configuration of Xen and these patches do suffice to
make it work.  I am trying to ensure that an additional type of guest
setup will also work with these patches.

A useful feature of Xen is the ability to execute the QEMU device model
in a domain instead of a process in dom0.  When combined with driver
domains for devices, this can significantly reduce both the attack
surface of and amount of trust required of domain 0.


Any doubt, feel free to contact. I will try my best to explain. I think your 
suggestions are very helpful in previous email(Oct. 31th, 2014.
' Re: FW: [PATCH 1/6] vTPM: event channel bind interdomain with para/hvm 
virtual machine')
Maybe this is still a vague description :(


This is accurate but possibly incomplete.

This is my current understanding of the communications paths and support
for vTPMs in Xen:

  Physical TPM (1.2; with new patches, may also be 2.0)
|
 [MMIO pass-through]
|
  vtpmmgr domain
|
 [minios tpmback/front] - ((other domains' vTPMs))
|
   vTPM domain (currently always emulates a TPM v1.2)
|
 [minios tpmback]+[Linux tpmfront]-- PV Linux domain (fully working)
| \
|  +--[Linux tpmfront]-- HVM Linux with optional PV drivers
|   \
 [QEMU XenDevOps]  [minios or Linux tpmfront]
|  |
 QEMU dom0 process   QEMU stub-domain
|  |
 [MMIO emulation]   [MMIO emulation]
|  |
   Any HVM guest  Any HVM guest


The series you are sending will enable QEMU to talk to tpmback directly.
This is the best solution when QEMU is running inside domain 0, because
it is not currently a good idea to use Linux's tpmfront driver to talk to
each guest's vTPM domain.

When QEMU is run inside a stub domain, there are a few more things to consider:

 * This stub domain will not have domain 0; the vTPM must bind to another
   domain ID.
 * It is possible to use the native TPM driver for the stub domain (which may
   either run Linux or mini-os) because there is no conflict with a real TPM
   software stack running inside domain 0

Supporting this feature requires more granularity in the TPM backend changes.
The vTPM domain's backend must be able to handle:

 (1) guest domains which talk directly to the vTPM on their own behalf
 (2) QEMU processes in domain 0
 (3) QEMU domains which talk directly to the vTPM on behalf of a guest

Cases (1) and (3) are already handled by the existing tpmback if the proper
domain ID is used.

Your patch set currently breaks case (1) and (3) for HVM guests while
enabling case (2).  An alternate solution that does not break these cases
while enabling case (2) is preferable.

My thoughts on extending the xenstore interface via an example:

Domain 0: runs QEMU for guest A
Domain 1: vtpmmgr
Domain 2: vTPM for guest A
Domain 3: HVM guest A

Domain 4: vTPM for guest B
Domain 5: QEMU stubdom for guest B
Domain 6: HVM guest B

/local/domain/2/backend/vtpm/3/0/*: backend A-PV
/local/domain/3/device/vtpm/0/*: frontend A-PV

/local/domain/2/backend/vtpm/0/3/*: backend A-QEMU
/local/domain/0/qemu-device/vtpm/3/*: frontend A-QEMU  (uses XenDevOps)

/local/domain/4/backend/vtpm/5/0/*: backend B-QEMU
/local/domain/5/device/vtpm/0/*: frontend B-QEMU

/local/domain/4/backend/vtpm/6/0/*: backend B-PV
/local/domain/6/device/vtpm/0/*: frontend B-PV

Connections A-PV, B-PV, and B-QEMU would be created in the same manner as
the existing xl vtpm-attach command does now.  If the HVM guest is not
running Linux with the Xen tpmfront.ko loaded, the A-PV and B-PV devices
will remain unconnected; this is fine.

Connection A-QEMU has a modified frontend state path to prevent Linux from
attaching its own TPM driver to the guest's TPM.  This requires a few changes:
libxl must support changing the frontend path; this is similar to how disk
backend supports both qdisk and vbd (and others), but instead changes the path
for the frontend.  The minios backend also needs to change the sscanf in
parse_eventstr to something like /local/domain/%u/%*[^/]/vtpm/%u/%40s.

In any case, the vTPM does not need to know if the guest is PV, HVM, or PVH.


BTW, professor J. Wang(Wuhan University, China) and I have enabled TPM 2.0 
simulator for Linux, Maybe we will try to integrate with vtpm domain to provide
TPM 2.0 vtpm function for virtual 

Re: [Xen-devel] Nominations for Xen 4.5 stable tree maintainer.

2015-01-06 Thread Andrew Cooper
On 06/01/15 16:15, Konrad Rzeszutek Wilk wrote:
 Hello,

 Per http://wiki.xenproject.org/wiki/Xen_Project_Maintenance_Releases:
 Each stable branch has a maintainer who is nominated/volunteers according to 
 the Maintainer Election
  process described in the project governance document 
 [http://www.xenproject.org/governance.html].
  This will resulting in the MAINTAINERS file in the relevant branch being 
 patched to include the maintainer.

 For the past year or so Jan Beulich has been the stable tree maintainer.

 Since Xen 4.5 has branched that opens up a new stable tree and we can also
 stop maintaining Xen 4.3 stable tree.

 The nominations are open - please volunteer yourself. In case nobody
 volunteers I can also take the role.

 I ask folks to finish voting/nominating by Jan 14th so that when Xen 4.5 comes
 out we have an viable stable tree maintainer.

 Thank you!

I will be performing this task inside XenServer anyway.  If Jan wants a
break, I would be happy to volunteer.

~Andrew


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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Suriyan Ramasami
On Tue, Jan 6, 2015 at 10:54 AM, Suriyan Ramasami suriya...@gmail.com wrote:
 On Tue, Jan 6, 2015 at 10:51 AM, Lars Kurth lars.kurth@gmail.com wrote:

 On 6 Jan 2015, at 18:08, Suriyan Ramasami suriya...@gmail.com wrote:


 I shall try my hand at updating the information again. If this needs
 to be done (yesterday), then as a temporary solution we could just
 delete this information for now, and I shall work on it soon.

 Ideally it needs to be done by next Wed. If you have the content, you could 
 send it to me and I can fix the page

 Thanks Lars for the offer. I just started editing the page, and looks
 simple enough to get some content out there. I should have updated the
 relevant information in a few hours from now. Please do help me in
 fixing the page once its done (if it needs fixing)

 Thanks!
 - Suriyan

Hello Lars/Ian,
   I have updated the wiki somewhat to an OK level of information.

Lars,
   I think there might be other links that need to be set to point to
this OdroidXU wiki? Any help in polishing this would be appreciated!

Thanks
- Suriyan


 Lars

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


[Xen-devel] [PATCH 01/12] mm: allow for an alternate set of pages for userspace mappings

2015-01-06 Thread David Vrabel
Add an optional array of pages to struct vm_area_struct that can be
used find the page backing a VMA.  This is useful in cases where the
normal mechanisms for finding the page don't work.  This array is only
inspected if the PTE is special.

Splitting a VMA with such an array of pages is trivially done by
adjusting vma-pages.  The original creator of the VMA must only free
the page array once all sub-VMAs are closed (e.g., by ref-counting in
vm_ops-open and vm_ops-close).

One use case is a Xen PV guest mapping foreign pages into userspace.

In a Xen PV guest, the PTEs contain MFNs so get_user_pages() (for
example) must do an MFN to PFN (M2P) lookup before it can get the
page.  For foreign pages (those owned by another guest) the M2P lookup
returns the PFN as seen by the foreign guest (which would be
completely the wrong page for the local guest).

This cannot be fixed up improving the M2P lookup since one MFN may be
mapped onto two or more pages so getting the right page is impossible
given just the MFN.

Signed-off-by: David Vrabel david.vra...@citrix.com
---
 include/linux/mm_types.h |8 
 mm/memory.c  |2 ++
 mm/mmap.c|   12 +++-
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 6d34aa2..4f34609 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -309,6 +309,14 @@ struct vm_area_struct {
 #ifdef CONFIG_NUMA
struct mempolicy *vm_policy;/* NUMA policy for the VMA */
 #endif
+   /*
+* Array of pages to override the default vm_normal_page()
+* result iff the PTE is special.
+*
+* The memory for this should be refcounted in vm_ops-open
+* and vm_ops-close.
+*/
+   struct page **pages;
 };
 
 struct core_thread {
diff --git a/mm/memory.c b/mm/memory.c
index ca920d1..98520f6 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -754,6 +754,8 @@ struct page *vm_normal_page(struct vm_area_struct *vma, 
unsigned long addr,
if (HAVE_PTE_SPECIAL) {
if (likely(!pte_special(pte)))
goto check_pfn;
+   if (vma-pages)
+   return vma-pages[(addr - vma-vm_start)  PAGE_SHIFT];
if (vma-vm_flags  (VM_PFNMAP | VM_MIXEDMAP))
return NULL;
if (!is_zero_pfn(pfn))
diff --git a/mm/mmap.c b/mm/mmap.c
index 7b36aa7..504dc5c 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2448,6 +2448,7 @@ static int __split_vma(struct mm_struct *mm, struct 
vm_area_struct *vma,
  unsigned long addr, int new_below)
 {
struct vm_area_struct *new;
+   unsigned long delta;
int err = -ENOMEM;
 
if (is_vm_hugetlb_page(vma)  (addr 
@@ -2463,11 +2464,20 @@ static int __split_vma(struct mm_struct *mm, struct 
vm_area_struct *vma,
 
INIT_LIST_HEAD(new-anon_vma_chain);
 
+   delta = (addr - vma-vm_start)  PAGE_SHIFT;
+
if (new_below)
new-vm_end = addr;
else {
new-vm_start = addr;
-   new-vm_pgoff += ((addr - vma-vm_start)  PAGE_SHIFT);
+   new-vm_pgoff += delta;
+   }
+
+   if (vma-pages) {
+   if (new_below)
+   vma-pages += delta;
+   else
+   new-pages += delta;
}
 
err = vma_dup_policy(vma, new);
-- 
1.7.10.4


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


[Xen-devel] [PATCH 05/12] x86/xen: require ballooned pages for grant maps

2015-01-06 Thread David Vrabel
From: Jenny Herbert jennifer.herb...@citrix.com

Ballooned pages are always used for grant maps which means the
original frame does not need to be saved in page-index nor restored
after the grant unmap.

This allows the workaround in netback for the conflicting use of the
(unionized) page-index and page-pfmemalloc to be removed.

Signed-off-by: Jenny Herbert jennifer.herb...@citrix.com
Signed-off-by: David Vrabel david.vra...@citrix.com
---
 arch/x86/xen/p2m.c|5 +++--
 drivers/net/xen-netback/netback.c |6 --
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 8f34ed4..0d70814 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -682,9 +682,10 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref 
*map_ops,
pfn = page_to_pfn(pages[i]);
 
WARN_ON(PagePrivate(pages[i]));
+   WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, page must be 
ballooned);
+
SetPagePrivate(pages[i]);
set_page_private(pages[i], mfn);
-   pages[i]-index = pfn_to_mfn(pfn);
 
if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn {
ret = -ENOMEM;
@@ -718,7 +719,7 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref 
*unmap_ops,
set_page_private(pages[i], INVALID_P2M_ENTRY);
WARN_ON(!PagePrivate(pages[i]));
ClearPagePrivate(pages[i]);
-   set_phys_to_machine(pfn, pages[i]-index);
+   set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
}
if (kunmap_ops)
ret = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
diff --git a/drivers/net/xen-netback/netback.c 
b/drivers/net/xen-netback/netback.c
index 908e65e..6441318 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -1241,12 +1241,6 @@ static void xenvif_fill_frags(struct xenvif_queue 
*queue, struct sk_buff *skb)
/* Take an extra reference to offset network stack's put_page */
get_page(queue-mmap_pages[pending_idx]);
}
-   /* FIXME: __skb_fill_page_desc set this to true because page-pfmemalloc
-* overlaps with index, and mapping is not set. I think mapping
-* should be set. If delivered to local stack, it would drop this
-* skb in sk_filter unless the socket has the right to use it.
-*/
-   skb-pfmemalloc = false;
 }
 
 static int xenvif_get_extras(struct xenvif_queue *queue,
-- 
1.7.10.4


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


[Xen-devel] [PATCH 02/12] mm: add 'foreign' alias for the 'pinned' page flag

2015-01-06 Thread David Vrabel
From: Jenny Herbert jennifer.herb...@citrix.com

The foreign page flag will be used by Xen guests to mark pages that
have grant mappings of frames from other (foreign) guests.

The foreign flag is an aliases the existing (Xen-specific) pinned
flag.  This is safe because pinned is only used on pages used for page
tables and these cannot also be foreign.

Signed-off-by: Jenny Herbert jennifer.herb...@citrix.com
Signed-off-by: David Vrabel david.vra...@citrix.com
---
 include/linux/page-flags.h |2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index e1f5fcd..7734cc8 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -123,6 +123,7 @@ enum pageflags {
/* XEN */
PG_pinned = PG_owner_priv_1,
PG_savepinned = PG_dirty,
+   PG_foreign = PG_owner_priv_1,
 
/* SLOB */
PG_slob_free = PG_private,
@@ -215,6 +216,7 @@ __PAGEFLAG(Slab, slab)
 PAGEFLAG(Checked, checked) /* Used by some filesystems */
 PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned)/* Xen */
 PAGEFLAG(SavePinned, savepinned);  /* Xen */
+PAGEFLAG(Foreign, foreign);/* Xen */
 PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
 PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
__SETPAGEFLAG(SwapBacked, swapbacked)
-- 
1.7.10.4


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


[Xen-devel] [PATCH 06/12] xen: mark grant mapped pages as foreign

2015-01-06 Thread David Vrabel
From: Jenny Herbert jennifer.herb...@citrix.com

Use the foreign page flag to mark pages that have a grant map.  Use
page-private to store information of the grant (the granting domain
and the grant reference).

Signed-off-by: Jenny Herbert jenny.herb...@citrix.com
Signed-off-by: David Vrabel david.vra...@citrix.com
---
 arch/x86/xen/p2m.c|   50 ++---
 include/xen/grant_table.h |   13 
 2 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 0d70814..22624a3 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -648,6 +648,43 @@ bool set_phys_to_machine(unsigned long pfn, unsigned long 
mfn)
return true;
 }
 
+static int
+init_page_grant_ref(struct page *p, domid_t domid, grant_ref_t grantref)
+{
+#ifdef CONFIG_X86_64
+   uint64_t gref;
+   uint64_t* gref_p = gref;
+#else
+   uint64_t* gref_p = kmalloc(sizeof(uint64_t), GFP_KERNEL);
+   if (!gref)
+   return -ENOMEM;
+   uint64_t* gref = gref_p;
+#endif
+
+   *gref_p = ((uint64_t) grantref  32) | domid;
+   p-private = gref;
+
+   WARN_ON(PagePrivate(p));
+   WARN_ON(PageForeign(p));
+   SetPagePrivate(p);
+   SetPageForeign(p);
+   return 0;
+}
+
+static void
+clear_page_grant_ref(struct page *p)
+{
+   WARN_ON(!PagePrivate(p));
+   WARN_ON(!PageForeign(p));
+
+#ifndef CONFIG_X86_64
+   kfree(p-private);
+#endif
+   p-private = 0;
+   ClearPagePrivate(p);
+   ClearPageForeign(p);
+}
+
 int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
struct gnttab_map_grant_ref *kmap_ops,
struct page **pages, unsigned int count)
@@ -681,11 +718,12 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref 
*map_ops,
}
pfn = page_to_pfn(pages[i]);
 
-   WARN_ON(PagePrivate(pages[i]));
-   WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, page must be 
ballooned);
+   ret = init_page_grant_ref(pages[i],
+ map_ops[i].dom, map_ops[i].ref);
+   if (ret  0)
+   goto out;
 
-   SetPagePrivate(pages[i]);
-   set_page_private(pages[i], mfn);
+   WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, page must be 
ballooned);
 
if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn {
ret = -ENOMEM;
@@ -716,9 +754,7 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref 
*unmap_ops,
goto out;
}
 
-   set_page_private(pages[i], INVALID_P2M_ENTRY);
-   WARN_ON(!PagePrivate(pages[i]));
-   ClearPagePrivate(pages[i]);
+   clear_page_grant_ref(pages[i]);
set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
}
if (kunmap_ops)
diff --git a/include/xen/grant_table.h b/include/xen/grant_table.h
index 7235d8f..381f007 100644
--- a/include/xen/grant_table.h
+++ b/include/xen/grant_table.h
@@ -45,6 +45,7 @@
 #include asm/xen/hypervisor.h
 
 #include xen/features.h
+#include linux/mm_types.h
 
 #define GNTTAB_RESERVED_XENSTORE 1
 
@@ -182,4 +183,16 @@ int gnttab_unmap_refs(struct gnttab_unmap_grant_ref 
*unmap_ops,
 void gnttab_batch_map(struct gnttab_map_grant_ref *batch, unsigned count);
 void gnttab_batch_copy(struct gnttab_copy *batch, unsigned count);
 
+static inline void
+get_page_grant_ref(struct page *p, domid_t* domid, grant_ref_t* grantref)
+{
+#ifdef CONFIG_X86_64
+   uint64_t gref = p-private;
+#else
+   uint64_t gref = *p-private;
+#endif
+   *domid = gref  0x;
+   *grantref = gref  32;
+}
+
 #endif /* __ASM_GNTTAB_H__ */
-- 
1.7.10.4


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


[Xen-devel] [PATCH 04/12] xen: remove scratch frames for ballooned pages and m2p override

2015-01-06 Thread David Vrabel
The scratch frame mappings for ballooned pages and the m2p override
are broken.  Remove them in preparation for replacing them with
simpler mechanisms that works.

The scratch pages did not ensure that the page was not in use.  In
particular, the foreign page could still be in use by hardware.  If
the guest reused the frame the hardware could read or write that
frame.

The m2p override did not handle the same frame being granted by two
different grant references.  Trying an M2P override lookup in this
case is impossible.

Signed-off-by: David Vrabel david.vra...@citrix.com
---
 arch/x86/include/asm/xen/page.h |   18 +--
 arch/x86/xen/p2m.c  |  254 ++-
 drivers/xen/balloon.c   |   86 +
 3 files changed, 14 insertions(+), 344 deletions(-)

diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index e9f52fe..358dcd3 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -57,7 +57,6 @@ extern int set_foreign_p2m_mapping(struct 
gnttab_map_grant_ref *map_ops,
 extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
 struct gnttab_unmap_grant_ref *kunmap_ops,
 struct page **pages, unsigned int count);
-extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long 
pfn);
 
 /*
  * Helper functions to write or read unsigned long values to/from
@@ -154,21 +153,12 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn)
return mfn;
 
pfn = mfn_to_pfn_no_overrides(mfn);
-   if (__pfn_to_mfn(pfn) != mfn) {
-   /*
-* If this appears to be a foreign mfn (because the pfn
-* doesn't map back to the mfn), then check the local override
-* table to see if there's a better pfn to use.
-*
-* m2p_find_override_pfn returns ~0 if it doesn't find anything.
-*/
-   pfn = m2p_find_override_pfn(mfn, ~0);
-   }
+   if (__pfn_to_mfn(pfn) != mfn)
+   pfn = ~0;
 
/*
-* pfn is ~0 if there are no entries in the m2p for mfn or if the
-* entry doesn't map back to the mfn and m2p_override doesn't have a
-* valid entry for it.
+* pfn is ~0 if there are no entries in the m2p for mfn or the
+* entry doesn't map back to the mfn.
 */
if (pfn == ~0  __pfn_to_mfn(mfn) == IDENTITY_FRAME(mfn))
pfn = mfn;
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 9fd5f70..8f34ed4 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -84,8 +84,6 @@
 
 #define PMDS_PER_MID_PAGE  (P2M_MID_PER_PAGE / PTRS_PER_PTE)
 
-static void __init m2p_override_init(void);
-
 unsigned long *xen_p2m_addr __read_mostly;
 EXPORT_SYMBOL_GPL(xen_p2m_addr);
 unsigned long xen_p2m_size __read_mostly;
@@ -399,8 +397,6 @@ void __init xen_vmalloc_p2m_tree(void)
xen_p2m_size = xen_max_p2m_pfn;
 
xen_inv_extra_mem();
-
-   m2p_override_init();
 }
 
 unsigned long get_phys_to_machine(unsigned long pfn)
@@ -652,100 +648,21 @@ bool set_phys_to_machine(unsigned long pfn, unsigned 
long mfn)
return true;
 }
 
-#define M2P_OVERRIDE_HASH_SHIFT10
-#define M2P_OVERRIDE_HASH  (1  M2P_OVERRIDE_HASH_SHIFT)
-
-static struct list_head *m2p_overrides;
-static DEFINE_SPINLOCK(m2p_override_lock);
-
-static void __init m2p_override_init(void)
-{
-   unsigned i;
-
-   m2p_overrides = alloc_bootmem_align(
-   sizeof(*m2p_overrides) * M2P_OVERRIDE_HASH,
-   sizeof(unsigned long));
-
-   for (i = 0; i  M2P_OVERRIDE_HASH; i++)
-   INIT_LIST_HEAD(m2p_overrides[i]);
-}
-
-static unsigned long mfn_hash(unsigned long mfn)
-{
-   return hash_long(mfn, M2P_OVERRIDE_HASH_SHIFT);
-}
-
-/* Add an MFN override for a particular page */
-static int m2p_add_override(unsigned long mfn, struct page *page,
-   struct gnttab_map_grant_ref *kmap_op)
-{
-   unsigned long flags;
-   unsigned long pfn;
-   unsigned long uninitialized_var(address);
-   unsigned level;
-   pte_t *ptep = NULL;
-
-   pfn = page_to_pfn(page);
-   if (!PageHighMem(page)) {
-   address = (unsigned long)__va(pfn  PAGE_SHIFT);
-   ptep = lookup_address(address, level);
-   if (WARN(ptep == NULL || level != PG_LEVEL_4K,
-m2p_add_override: pfn %lx not mapped, pfn))
-   return -EINVAL;
-   }
-
-   if (kmap_op != NULL) {
-   if (!PageHighMem(page)) {
-   struct multicall_space mcs =
-   xen_mc_entry(sizeof(*kmap_op));
-
-   MULTI_grant_table_op(mcs.mc,
-   GNTTABOP_map_grant_ref, kmap_op, 1);
-

[Xen-devel] [PATCH 07/12] xen-netback: use foreign page information from the pages themselves

2015-01-06 Thread David Vrabel
From: Jenny Herbert jenny.herb...@citrix.com

Use the foreign page flag in netback to get the domid and grant ref
needed for the grant copy.  This signficiantly simplifies the netback
code and makes netback work with foreign pages from other backends
(e.g., blkback).

This allows blkback to use iSCSI disks provided by domUs running on
the same host.

Signed-off-by: Jenny Herbert jennifer.herb...@citrix.com
Signed-off-by: David Vrabel david.vra...@citrix.com
---
 drivers/net/xen-netback/netback.c |   97 +++--
 1 file changed, 6 insertions(+), 91 deletions(-)

diff --git a/drivers/net/xen-netback/netback.c 
b/drivers/net/xen-netback/netback.c
index 6441318..997088b 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -314,9 +314,7 @@ static struct xenvif_rx_meta *get_next_rx_buffer(struct 
xenvif_queue *queue,
 static void xenvif_gop_frag_copy(struct xenvif_queue *queue, struct sk_buff 
*skb,
 struct netrx_pending_operations *npo,
 struct page *page, unsigned long size,
-unsigned long offset, int *head,
-struct xenvif_queue *foreign_queue,
-grant_ref_t foreign_gref)
+unsigned long offset, int *head)
 {
struct gnttab_copy *copy_gop;
struct xenvif_rx_meta *meta;
@@ -361,9 +359,9 @@ static void xenvif_gop_frag_copy(struct xenvif_queue 
*queue, struct sk_buff *skb
copy_gop-flags = GNTCOPY_dest_gref;
copy_gop-len = bytes;
 
-   if (foreign_queue) {
-   copy_gop-source.domid = foreign_queue-vif-domid;
-   copy_gop-source.u.ref = foreign_gref;
+   if (PageForeign(page)) {
+   get_page_grant_ref(page, copy_gop-source.domid,
+  copy_gop-source.u.ref);
copy_gop-flags |= GNTCOPY_source_gref;
} else {
copy_gop-source.domid = DOMID_SELF;
@@ -406,35 +404,6 @@ static void xenvif_gop_frag_copy(struct xenvif_queue 
*queue, struct sk_buff *skb
 }
 
 /*
- * Find the grant ref for a given frag in a chain of struct ubuf_info's
- * skb: the skb itself
- * i: the frag's number
- * ubuf: a pointer to an element in the chain. It should not be NULL
- *
- * Returns a pointer to the element in the chain where the page were found. If
- * not found, returns NULL.
- * See the definition of callback_struct in common.h for more details about
- * the chain.
- */
-static const struct ubuf_info *xenvif_find_gref(const struct sk_buff *const 
skb,
-   const int i,
-   const struct ubuf_info *ubuf)
-{
-   struct xenvif_queue *foreign_queue = ubuf_to_queue(ubuf);
-
-   do {
-   u16 pending_idx = ubuf-desc;
-
-   if (skb_shinfo(skb)-frags[i].page.p ==
-   foreign_queue-mmap_pages[pending_idx])
-   break;
-   ubuf = (struct ubuf_info *) ubuf-ctx;
-   } while (ubuf);
-
-   return ubuf;
-}
-
-/*
  * Prepare an SKB to be transmitted to the frontend.
  *
  * This function is responsible for allocating grant operations, meta
@@ -459,8 +428,6 @@ static int xenvif_gop_skb(struct sk_buff *skb,
int head = 1;
int old_meta_prod;
int gso_type;
-   const struct ubuf_info *ubuf = skb_shinfo(skb)-destructor_arg;
-   const struct ubuf_info *const head_ubuf = ubuf;
 
old_meta_prod = npo-meta_prod;
 
@@ -507,68 +474,16 @@ static int xenvif_gop_skb(struct sk_buff *skb,
len = skb_tail_pointer(skb) - data;
 
xenvif_gop_frag_copy(queue, skb, npo,
-virt_to_page(data), len, offset, head,
-NULL,
-0);
+virt_to_page(data), len, offset, head);
data += len;
}
 
for (i = 0; i  nr_frags; i++) {
-   /* This variable also signals whether foreign_gref has a real
-* value or not.
-*/
-   struct xenvif_queue *foreign_queue = NULL;
-   grant_ref_t foreign_gref;
-
-   if ((skb_shinfo(skb)-tx_flags  SKBTX_DEV_ZEROCOPY) 
-   (ubuf-callback == xenvif_zerocopy_callback)) {
-   const struct ubuf_info *const startpoint = ubuf;
-
-   /* Ideally ubuf points to the chain element which
-* belongs to this frag. Or if frags were removed from
-* the beginning, then shortly before it.
-*/
-   ubuf = xenvif_find_gref(skb, i, ubuf);
-
-   /* 

[Xen-devel] [RFC PATCH 00/12] xen: fix many long-standing grant mapping bugs

2015-01-06 Thread David Vrabel
This series fixes a number of long-standing bugs in the handling of
grant maps.  Refer to the following for all the details.

  http://xenbits.xen.org/people/dvrabel/grant-improvements-B.pdf

In summary, the important uses that this enables are:

1. Block backends can use networked storage safely.

2. Block backends can use network storage provided by other guests on
   the same host.

3. User space block backends can use direct I/O or asynchronous I/O.

The first two patches are the core MM changes necessary.  I shall be
sending these to the MM maintainers seperately.

Patches #3 and #4 remove existing (broken) mechanisms.  This does
temporarily break some previously working use cases, but it does make
the subsequent additions much easier to review.

As a happy side effect, performance is also likely to be improved in
some areas (but I've not got any measurements yet).  User space
backends using grant mapping should see some good improvements from
reduced overheads and better unmap batching.  VIF to VIF network
traffic may also see a small improvement.

This is RFC because:

- It needs more testing.
- I've not checked what changes (if any) are needed for ARM.

Finally, thanks to Jenny who did much of the implementation.

David


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


[Xen-devel] [PATCH 03/12] xen/grant-table: pre-populate kernel unmap ops for xen_gnttab_unmap_refs()

2015-01-06 Thread David Vrabel
When unmapping grants, instead of converting the kernel map ops to
unmap ops on the fly, pre-populate the set of unmap ops.

This allows the grant unmap for the kernel mappings to be trivially
batched in the future.

Signed-off-by: David Vrabel david.vra...@citrix.com
---
 arch/arm/include/asm/xen/page.h |2 +-
 arch/arm/xen/p2m.c  |2 +-
 arch/x86/include/asm/xen/page.h |2 +-
 arch/x86/xen/p2m.c  |   21 ++---
 drivers/xen/gntdev.c|   26 ++
 drivers/xen/grant-table.c   |4 ++--
 include/xen/grant_table.h   |2 +-
 7 files changed, 34 insertions(+), 25 deletions(-)

diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
index 68c739b..2f7e6ff 100644
--- a/arch/arm/include/asm/xen/page.h
+++ b/arch/arm/include/asm/xen/page.h
@@ -92,7 +92,7 @@ extern int set_foreign_p2m_mapping(struct 
gnttab_map_grant_ref *map_ops,
   struct page **pages, unsigned int count);
 
 extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
-struct gnttab_map_grant_ref *kmap_ops,
+struct gnttab_unmap_grant_ref *kunmap_ops,
 struct page **pages, unsigned int count);
 
 bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
index 0548577..cb7a14c 100644
--- a/arch/arm/xen/p2m.c
+++ b/arch/arm/xen/p2m.c
@@ -102,7 +102,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref 
*map_ops,
 EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping);
 
 int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
- struct gnttab_map_grant_ref *kmap_ops,
+ struct gnttab_unmap_grant_ref *kunmap_ops,
  struct page **pages, unsigned int count)
 {
int i;
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index 5eea099..e9f52fe 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -55,7 +55,7 @@ extern int set_foreign_p2m_mapping(struct 
gnttab_map_grant_ref *map_ops,
   struct gnttab_map_grant_ref *kmap_ops,
   struct page **pages, unsigned int count);
 extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
-struct gnttab_map_grant_ref *kmap_ops,
+struct gnttab_unmap_grant_ref *kunmap_ops,
 struct page **pages, unsigned int count);
 extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long 
pfn);
 
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index edbc7a6..9fd5f70 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -816,7 +816,7 @@ static struct page *m2p_find_override(unsigned long mfn)
 }
 
 static int m2p_remove_override(struct page *page,
-  struct gnttab_map_grant_ref *kmap_op,
+  struct gnttab_unmap_grant_ref *kunmap_op,
   unsigned long mfn)
 {
unsigned long flags;
@@ -840,7 +840,7 @@ static int m2p_remove_override(struct page *page,
list_del(page-lru);
spin_unlock_irqrestore(m2p_override_lock, flags);
 
-   if (kmap_op != NULL) {
+   if (kunmap_op != NULL) {
if (!PageHighMem(page)) {
struct multicall_space mcs;
struct gnttab_unmap_and_replace *unmap_op;
@@ -855,13 +855,13 @@ static int m2p_remove_override(struct page *page,
 * issued. In this case handle is going to -1 because
 * it hasn't been modified yet.
 */
-   if (kmap_op-handle == -1)
+   if (kunmap_op-handle == -1)
xen_mc_flush();
/*
 * Now if kmap_op-handle is negative it means that the
 * hypercall actually returned an error.
 */
-   if (kmap_op-handle == GNTST_general_error) {
+   if (kunmap_op-handle == GNTST_general_error) {
pr_warn(m2p_remove_override: pfn %lx mfn %lx, 
failed to modify kernel mappings,
pfn, mfn);
put_balloon_scratch_page();
@@ -873,9 +873,9 @@ static int m2p_remove_override(struct page *page,
mcs = __xen_mc_entry(
sizeof(struct gnttab_unmap_and_replace));
unmap_op = mcs.args;
-   unmap_op-host_addr = kmap_op-host_addr;
+   unmap_op-host_addr = kunmap_op-host_addr;
  

Re: [Xen-devel] [PATCH] xen-netback: fixing the propagation of the transmit shaper timeout

2015-01-06 Thread David Miller
From: Ian Campbell ian.campb...@citrix.com
Date: Tue, 6 Jan 2015 15:54:07 +

 On Tue, 2015-01-06 at 16:44 +0100, Imre Palik wrote:
 From: Palik, Imre im...@amazon.de
 
 Since e9ce7cb6b107 (xen-netback: Factor queue-specific data into queue 
 struct),
 the transimt shaper timeout is always set to 0.  The value the user sets via
 xenbus is never propagated to the transmit shaper.
 
 This patch fixes the issue.
 
 Cc: Anthony Liguori aligu...@amazon.com
 Signed-off-by: Imre Palik im...@amazon.de
 
 Acked-by: Ian Campbell ian.campb...@citrix.com

Applied and queued up for -stable, thanks.

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


[Xen-devel] [PATCH 12/12] xen/gntdev: provide a set of pages for each VMA

2015-01-06 Thread David Vrabel
From: Jenny Herbert jennifer.herb...@citrix.com

For each VMA for grant maps, provide the correct array of pages so
get_user_pages() on foreign mappings works in PV guests.

Signed-off-by: Jenny Herbert jennifer.herb...@citrix.com
Signed-off-by: David Vrabel david.vra...@citrix.com
---
 drivers/xen/gntdev.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 5d73fe8..09e7863 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -870,6 +870,8 @@ static int gntdev_mmap(struct file *flip, struct 
vm_area_struct *vma)
vma-vm_end - vma-vm_start,
set_grant_ptes_as_special, NULL);
}
+
+   vma-pages = map-pages;
}
 
return 0;
-- 
1.7.10.4


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


Re: [Xen-devel] [PATCH] README, xen/Makefile: Update to Xen 4.5.0

2015-01-06 Thread Sander Eikelenboom

Tuesday, January 6, 2015, 7:21:58 PM, you wrote:

 On Tue, Jan 06, 2015 at 06:06:23PM +, Ian Jackson wrote:
 Konrad Rzeszutek Wilk writes ([Xen-devel] [PATCH] README, xen/Makefile: 
 Update to Xen 4.5.0):
  -The 4.3 release offers a number of improvements, including NUMA
  -scheduling affinity, openvswitch integration, and defaulting to
  -qemu-xen rather than qemu-traditional for non-stubdom guests.
  -(qemu-xen is kept very close to the upstream project.)  We also have a
  -number of updates to vTPM, and improvements to XSM and Flask to allow
  -greater disaggregation.  Additionally, 4.3 contains a basic version of
  -Xen for the new ARM server architecture, both 32- and 64-bit.  And as
  -always, there are a number of performance, stability, and security
  +The 4.5 release offers a number of improvements: including shedding
 
 Should read
   +The 4.5 release offers a number of improvements, including: shedding
 (note two punctuation changes) and the list items should all be
 separated with semicolons IMO.


 Thank you for your update.

 I've incorporated feedback from all folks I hope. Would this be satisfactory?

From 89041667dfdc298dbe0f17a1f66a748a1a13089f Mon Sep 17 00:00:00 2001
 From: Konrad Rzeszutek Wilk konrad.w...@oracle.com
 Date: Tue, 6 Jan 2015 12:03:10 -0500
 Subject: [PATCH] README, xen/Makefile: Update to Xen 4.5.0

 Expand the README file to give a brief view of what went in
 Xen 4.5.0. Also change the Makefile to not use the '-rc'
 postfix.

 Signed-off-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com
 ---
  README   | 45 -
  xen/Makefile |  2 +-
  2 files changed, 33 insertions(+), 14 deletions(-)

 diff --git a/README b/README
 index 412607a..641bb23 100644
 --- a/README
 +++ b/README
 @@ -1,9 +1,9 @@
  #
 -__  ___  ___ _  
 -\ \/ /___ _ __   | || |  | ___|   _   _ _ __  ___| |_ __ _| |__ | | ___ 
 - \  // _ \ '_ \  | || |_ |___ \ _| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
 - /  \  __/ | | | |__   _| ___) |_| |_| | | | \__ \ || (_| | |_) | |  __/
 -/_/\_\___|_| |_||_|(_)/   \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
 +__  ___  _   ___
 +\ \/ /___ _ __   | || |  | ___| / _ \
 + \  // _ \ '_ \  | || |_ |___ \| | | |
 + /  \  __/ | | | |__   _| ___) | |_| |
 +/_/\_\___|_| |_||_|(_)(_)___/
  
  #
  
 @@ -19,14 +19,33 @@ is freely-distributable Open Source software, released 
 under the GNU
  GPL. Since its initial public release, Xen has grown a large
  development community, spearheaded by xen.org (http://www.xen.org).

Shouldn't this be Xen-project and http://www.xenproject.org;, since the 
transition 
to the Linux foundation ? 
(there are a lot more in-tree places where this could/should be changed for 4.6)

--
Sander
  
 -The 4.3 release offers a number of improvements, including NUMA
 -scheduling affinity, openvswitch integration, and defaulting to
 -qemu-xen rather than qemu-traditional for non-stubdom guests.
 -(qemu-xen is kept very close to the upstream project.)  We also have a
 -number of updates to vTPM, and improvements to XSM and Flask to allow
 -greater disaggregation.  Additionally, 4.3 contains a basic version of
 -Xen for the new ARM server architecture, both 32- and 64-bit.  And as
 -always, there are a number of performance, stability, and security
 +The 4.5 release offers a number of improvements, including: improvements for
 +large scale machines during bootup and for PCI passthrough; multiple IO-REQ
 +servers (many QEMUs for a guest); soft affinity for vCPUs (aka NUMA 
 affinity);
 +and API expansion for guest introspection. We also have number of updates for
 +CPU specific changes, such as: Broadwell Supervisor Mode Access Prevention;
 +Haswell Server Cache QoS Monitoring aka Intel Resource Director Technology;
 +further extensions to vAPIC (SandyBridge feature); fixes in AMD microcode
 +loading; Data Breaking Extensions and masking MSR support on AMD.
 +
 +On the experimental side we have added a new Real-Time Deferrable Server 
 Based
 +CPU Scheduler (rtds), and PVH initial domain (dom0) support for Intel CPUs.
 +
 +Additionally, 4.5 has a huge update to the ARM code, including support for:
 +up to 1TB in guests; up to 8 CPUs; Power State Coordination Interface (0.2)
 +to power up and down CPUs; UEFI booting; IOMMU support (SMMUv1); Super Page
 +(2MB) support; passthrough of MMIO regions to guests; and lower interrupt
 +latency.
 +
 +The toolstack has expanded to include support for: VM Generation ID (a 
 Windows
 +2012 Server requirement); Remus initial support (for high availability)
 +in libxl (since xend has been removed); libxenlight JSON support and 
 persistent 
 +configuration support, systemd support; and support in QEMU for expanding the
 +PCI hole.
 +
 +Lastly, we have removed the Python toolstack (xend).
 +
 +And as always, there 

Re: [Xen-devel] [RFC 2/2] x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader

2015-01-06 Thread Marcelo Tosatti
On Tue, Jan 06, 2015 at 10:26:22AM -0800, Andy Lutomirski wrote:
 On Tue, Jan 6, 2015 at 10:13 AM, Marcelo Tosatti mtosa...@redhat.com wrote:
  On Tue, Jan 06, 2015 at 08:56:40AM -0800, Andy Lutomirski wrote:
  On Jan 6, 2015 4:01 AM, Paolo Bonzini pbonz...@redhat.com wrote:
  
  
  
   On 06/01/2015 09:42, Paolo Bonzini wrote:
  Still confused.  So we can freeze all vCPUs in the host, then 
  update
  pvti 1, then resume vCPU 1, then update pvti 0?  In that case, we 
  have
  a problem, because vCPU 1 can observe pvti 0 mid-update, and KVM
  doesn't increment the version pre-update, and we can return 
  completely
  bogus results.
 Yes.
But then the getcpu test would fail (1-0).  Even if you have an ABA
situation (1-0-1), it's okay because the pvti that is fetched is the
one returned by the first getcpu.
  
   ... this case of partial update of pvti, which is caught by the version
   field, if of course different from the other (extremely unlikely) that
   Andy pointed out.  That is when the getcpus are done on the same vCPU,
   but the rdtsc is another.
  
   That one can be fixed by rdtscp, like
  
   do {
   // get a consistent (pvti, v, tsc) tuple
   do {
   cpu = get_cpu();
   pvti = get_pvti(cpu);
   v = pvti-version  ~1;
   // also acts as rmb();
   rdtsc_barrier();
   tsc = rdtscp(cpu1);
 
  Off-topic note: rdtscp doesn't need a barrier at all.  AIUI AMD
  specified it that way and both AMD and Intel implement it correctly.
  (rdtsc, on the other hand, definitely needs the barrier beforehand.)
 
   // control dependency, no need for rdtsc_barrier?
   } while(cpu != cpu1);
  
   // ... compute nanoseconds from pvti and tsc ...
   rmb();
   }   while(v != pvti-version);
 
  Still no good.  We can migrate a bunch of times so we see the same CPU
  all three times and *still* don't get a consistent read, unless we
  play nasty games with lots of version checks (I have a patch for that,
  but I don't like it very much).  The patch is here:
 
  https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/vdso_paranoiaid=a69754dc5ff33f5187162b5338854ad23dd7be8d
 
  but I don't like it.
 
  Thus far, I've been told unambiguously that a guest can't observe pvti
  while it's being written, and I think you're now telling me that this
  isn't true and that a guest *can* observe pvti while it's being
  written while the low bit of the version field is not set.  If so,
  this is rather strongly incompatible with the spec in the KVM docs.
 
  I don't suppose that you and Marcelo could agree on what the actual
  semantics that KVM provides are and could write it down in a way that
  people who haven't spent a long time staring at the request code
  understand?  And maybe you could even fix the implementation while
  you're at it if the implementation is, indeed, broken.  I have ugly
  patches to fix it here:
 
  https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/vdso_paranoiaid=3b718a050cba52563d831febc2e1ca184c02bac0
 
  but I'm not thrilled with them.
 
  --Andy
 
  I suppose that separating the version write from the rest of the pvclock
  structure is sufficient, as that would guarantee the writes are not
  reordered even with fast string REP MOVS.
 
  Thanks for catching this Andy!
 
 
 Don't you stil need:
 
 version++;
 write the rest;
 version++;
 
 with possible smp_wmb() in there to keep the compiler from messing around?

Correct. Could just as well follow the protocol and use odd/even, which 
is what your patch does.

What is the point with the new flags bit though?

 Also, if you do this, can you also make setting and clearing
 STABLE_BIT properly atomic across all vCPUs?  Or at least do something
 like setting it last and clearing it first on vPCU 0?

If the version seqlock works properly across vCPUs, why do you need
STABLE_BIT properly atomic ?

Please define what you mean by properly atomic.



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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Suriyan Ramasami
On Tue, Jan 6, 2015 at 10:51 AM, Lars Kurth lars.kurth@gmail.com wrote:

 On 6 Jan 2015, at 18:08, Suriyan Ramasami suriya...@gmail.com wrote:


 I shall try my hand at updating the information again. If this needs
 to be done (yesterday), then as a temporary solution we could just
 delete this information for now, and I shall work on it soon.

 Ideally it needs to be done by next Wed. If you have the content, you could 
 send it to me and I can fix the page

Thanks Lars for the offer. I just started editing the page, and looks
simple enough to get some content out there. I should have updated the
relevant information in a few hours from now. Please do help me in
fixing the page once its done (if it needs fixing)

Thanks!
- Suriyan

 Lars

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Lars Kurth

On 6 Jan 2015, at 18:08, Suriyan Ramasami suriya...@gmail.com wrote:

 
 I shall try my hand at updating the information again. If this needs
 to be done (yesterday), then as a temporary solution we could just
 delete this information for now, and I shall work on it soon.

Ideally it needs to be done by next Wed. If you have the content, you could 
send it to me and I can fix the page
Lars
___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [Xen-users] HVM PCI Passthrough: Code 12: Undersized PCI MMIO region?

2015-01-06 Thread Don Slutz
On 01/06/15 08:00, Pasi Kärkkäinen wrote:
 On Tue, Dec 02, 2014 at 10:08:35PM -0500, Stephen Oberholtzer wrote:
 All,

 
 Hello,
 
 Please bear with me.  I don't fully understand all of the mechanisms
 involved here, so this message contains a large quantity of data,
 including some links to even larger quantities of data.
 The short version is: I think something isn't reserving enough (GPFN)
 address space for MMIO.


...


 Now, I don't fully understand how this stuff all works, but here's
 what appears to be happening: Xen isn't reserving enough contiguous
 GPFN (virtual machine address space) for all of the devices on the
 virtual PCI bus -- in particular, for what is probably a big honkin'
 window into the card's onboard RAM.

 So my two questions are:
 (1) Is my guess correct?  Or at least close?

I think so.

 (2) What the heck do I do about it? I don't see any options in
 xl.cfg(5) for specifying the size of the MMIO region for the virtual
 PCI bus, or anything similar to that.


There is a new feature in xen 4.5 (soon to be released) that you can
add to the config file (xl.cfg):

   Memory layout
mmio_hole=MBYTES
Specifies the size the MMIO hole below 4GiB will be. Only valid for
device_model_version = qemu-xen.

Cannot be smaller than 256. Cannot be larger than 3840.

Known good large value is 3072.


Subject: [Xen-devel] Xen Project 4.5 RC4 is Ready Today; Test Day is
Wednesday
Date: Mon, 15 Dec 2014 14:33:33 -0500
From: Russ Pavlicek russell.pavli...@xenproject.org
To: xen-devel@lists.xen.org, xen-us...@lists.xen.org
xen-us...@lists.xen.org, xen-annou...@lists.xenproject.org,
xs-de...@lists.xenserver.org, mirageos-de...@lists.xenproject.org,
xen-...@lists.xen.org

Folks,

This Wednesday, December 17, is our fourth and FINAL Test Day
for the 4.5 release cycle (barring any changes which may result from
Wednesday's Test Day). Release Candidate 4 is available for
assessment today.

If you've held off testing the new release until it matures, delay no
longer!  Test and state your concerns now or the next release you
see could be the official one

Information about testing this release can be found here:
http://wiki.xenproject.org/wiki/Xen_4.5_RC4_test_instructions

To learn more about Test Days, including the scheduled date
for the final release, check out:
http://wiki.xenproject.org/wiki/Xen_Project_Test_Days

   -Don Slutz


 NOTE: If I assign 2048MB or less RAM to this VM, the VM crashes at
 bootup, and has a nasty tendency to take the host with it (lockup).

 -- 
 -- Stevie-O
 Real programmers use COPY CON PROGRAM.EXE

 
 
 -- Pasi
 
 
 ___
 Xen-users mailing list
 xen-us...@lists.xen.org
 http://lists.xen.org/xen-users
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel
 

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


[Xen-devel] [PATCH 11/12] xen/gntdev: mark userspace PTEs as special on x86 PV guests

2015-01-06 Thread David Vrabel
In an x86 PV guest, get_user_pages_fast() on a userspace address range
containing foreign mappings does not work correctly because the M2P
lookup of the MFN from a userspace PTE may return the wrong page.

Force get_user_pages_fast() to fail on such addresses by marking the PTEs
as special.

If Xen has XENFEAT_gnttab_map_avail_bits (available since at least
4.0), we can do so efficiently in the grant map hypercall.  Otherwise,
it needs to be done afterwards.  This is both inefficient and racy
(the mapping is visible to the task before we fixup the PTEs), but
will be fine for well-behaved applications that do not use the mapping
until after the mmap() system call returns.

Guests with XENFEAT_auto_translated_physmap (ARM and x86 HVM or PVH)
do not need this since get_user_pages() has always worked correctly
for them.

Signed-off-by: David Vrabel david.vra...@citrix.com
---
 drivers/xen/gntdev.c|   32 ++--
 include/xen/interface/features.h|6 ++
 include/xen/interface/grant_table.h |7 +++
 3 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index a740dce..5d73fe8 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -244,11 +244,24 @@ static int find_grant_ptes(pte_t *pte, pgtable_t token,
BUG_ON(pgnr = map-count);
pte_maddr = arbitrary_virt_to_machine(pte).maddr;
 
+   /*
+* Set the PTE as special to force get_user_pages_fast() fall
+* back to the slow path.  If this is not supported as part of
+* the grant map, it will be done afterwards.
+*/
+   if (xen_feature(XENFEAT_gnttab_map_avail_bits))
+   flags |= (1  _GNTMAP_guest_avail0);
+
gnttab_set_map_op(map-map_ops[pgnr], pte_maddr, flags,
  map-grants[pgnr].ref,
  map-grants[pgnr].domid);
-   gnttab_set_unmap_op(map-unmap_ops[pgnr], pte_maddr, flags,
-   -1 /* handle */);
+   return 0;
+}
+
+static int set_grant_ptes_as_special(pte_t *pte, pgtable_t token,
+unsigned long addr, void *data)
+{
+   set_pte_at(current-mm, addr, pte, pte_mkspecial(*pte));
return 0;
 }
 
@@ -842,6 +855,21 @@ static int gntdev_mmap(struct file *flip, struct 
vm_area_struct *vma)
if (err)
goto out_put_map;
}
+   } else {
+   /*
+* If the PTEs were not made special by the grant map
+* hypercall, do so here.
+*
+* This is racy since the mapping is already visible
+* to userspace but userspace should be well-behaved
+* enough to not touch it until the mmap() call
+* returns.
+*/
+   if (!xen_feature(XENFEAT_gnttab_map_avail_bits)) {
+   apply_to_page_range(vma-vm_mm, vma-vm_start,
+   vma-vm_end - vma-vm_start,
+   set_grant_ptes_as_special, NULL);
+   }
}
 
return 0;
diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h
index 131a6cc..6ad3d11 100644
--- a/include/xen/interface/features.h
+++ b/include/xen/interface/features.h
@@ -41,6 +41,12 @@
 /* x86: Does this Xen host support the MMU_PT_UPDATE_PRESERVE_AD hypercall? */
 #define XENFEAT_mmu_pt_update_preserve_ad  5
 
+/*
+ * If set, GNTTABOP_map_grant_ref honors flags to be placed into guest kernel
+ * available pte bits.
+ */
+#define XENFEAT_gnttab_map_avail_bits  7
+
 /* x86: Does this Xen host support the HVM callback vector type? */
 #define XENFEAT_hvm_callback_vector8
 
diff --git a/include/xen/interface/grant_table.h 
b/include/xen/interface/grant_table.h
index bcce564..56806bc 100644
--- a/include/xen/interface/grant_table.h
+++ b/include/xen/interface/grant_table.h
@@ -526,6 +526,13 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_cache_flush);
 #define GNTMAP_contains_pte (1_GNTMAP_contains_pte)
 
 /*
+ * Bits to be placed in guest kernel available PTE bits (architecture
+ * dependent; only supported when XENFEAT_gnttab_map_avail_bits is set).
+ */
+#define _GNTMAP_guest_avail0(16)
+#define GNTMAP_guest_avail_mask ((uint32_t)~0  _GNTMAP_guest_avail0)
+
+/*
  * Values for error status returns. All errors are -ve.
  */
 #define GNTST_okay (0)  /* Normal return.*/
-- 
1.7.10.4


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


Re: [Xen-devel] [RFC 2/2] x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader

2015-01-06 Thread Marcelo Tosatti
On Tue, Jan 06, 2015 at 11:49:09AM -0800, Andy Lutomirski wrote:
  What is the point with the new flags bit though?
 
 To try to work around the problem on old hosts.  I'm not at all
 convinced that this is worthwhile or that it helps, though.

Don't think so. Just fix the host bug.

  Also, if you do this, can you also make setting and clearing
  STABLE_BIT properly atomic across all vCPUs?  Or at least do something
  like setting it last and clearing it first on vPCU 0?
 
  If the version seqlock works properly across vCPUs, why do you need
  STABLE_BIT properly atomic ?
 
  Please define what you mean by properly atomic.
 
 
 I'd like to be able to rely using vCPU 0's pvti even from other vCPUs
 in the vdso if the stable bit is set.  That means that the host should
 avoid doing things like migrating the guest, clearing the stable bit
 for vCPU 1, resuming vCPU 1, and waiting long enough to clear the
 stable bit for vCPU 0 that vCPU 1's vdso code could see invalid data
 and return a bad timestamp.
 
 Maybe this scenario is impossible, but getting rid of any getcpu-like
 operation in the vdso has really nice benefits. 

You can park every vCPU in host while updating vCPU-0's timestamp.

See kvm_gen_update_masterclock:

+   /* no guest entries from this point */
+   pvclock_update_vm_gtod_copy(kvm);

- touch guest memory

+   /* guest entries allowed */
+   kvm_for_each_vcpu(i, vcpu, kvm)
+   clear_bit(KVM_REQ_MCLOCK_INPROGRESS, vcpu-requests);

  It's faster and it
 lets us guarantee that the vdso's pvti data fits in a single page.
 The latter means that we can easily make it work like the hpet
 mapping, which gets us 32-bit support and will *finally* let us turn
 off user access to the fixmap if vsyscall=none.
 
 (We can, of course, still do this if the pvti data needs to be an
 array, but it's messier.)
 
 --Andy

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


[Xen-devel] [xen-unstable test] 33183: trouble: broken/fail/pass

2015-01-06 Thread xen . org
flight 33183 xen-unstable real [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33183/

Failures and problems with tests :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-armhf-armhf-libvirt  3 host-install(3) broken REGR. vs. 32877
 test-amd64-amd64-libvirt  3 host-install(3) broken REGR. vs. 32877
 test-amd64-i386-libvirt   3 host-install(3) broken REGR. vs. 32877
 test-amd64-i386-rhel6hvm-amd  3 host-install(3) broken REGR. vs. 33112
 test-amd64-i386-rhel6hvm-intel  3 host-install(3)   broken REGR. vs. 33112
 test-amd64-i386-qemut-rhel6hvm-intel  3 host-install(3) broken REGR. vs. 33112
 test-amd64-i386-xl-qemuu-debianhvm-amd64 3 host-install(3) broken REGR. vs. 
33112
 test-amd64-amd64-xl-winxpsp3  3 host-install(3) broken REGR. vs. 33112
 test-amd64-i386-xl-qemuu-ovmf-amd64  3 host-install(3)  broken REGR. vs. 33112
 test-amd64-amd64-xl-qemuu-ovmf-amd64  3 host-install(3) broken REGR. vs. 33112
 test-amd64-i386-xl-win7-amd64  3 host-install(3)broken REGR. vs. 33112
 test-amd64-i386-pair 4 host-install/dst_host(4) broken REGR. vs. 33112
 test-amd64-i386-pair 3 host-install/src_host(3) broken REGR. vs. 33112
 test-amd64-amd64-xl-qemut-winxpsp3  3 host-install(3)   broken REGR. vs. 33112
 test-amd64-amd64-xl-qemut-win7-amd64  3 host-install(3) broken REGR. vs. 33112
 test-amd64-amd64-xl-qemuu-winxpsp3  3 host-install(3)   broken REGR. vs. 33112

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-pcipt-intel  3 host-install(3)  broken REGR. vs. 33112
 test-amd64-amd64-xl-sedf  3 host-install(3) broken REGR. vs. 33112
 test-amd64-i386-xl-multivcpu  3 host-install(3)  broken like 32646

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl  10 migrate-support-checkfail   never pass
 test-amd64-amd64-xl-pvh-amd   9 guest-start  fail   never pass
 test-amd64-amd64-xl-pvh-intel  9 guest-start  fail  never pass
 test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop  fail never pass
 test-amd64-i386-xl-qemut-winxpsp3 14 guest-stopfail never pass
 test-amd64-i386-xl-qemuu-winxpsp3 14 guest-stopfail never pass
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass
 test-amd64-amd64-xl-win7-amd64 14 guest-stop   fail never pass
 test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop  fail never pass
 test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop   fail never pass
 test-amd64-i386-xl-winxpsp3  14 guest-stop   fail   never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass

version targeted for testing:
 xen  d3c151fd3a4365fc6107198bfc975807d40d157d
baseline version:
 xen  36174af3fbeb1b662c0eadbfa193e77f68cc955b


People who touched revisions under test:
  Andrew Cooper andrew.coop...@citrix.com
  Ian Campbell ian.campb...@citrix.com
  Ian Campbell i...@hellion.org.uk
  Ian Jackson ian.jack...@eu.citrix.com
  Ian Jackson i...@mariner.uk.xensource.com
  Jan Beulich jbeul...@suse.com
  Julien Grall julien.gr...@linaro.org
  Konrad Rzeszutek Wilk konrad.w...@oracle.com
  Mihai Donțu mdo...@bitdefender.com
  Robert Hu robert...@intel.com
  Răzvan Cojocaru rcojoc...@bitdefender.com
  Stefano Stabellini stefano.stabell...@eu.citrix.com
  Wei Liu wei.l...@citrix.com
  Yang Hongyang yan...@cn.fujitsu.com


jobs:
 build-amd64  pass
 build-armhf  pass
 build-i386   pass
 build-amd64-libvirt  pass
 build-armhf-libvirt  pass
 build-i386-libvirt   pass
 build-amd64-oldkern  pass
 build-i386-oldkern   pass
 build-amd64-pvopspass
 build-armhf-pvopspass
 build-i386-pvops pass
 build-amd64-rumpuserxen  pass
 build-i386-rumpuserxen   pass
 test-amd64-amd64-xl  pass
 test-armhf-armhf-xl  pass
 test-amd64-i386-xl   pass
 test-amd64-amd64-xl-pvh-amd  fail
 test-amd64-i386-rhel6hvm-amd 

Re: [Xen-devel] [PATCH 4/4] tools: add total/local memory bandwith monitoring

2015-01-06 Thread Chao Peng
On Tue, Jan 06, 2015 at 10:29:18AM +, Andrew Cooper wrote:
 On 06/01/15 10:09, Chao Peng wrote:
  On Mon, Jan 05, 2015 at 12:39:42PM +, Wei Liu wrote:
  On Tue, Dec 23, 2014 at 04:54:39PM +0800, Chao Peng wrote:
  [...]
  +static int libxl__psr_cmt_get_mem_bandwidth(libxl__gc *gc, uint32_t 
  domid,
  +xc_psr_cmt_type type, uint32_t socketid, uint32_t *bandwidth)
  +{
  +uint64_t sample1, sample2;
  +uint32_t upscaling_factor;
  +int rc;
  +
  +rc = libxl__psr_cmt_get_l3_monitoring_data(gc, domid,
  +type, socketid, sample1);
  +if (rc  0)
  +return ERROR_FAIL;
  +
  +usleep(1);
  +
  +rc = libxl__psr_cmt_get_l3_monitoring_data(gc, domid,
  +type, socketid, sample2);
  +if (rc  0)
  +   return ERROR_FAIL;
  +
  +if (sample2  sample1) {
  + LOGE(ERROR, event counter overflowed between two samplings);
  + return ERROR_FAIL;
  +}
  +
  What's the likelihood of counter overflows? Can we handle this more
  gracefully? Say, retry (with maximum retry cap) when counter overflows?
  The likelihood is very small here. Hardware guarantees the counter will
  not overflow in one second even under maximum platform bandwidth conditions.
  And we only sleep 0.01 second here. 
 
  I'd like to adopt your suggestion to retry another time once that happens.
  But only one retry and it should correct the overflow.
 
  Thanks,
  Chao
 
 You have no possible way of guaranteeing that the actual elapsed time
 between the two samples is less than 1 second.  On a very heavily loaded
 system, even regular task scheduling could cause an actual elapsed time
 of more than one second in that snippet of code.
Yes, it's true. So the retry cap Wei suggested will be applied.
Thanks.
Chao
 
 
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel

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


[Xen-devel] [xen-4.2-testing test] 33184: regressions - trouble: blocked/broken/fail/pass

2015-01-06 Thread xen . org
flight 33184 xen-4.2-testing real [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33184/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl   2 hosts-allocate   running [st=running!]
 test-amd64-amd64-pv   2 hosts-allocate   running [st=running!]
 test-amd64-amd64-xl-qemuu-debianhvm-amd64 3 host-install(3) broken REGR. vs. 
32291
 test-amd64-i386-qemut-rhel6hvm-amd  3 host-install(3)   broken REGR. vs. 32291
 test-amd64-i386-qemuu-freebsd10-amd64 3 host-install(3) broken REGR. vs. 32291
 test-amd64-i386-qemuu-freebsd10-i386  3 host-install(3) broken REGR. vs. 32291
 test-amd64-i386-xend-qemut-winxpsp3  3 host-install(3)  broken REGR. vs. 32291
 test-i386-i386-xl-qemut-winxpsp3  3 host-install(3) broken REGR. vs. 32291
 test-amd64-amd64-xl-qemut-win7-amd64  3 host-install(3) broken REGR. vs. 32291
 test-amd64-i386-xend-winxpsp3  3 host-install(3)broken REGR. vs. 32291
 test-amd64-amd64-xl-win7-amd64  3 host-install(3)   broken REGR. vs. 32291
 test-amd64-amd64-pair3 host-install/src_host(3) broken REGR. vs. 32291
 test-amd64-amd64-pair4 host-install/dst_host(4) broken REGR. vs. 32291
 test-amd64-i386-pair 4 host-install/dst_host(4) broken REGR. vs. 32291
 test-amd64-i386-pair 3 host-install/src_host(3) broken REGR. vs. 32291
 test-amd64-i386-xl   15 guest-localmigrate/x10fail REGR. vs. 32291

Regressions which are regarded as allowable (not blocking):
 test-amd64-amd64-xl-sedf-pin  3 host-install(3) broken REGR. vs. 32291
 test-amd64-i386-qemut-rhel6hvm-intel  3 host-install(3)  broken like 32162

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-rumpuserxen-amd64  1 build-check(1)   blocked n/a
 test-i386-i386-rumpuserxen-i386  1 build-check(1)   blocked  n/a
 test-amd64-i386-rumpuserxen-i386  1 build-check(1)   blocked  n/a
 build-amd64-rumpuserxen   5 rumpuserxen-buildfail   never pass
 build-i386-rumpuserxen5 rumpuserxen-buildfail   never pass
 test-i386-i386-libvirt9 guest-start  fail   never pass
 test-amd64-i386-xl-qemuu-ovmf-amd64  7 debian-hvm-install  fail never pass
 test-amd64-amd64-libvirt  9 guest-start  fail   never pass
 test-amd64-amd64-xl-qemuu-ovmf-amd64  7 debian-hvm-install fail never pass
 test-amd64-i386-libvirt   9 guest-start  fail   never pass
 test-amd64-amd64-xl-pcipt-intel  9 guest-start fail never pass
 test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop  fail never pass
 test-amd64-i386-xl-win7-amd64 14 guest-stop   fail  never pass
 test-amd64-amd64-xl-winxpsp3 14 guest-stop   fail   never pass
 test-i386-i386-xl-qemuu-winxpsp3 14 guest-stop fail never pass
 test-amd64-i386-xl-qemut-win7-amd64 14 guest-stop  fail never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass
 test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop   fail never pass
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass
 test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop   fail never pass
 test-i386-i386-xl-winxpsp3   14 guest-stop   fail   never pass
 test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop   fail never pass

version targeted for testing:
 xen  95af3f09eeef089e0100a8518f7ca75206e33c7c
baseline version:
 xen  353de6b221c2d0fb59edfceb1f535357e4d84825


People who touched revisions under test:
  Mihai Donțu mdo...@bitdefender.com
  Răzvan Cojocaru rcojoc...@bitdefender.com


jobs:
 build-amd64  pass
 build-i386   pass
 build-amd64-libvirt  pass
 build-i386-libvirt   pass
 build-amd64-pvopspass
 build-i386-pvops pass
 build-amd64-rumpuserxen  fail
 build-i386-rumpuserxen   fail
 test-amd64-amd64-xl  broken
 test-amd64-i386-xl   fail
 test-i386-i386-xlpass
 test-amd64-i386-rhel6hvm-amd pass
 test-amd64-i386-qemut-rhel6hvm-amd   broken
 test-amd64-i386-qemuu-rhel6hvm-amd   pass
 

[Xen-devel] xl only waits 33 seconds for ballooning to complete

2015-01-06 Thread Mike Latimer
Hi,

In a previous post (1), I mentioned issues seen while ballooning a large 
amount of memory. In the current code, the ballooning process only has 33 
seconds to complete, or the xl operation (i.e. domain create) will fail. When 
a lot of ballooning is required, or the host is very slow to balloon memory, 
this delay is not sufficient.

The code involved is tools/libxl/xl_cmdimpl.c:freemem. This function retries 3 
times, and each retry includes a 10 second delay in libxl_wait_for_free_memory 
and a 1 second delay in libxl_wait_for_memory_target.

Is there a better approach, which would account for ballooning operations that 
take a much longer time to complete?

The easiest option is to simply increase the retry count, but that would again 
leave us with a fixed window of time for an operation to complete. It seems 
like something that monitors the balloon process, and continues to wait if it 
is progressing, might be a better approach.

Any ideas?

Thanks,
Mike

1. http://lists.xen.org/archives/html/xen-devel/2014-12/msg01443.html


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


Re: [Xen-devel] dom0 as pvh boot problem

2015-01-06 Thread Elena Ufimtseva
On Mon, Jan 5, 2015 at 3:44 AM, Jan Beulich jbeul...@suse.com wrote:

  Elena Ufimtseva ufimts...@gmail.com 01/02/15 7:32 PM 
 The last successful command is the reading status register of second IOMMU
 unit:
 
 snip from iommu_enable_translation() in
 ./xen/drivers/passthrough/vtd/iommu.c
 
 746:sts = dmar_readl(iommu-reg, DMAR_GSTS_REG);
 747:dmar_writel(iommu-reg, DMAR_GCMD_REG, sts | DMA_GCMD_TE);
 
 /snip
 
 After dmar_writel for second iommu the machine hangs.

 That's rather odd - you say it doesn't even reach the IOMMU_WAIT_OP()
 right after that?


Thats odd, last tests I did show that it does complete the write to the
control register
of the second drhd, but I cannot say if it reaches IOMMU_WAIT_OP() as right
after this write it hangs.

I tried to enable iommu's in reverse order with the same result.



 That would suggest a fault or other abnormal condition
 raised by the translation enabling (i.e. some problem with the page tables,
 albeit that should then have been a problem for the first IOMMU already).


I wonder if such problem can be diagnosed without interrupt. Maybe
reflected in error logging event registers?

Yet an eventual fault can't be delivered at that point due to interrupts
 being
 disabled. Perhaps the VT-d maintainers (now Cc-ed) have some suggestion
 as to what's going on or how to diagnose.


I will try to figure out if machine hangs completely at this point.
Also checking the PCI topology for this machine and how it gets enumerated,
maybe it will shed some light.
Will report back soon.


 Jan




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


Re: [Xen-devel] [RFC 2/2] x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader

2015-01-06 Thread Andy Lutomirski
On Tue, Jan 6, 2015 at 10:45 AM, Marcelo Tosatti mtosa...@redhat.com wrote:
 On Tue, Jan 06, 2015 at 10:26:22AM -0800, Andy Lutomirski wrote:
 On Tue, Jan 6, 2015 at 10:13 AM, Marcelo Tosatti mtosa...@redhat.com wrote:
  On Tue, Jan 06, 2015 at 08:56:40AM -0800, Andy Lutomirski wrote:
  On Jan 6, 2015 4:01 AM, Paolo Bonzini pbonz...@redhat.com wrote:
  
  
  
   On 06/01/2015 09:42, Paolo Bonzini wrote:
  Still confused.  So we can freeze all vCPUs in the host, then 
  update
  pvti 1, then resume vCPU 1, then update pvti 0?  In that case, we 
  have
  a problem, because vCPU 1 can observe pvti 0 mid-update, and KVM
  doesn't increment the version pre-update, and we can return 
  completely
  bogus results.
 Yes.
But then the getcpu test would fail (1-0).  Even if you have an ABA
situation (1-0-1), it's okay because the pvti that is fetched is the
one returned by the first getcpu.
  
   ... this case of partial update of pvti, which is caught by the version
   field, if of course different from the other (extremely unlikely) that
   Andy pointed out.  That is when the getcpus are done on the same vCPU,
   but the rdtsc is another.
  
   That one can be fixed by rdtscp, like
  
   do {
   // get a consistent (pvti, v, tsc) tuple
   do {
   cpu = get_cpu();
   pvti = get_pvti(cpu);
   v = pvti-version  ~1;
   // also acts as rmb();
   rdtsc_barrier();
   tsc = rdtscp(cpu1);
 
  Off-topic note: rdtscp doesn't need a barrier at all.  AIUI AMD
  specified it that way and both AMD and Intel implement it correctly.
  (rdtsc, on the other hand, definitely needs the barrier beforehand.)
 
   // control dependency, no need for rdtsc_barrier?
   } while(cpu != cpu1);
  
   // ... compute nanoseconds from pvti and tsc ...
   rmb();
   }   while(v != pvti-version);
 
  Still no good.  We can migrate a bunch of times so we see the same CPU
  all three times and *still* don't get a consistent read, unless we
  play nasty games with lots of version checks (I have a patch for that,
  but I don't like it very much).  The patch is here:
 
  https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/vdso_paranoiaid=a69754dc5ff33f5187162b5338854ad23dd7be8d
 
  but I don't like it.
 
  Thus far, I've been told unambiguously that a guest can't observe pvti
  while it's being written, and I think you're now telling me that this
  isn't true and that a guest *can* observe pvti while it's being
  written while the low bit of the version field is not set.  If so,
  this is rather strongly incompatible with the spec in the KVM docs.
 
  I don't suppose that you and Marcelo could agree on what the actual
  semantics that KVM provides are and could write it down in a way that
  people who haven't spent a long time staring at the request code
  understand?  And maybe you could even fix the implementation while
  you're at it if the implementation is, indeed, broken.  I have ugly
  patches to fix it here:
 
  https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/vdso_paranoiaid=3b718a050cba52563d831febc2e1ca184c02bac0
 
  but I'm not thrilled with them.
 
  --Andy
 
  I suppose that separating the version write from the rest of the pvclock
  structure is sufficient, as that would guarantee the writes are not
  reordered even with fast string REP MOVS.
 
  Thanks for catching this Andy!
 

 Don't you stil need:

 version++;
 write the rest;
 version++;

 with possible smp_wmb() in there to keep the compiler from messing around?

 Correct. Could just as well follow the protocol and use odd/even, which
 is what your patch does.

 What is the point with the new flags bit though?

To try to work around the problem on old hosts.  I'm not at all
convinced that this is worthwhile or that it helps, though.


 Also, if you do this, can you also make setting and clearing
 STABLE_BIT properly atomic across all vCPUs?  Or at least do something
 like setting it last and clearing it first on vPCU 0?

 If the version seqlock works properly across vCPUs, why do you need
 STABLE_BIT properly atomic ?

 Please define what you mean by properly atomic.


I'd like to be able to rely using vCPU 0's pvti even from other vCPUs
in the vdso if the stable bit is set.  That means that the host should
avoid doing things like migrating the guest, clearing the stable bit
for vCPU 1, resuming vCPU 1, and waiting long enough to clear the
stable bit for vCPU 0 that vCPU 1's vdso code could see invalid data
and return a bad timestamp.

Maybe this scenario is impossible, but getting rid of any getcpu-like
operation in the vdso has really nice benefits.  It's faster and it
lets us guarantee that the vdso's pvti data fits in a single page.
The latter means that we can easily make it work like the hpet
mapping, which gets us 32-bit support and will *finally* let us turn
off user access to the fixmap if vsyscall=none.


Re: [Xen-devel] [OSSTEST PATCH 3/4] Add nested testcase of installing L2 guest VM

2015-01-06 Thread Pang, LongtaoX


 -Original Message-
 From: Wei Liu [mailto:wei.l...@citrix.com]
 Sent: Wednesday, January 07, 2015 12:52 AM
 To: Pang, LongtaoX
 Cc: Wei Liu; xen-devel@lists.xen.org; ian.jack...@eu.citrix.com;
 ian.campb...@citrix.com; Hu, Robert; Zheng, Di
 Subject: Re: [OSSTEST PATCH 3/4] Add nested testcase of installing L2 guest VM
 
 On Tue, Jan 06, 2015 at 03:28:43AM +, Pang, LongtaoX wrote:
 
 
   -Original Message-
   From: Wei Liu [mailto:wei.l...@citrix.com]
   Sent: Thursday, December 11, 2014 7:44 PM
   To: Pang, LongtaoX
   Cc: xen-devel@lists.xen.org; ian.jack...@eu.citrix.com;
   ian.campb...@citrix.com; wei.l...@citrix.com; Hu, Robert; Zheng, Di
   Subject: Re: [OSSTEST PATCH 3/4] Add nested testcase of installing
   L2 guest VM
  
   On Wed, Dec 10, 2014 at 04:07:39PM +0800, longtao.pang wrote:
From: longtao.pang longtaox.p...@intel.com
   
This patch is used for installing L2 guest VM inside L1 guest VM.
   
---
 sg-run-job|2 +
 ts-debian-install |  166
+
 2 files changed, 132 insertions(+), 36 deletions(-)
   
diff --git a/sg-run-job b/sg-run-job index e513bd1..85f7b22 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -292,6 +292,8 @@ proc need-hosts/test-nested {} {return host}
proc run-job/test-nested {} {
 run-ts . = ts-debian-hvm-install + host + nested + nested_L1
 run-ts . = ts-xen-install + host + nested + nested_build
+run-ts . = ts-debian-install + host + nested + amd64 + nested_L2
+run-ts . = ts-guest-destroy + host nested
  
   It would also be possible to run ts-debian-hvm-install as L2. That
   would suite this test case better -- it's testing nested HVM.
  
   There's no need to remove the PV test case though.
 
  [Pang, LongtaoX]
  [Pang, LongtaoX] Thanks for checking. We used ts-debian-hvm-install
  for installing L1 HVM guest via ISO Image, because we will build XEN,
 XEN-Tools and dom0 kernel inside it, and then we will install L2 guest inside 
 L1.
  But, L2 guest is just a native OS, so we think use ts-debian-install is 
  enough
 for installing L2 and will make it easy to control.
 
 
 ts-debian-install installs a L2 PV guest, which should work even without 
 nested
 HVM enabled for your L1 HVM guest. You're testing nested HVM I think it
 makes more sense to install a L2 HVM guest.
 
[Pang, LongtaoX] Thanks Wei, I will try to re-use the script of 
ts-debian-hvm-install as L2, maybe it will make 
this script become complicated. If it works, there will not be necessary to 
modify and use ts-debian-install anymore.
 [...]
+sub start () {
+my $cfg_xend= /etc/xen/$guesthost.cfg;
+my $cmd= toolstack()-{Command}. create .$cfg_xend;
+target_cmd_root($ho, $cmd, 30);
+my $domains = target_cmd_output_root($ho,
   toolstack()-{Command}. list);
+logm(guest state is\n$domains); }
  
   I think we already have a guest start script?
  
   This hunk is going to break easily if we're more flexible about the
   toolstack (we already have a partially working libvirt test case).
  
 
  [Pang, LongtaoX] Thanks for checking, I have tried to use
  ts-guest-start to start guest, but it maybe not suit for here, because some
 function and parameters in the script is not necessary here, If we use the 
 script
 we will modify it again and may impact other test jobs.
  So I create a function here to start L2 guest.
 
 
 Then you need to keep an eye on the ongoing work from Ian Campbell to
 factor out abstraction layer of toolstack and rebase accordingly.
 
 Wei.

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


Re: [Xen-devel] [PATCH v2 1/5] vTPM: event channel bind interdomain with para/hvm virtual machine

2015-01-06 Thread Xu, Quan


 -Original Message-
 From: xen-devel-boun...@lists.xen.org
 [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of Samuel Thibault
 Sent: Wednesday, January 07, 2015 12:57 AM
 To: Xu, Quan
 Cc: Daniel De Graaf; stefano.stabell...@eu.citrix.com; xen-devel@lists.xen.org
 Subject: Re: [Xen-devel] [PATCH v2 1/5] vTPM: event channel bind
 interdomain with para/hvm virtual machine
 
 Xu, Quan, le Tue 06 Jan 2015 16:46:58 +, a écrit :
  QEMU is running in Dom0 as usual, so the domid is 0.
 
 One can also run the HVM QEMU inside a stubdomain.

A good case, thanks Samuel.
Once running the HVM QEMU inside a stubdomain, the domain type is 
para-virtualization(T_DOMAIN_TYPE_PV)

#define T_DOMAIN_TYPE_HVM 1
#define T_DOMAIN_TYPE_PV  2

Thanks 
Quan 
 
 Samuel
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel

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


Re: [Xen-devel] xen compile error with CONFIG_EARLY_PRINTK=seattle option

2015-01-06 Thread Jintack Lim
I'm sorry, it's my bad.

It was because I didn't do make clean before building with
CONFIG_EARLY_PRINTK=seattle.

Jintack

On Tue, Jan 6, 2015 at 8:49 PM, Jintack Lim jint...@cs.columbia.edu wrote:

 Hi,

 When I compiled with CONFIG_EARLY_PRINTK=seattle option,
 I got an compile error.

 /home/soccertack/dev/xen/xen/arch/arm/built_in.o: In function `early_puts':
 /home/soccertack/dev/xen/xen/arch/arm/early_printk.c:22: multiple
 definition of `early_puts'
 arm64/head.o:/home/soccertack/dev/xen/xen/arch/arm/arm64/head.S:727: first
 defined here

 After I commented early_puts function out in early_printk.c,
 I successfully compiled and I was able to see earlyprint messages.

 I'm using the latest commit (36174af3fbeb1b662c0eadbfa193e77f68cc955b)
 and I compiled with this command.

 make dist-xen XEN_TARGET_ARCH=arm64 debug=y  CONFIG_EARLY_PRINTK=seattle
 CROSS_COMPILE=aarch64-linux-gnu-

 Jintack

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


Re: [Xen-devel] [PATCH v2 1/5] vTPM: event channel bind interdomain with para/hvm virtual machine

2015-01-06 Thread Xu, Quan


 -Original Message-
 From: xen-devel-boun...@lists.xen.org
 [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of Xu, Quan
 Sent: Wednesday, January 07, 2015 9:45 AM
 To: Samuel Thibault
 Cc: Daniel De Graaf; xen-devel@lists.xen.org; stefano.stabell...@eu.citrix.com
 Subject: Re: [Xen-devel] [PATCH v2 1/5] vTPM: event channel bind
 interdomain with para/hvm virtual machine
 
 
 
  -Original Message-
  From: xen-devel-boun...@lists.xen.org
  [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of Samuel Thibault
  Sent: Wednesday, January 07, 2015 12:57 AM
  To: Xu, Quan
  Cc: Daniel De Graaf; stefano.stabell...@eu.citrix.com;
  xen-devel@lists.xen.org
  Subject: Re: [Xen-devel] [PATCH v2 1/5] vTPM: event channel bind
  interdomain with para/hvm virtual machine
 
  Xu, Quan, le Tue 06 Jan 2015 16:46:58 +, a écrit :
   QEMU is running in Dom0 as usual, so the domid is 0.
 
  One can also run the HVM QEMU inside a stubdomain.
 
 A good case, thanks Samuel.
 Once running the HVM QEMU inside a stubdomain, the domain type is
 para-virtualization(T_DOMAIN_TYPE_PV)
 
 #define T_DOMAIN_TYPE_HVM 1
 #define T_DOMAIN_TYPE_PV  2
 

I missed this case, described by Graaf. I have not tried it.

###

[...]
[minios or Linux tpmfront]
|
  QEMU stub-domain
|
 [MMIO emulation]
|
   Any HVM guest
###




Thanks 
Quan

 Thanks
 Quan
 
  Samuel
 
  ___
  Xen-devel mailing list
  Xen-devel@lists.xen.org
  http://lists.xen.org/xen-devel
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel

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


Re: [Xen-devel] Xen 4.5 Development Update (GA slip by a week)

2015-01-06 Thread Ian Jackson
Konrad Rzeszutek Wilk writes (Re: Xen 4.5 Development Update (GA slip by a 
week)):
 On Tue, Jan 06, 2015 at 02:40:31PM +, Ian Jackson wrote:
  There are two remaining dates left unspecified in your mail:
  
   * When do we branch for 4.5 ?  I think we should do this right away
 so that we can set up osstest to have a working push gate for 4.5
 by the time of the release.
 
 I concur. Would you be OK doing that?

OK.

 This will work best with coordination with all committers to avoid
 stuff appearing on staging after staging-4.5 is created.
 
 Um, not following you. I think we want people to put patches in staging,
 just not 4.5 material?

Yes.  What I mean is that there is a point starting RIGHT NOW
when committers should be pushing NOTHING TO STAGING.

Because I am about to branch staging, and any committer who pushes now
doen't know whether the commits they push are going to end up in 4.5
or not.

   * What is the last commit deadline for 4.5 ?
  
 We need time to wait for a test push, discover a possible problem,
 and perhaps revert.  A week would be best, but maybe a bit less
 
 How long do those 'test push' take?

With a following wind 24h, but that involves some luck.  I would
allow at least 48h and probably more for possible infrastructure
problems.

Ian.

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


[Xen-devel] [PATCH] xen-netback: fixing the propagation of the transmit shaper timeout

2015-01-06 Thread Imre Palik
From: Palik, Imre im...@amazon.de

Since e9ce7cb6b107 (xen-netback: Factor queue-specific data into queue 
struct),
the transimt shaper timeout is always set to 0.  The value the user sets via
xenbus is never propagated to the transmit shaper.

This patch fixes the issue.

Cc: Anthony Liguori aligu...@amazon.com
Signed-off-by: Imre Palik im...@amazon.de
---
 drivers/net/xen-netback/xenbus.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index efbaf2a..794204e 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -737,6 +737,7 @@ static void connect(struct backend_info *be)
}
 
queue-remaining_credit = credit_bytes;
+   queue-credit_usec = credit_usec;
 
err = connect_rings(be, queue);
if (err) {
-- 
1.7.9.5


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


Re: [Xen-devel] [PATCH] xen-netback: fixing the propagation of the transmit shaper timeout

2015-01-06 Thread Ian Campbell
On Tue, 2015-01-06 at 16:44 +0100, Imre Palik wrote:
 From: Palik, Imre im...@amazon.de
 
 Since e9ce7cb6b107 (xen-netback: Factor queue-specific data into queue 
 struct),
 the transimt shaper timeout is always set to 0.  The value the user sets via
 xenbus is never propagated to the transmit shaper.
 
 This patch fixes the issue.
 
 Cc: Anthony Liguori aligu...@amazon.com
 Signed-off-by: Imre Palik im...@amazon.de

Acked-by: Ian Campbell ian.campb...@citrix.com



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


Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for HVM virtual machine when vTPM is added

2015-01-06 Thread Xu, Quan


 -Original Message-
 From: xen-devel-boun...@lists.xen.org
 [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of Wei Liu
 Sent: Monday, January 05, 2015 8:57 PM
 To: Xu, Quan
 Cc: wei.l...@citrix.com; ian.campb...@citrix.com;
 stefano.stabell...@eu.citrix.com; ian.jack...@eu.citrix.com;
 xen-devel@lists.xen.org; Jan Beulich
 Subject: Re: [Xen-devel] [PATCH v2 3/5] vTPM: add TPM TCPA and SSDT for
 HVM virtual machine when vTPM is added
 
 You need to CC Jan for hvmloader changes (which I've done for you).

Thanks. Will CC Jan in v3, also I will CC Jan for SeaBios Patch..
I did not get 'Jan Beulich' with scripts/get_maintainer.pl, maybe Community 
should also update it.


 On Tue, Dec 30, 2014 at 11:45:14PM -0500, Quan Xu wrote:
  Signed-off-by: Quan Xu quan...@intel.com
  ---
   tools/firmware/hvmloader/acpi/build.c | 5 +++--
   tools/libxl/libxl_create.c| 5 -
   tools/libxl/libxl_types.idl   | 1 +
   tools/libxl/xl_cmdimpl.c  | 2 ++
   4 files changed, 10 insertions(+), 3 deletions(-)
 
  diff --git a/tools/firmware/hvmloader/acpi/build.c
  b/tools/firmware/hvmloader/acpi/build.c
  index 1431296..f2aa071 100644
  --- a/tools/firmware/hvmloader/acpi/build.c
  +++ b/tools/firmware/hvmloader/acpi/build.c
  @@ -313,9 +313,10 @@ static int construct_secondary_tables(unsigned
  long *table_ptrs,
 
   /* TPM TCPA and SSDT. */
   tis_hdr = (uint16_t *)0xFED40F00;
  -if ( (tis_hdr[0] == tis_signature[0]) 
  +if ( ((tis_hdr[0] == tis_signature[0]) 
(tis_hdr[1] == tis_signature[1]) 
  - (tis_hdr[2] == tis_signature[2]) )
  + (tis_hdr[2] == tis_signature[2])) ||
  + !strncmp(xenstore_read(platform/acpi_stubdom_vtpm, 1),
  + 1, 1) )
   {
   ssdt = mem_alloc(sizeof(ssdt_tpm), 16);
   if (!ssdt) return -1;
  diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
  index 0a09925..c6f68fe 100644
  --- a/tools/libxl/libxl_create.c
  +++ b/tools/libxl/libxl_create.c
  @@ -432,7 +432,7 @@ int libxl__domain_build(libxl__gc *gc,
   vments[4] = start_time;
   vments[5] = libxl__sprintf(gc, %lu.%02d,
  start_time.tv_sec,(int)start_time.tv_usec/1);
 
  -localents = libxl__calloc(gc, 9, sizeof(char *));
  +localents = libxl__calloc(gc, 11, sizeof(char *));
   i = 0;
   localents[i++] = platform/acpi;
   localents[i++] = libxl_defbool_val(info-u.hvm.acpi) ? 1 :
  0; @@ -440,6 +440,9 @@ int libxl__domain_build(libxl__gc *gc,
   localents[i++] = libxl_defbool_val(info-u.hvm.acpi_s3) ? 1 :
 0;
   localents[i++] = platform/acpi_s4;
   localents[i++] = libxl_defbool_val(info-u.hvm.acpi_s4) ? 1
  : 0;
  +localents[i++] = platform/acpi_stubdom_vtpm;
  +localents[i++] = (info-num_vtpms  0) ? 1 : 0;
  +
   if (info-u.hvm.mmio_hole_memkb) {
   uint64_t max_ram_below_4g =
   (1ULL  32) - (info-u.hvm.mmio_hole_memkb 
 10);
  diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
  index ca3f724..b08b974 100644
  --- a/tools/libxl/libxl_types.idl
  +++ b/tools/libxl/libxl_types.idl
  @@ -379,6 +379,7 @@ libxl_domain_build_info =
 Struct(domain_build_info,[
   # if you set device_model you must set device_model_version too
   (device_model, string),
   (device_model_ssidref, uint32),
  +(num_vtpms, integer),
 
 Why is this needed? Can you not use d_config-num_vtpms? I.e. this never
 differs from d_config-num_vtpms in your code below...
 

This parameter is for HVM_PARAM_STUBDOM_VTPM hypercall, which is deleted in v2. 
I should also delete it.
I will do it in v3. Thanks..


Thanks 
Quan 


 Wei.
 
   (device_model_ssid_label, string),
 
   # extra parameters pass directly to qemu, NULL terminated diff
  --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index
  3c9f146..9c43e88 100644
  --- a/tools/libxl/xl_cmdimpl.c
  +++ b/tools/libxl/xl_cmdimpl.c
  @@ -1414,6 +1414,7 @@ static void parse_config_data(const char
  *config_source,
 
   if (!xlu_cfg_get_list(config, vtpm, vtpms, 0, 0)) {
   d_config-num_vtpms = 0;
  +b_info-num_vtpms = 0;
   d_config-vtpms = NULL;
   while ((buf = xlu_cfg_get_listitem (vtpms,
 d_config-num_vtpms)) != NULL) {
   libxl_device_vtpm *vtpm;
  @@ -1456,6 +1457,7 @@ static void parse_config_data(const char
 *config_source,
   }
   free(buf2);
   d_config-num_vtpms++;
  +b_info-num_vtpms++;
   }
   }
 
  --
  1.8.3.2
 
 ___
 Xen-devel mailing list
 Xen-devel@lists.xen.org
 http://lists.xen.org/xen-devel

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


[Xen-devel] [xen-4.4-testing test] 33186: regressions - trouble: blocked/broken/fail/pass

2015-01-06 Thread xen . org
flight 33186 xen-4.4-testing real [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/33186/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-amd64-xl-qemuu-ovmf-amd64  3 host-install(3) broken REGR. vs. 32329
 test-amd64-i386-pair 3 host-install/src_host(3) broken REGR. vs. 32329
 test-amd64-i386-xl-qemut-win7-amd64  7 windows-installfail REGR. vs. 32329

Regressions which are regarded as allowable (not blocking):
 test-amd64-i386-pair  4 host-install/dst_host(4) broken like 32329
 test-armhf-armhf-xl   3 host-install(3)  broken like 32329

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-rumpuserxen-amd64  1 build-check(1)   blocked n/a
 test-amd64-i386-rumpuserxen-i386  1 build-check(1)   blocked  n/a
 build-i386-rumpuserxen6 xen-buildfail   never pass
 build-amd64-rumpuserxen   6 xen-buildfail   never pass
 test-amd64-i386-libvirt   9 guest-start  fail   never pass
 test-armhf-armhf-libvirt  9 guest-start  fail   never pass
 test-amd64-amd64-libvirt  9 guest-start  fail   never pass
 test-amd64-amd64-xl-qemut-win7-amd64 14 guest-stop fail never pass
 test-amd64-i386-xl-win7-amd64 14 guest-stop   fail  never pass
 test-amd64-amd64-xl-win7-amd64 14 guest-stop   fail never pass
 test-amd64-amd64-xl-winxpsp3 14 guest-stop   fail   never pass
 test-amd64-amd64-xl-pcipt-intel  9 guest-start fail never pass
 test-amd64-i386-xend-winxpsp3 17 leak-check/check fail  never pass
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 14 guest-stop fail never pass
 test-amd64-amd64-xl-qemuu-winxpsp3 14 guest-stop   fail never pass
 test-amd64-amd64-xl-qemuu-win7-amd64 14 guest-stop fail never pass
 test-amd64-i386-xl-qemuu-win7-amd64 14 guest-stop  fail never pass
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 14 guest-stop fail never pass
 test-amd64-i386-xl-winxpsp3-vcpus1 14 guest-stop   fail never pass
 test-amd64-i386-xend-qemut-winxpsp3 17 leak-check/checkfail never pass
 test-amd64-amd64-xl-qemut-winxpsp3 14 guest-stop   fail never pass

version targeted for testing:
 xen  089dd62211042011e26de1b87b558394cdfe388b
baseline version:
 xen  7bb6b2722be1e27f99948e5c68f7f42eb23f8e53


People who touched revisions under test:
  Mihai Donțu mdo...@bitdefender.com
  Răzvan Cojocaru rcojoc...@bitdefender.com


jobs:
 build-amd64-xend pass
 build-i386-xend  pass
 build-amd64  pass
 build-armhf  pass
 build-i386   pass
 build-amd64-libvirt  pass
 build-armhf-libvirt  pass
 build-i386-libvirt   pass
 build-amd64-pvopspass
 build-armhf-pvopspass
 build-i386-pvops pass
 build-amd64-rumpuserxen  fail
 build-i386-rumpuserxen   fail
 test-amd64-amd64-xl  pass
 test-armhf-armhf-xl  broken
 test-amd64-i386-xl   pass
 test-amd64-i386-rhel6hvm-amd pass
 test-amd64-i386-qemut-rhel6hvm-amd   pass
 test-amd64-i386-qemuu-rhel6hvm-amd   pass
 test-amd64-amd64-xl-qemut-debianhvm-amd64pass
 test-amd64-i386-xl-qemut-debianhvm-amd64 pass
 test-amd64-amd64-xl-qemuu-debianhvm-amd64pass
 test-amd64-i386-xl-qemuu-debianhvm-amd64 pass
 test-amd64-i386-freebsd10-amd64  pass
 test-amd64-amd64-xl-qemuu-ovmf-amd64 broken
 test-amd64-i386-xl-qemuu-ovmf-amd64  pass
 test-amd64-amd64-rumpuserxen-amd64   blocked
 test-amd64-amd64-xl-qemut-win7-amd64 fail
 test-amd64-i386-xl-qemut-win7-amd64  fail
 test-amd64-amd64-xl-qemuu-win7-amd64 fail
 test-amd64-i386-xl-qemuu-win7-amd64  fail
 test-amd64-amd64-xl-win7-amd64   fail
 

Re: [Xen-devel] [RFC 2/2] x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader

2015-01-06 Thread Paolo Bonzini


On 06/01/2015 17:56, Andy Lutomirski wrote:
 Still no good.  We can migrate a bunch of times so we see the same CPU
 all three times

There are no three times.  The CPU you see here:

 
 
 // ... compute nanoseconds from pvti and tsc ...
 rmb();
 }   while(v != pvti-version);

is the same you read here:

 cpu = get_cpu();

The algorithm is:

1) get a consistent (cpu, version, tsc)

   1.a) get cpu
   1.b) get pvti[cpu]-version, ignoring low bit
   1.c) get (tsc, cpu)
   1.d) if cpu from 1.a and 1.c do not match, loop
   1.e) if pvti[cpu] was being updated, we'll loop later

2) compute nanoseconds from pvti[cpu] and tsc

3) if pvti[cpu] changed under our feet during (2), i.e. version doesn't
match, retry.

As long as the CPU is consistent between get_cpu() and rdtscp(), there
is no problem with migration, because pvti is always accessed for that
one CPU.  If there were any problem, it would be caught by the version
check.  Writing it down with two nested do...whiles makes it clearer IMHO.

 and *still* don't get a consistent read, unless we
 play nasty games with lots of version checks (I have a patch for that,
 but I don't like it very much).  The patch is here:
 
 https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/vdso_paranoiaid=a69754dc5ff33f5187162b5338854ad23dd7be8d
 
 but I don't like it.
 
 Thus far, I've been told unambiguously that a guest can't observe pvti
 while it's being written, and I think you're now telling me that this
 isn't true and that a guest *can* observe pvti while it's being
 written while the low bit of the version field is not set.  If so,
 this is rather strongly incompatible with the spec in the KVM docs.

Where am I saying that?

Paolo

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


  1   2   >