Commit Graph
21664 Commits
Author SHA1 Message Date
Ian Jackson e41d0dba09 libxl: support reset file on sysfs
Recent kernels have a reset file on sysfs per PCI device, to allow PCI
device reset from userspace.
This patch adds support to libxl for resetting PCI devices using the
reset file on sysfs, in case the do_flr file is not preset.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2010-06-23 17:05:31 +01:00
Ian Jackson caaaad749a libxl: make libxl_wait_for_device_model clearer
at the moment libxl_wait_for_device_model waits on a xenstore watch
before checking the current value of the xenstore node, that might
contain already the value the function was looking for.

This patch changes libxl_wait_for_device_model so that it checks the
value of the xenstore node first, then waits for the watch.

xenstore watch automatically fire one time when you install them for
this exact same purpose, so the previous code is not wrong, but this
version is clearer.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2010-06-23 17:04:26 +01:00
Ian Jackson e724c3fa88 prompt user to start xencommons first if it is not running.
Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
2010-06-23 17:01:35 +01:00
Ian Jackson b418a191ab python/xc: [PATCH 3/3] add flask capabilities in python xc bindings
The flask library is small, and putting everything in libxenctrl make
relying on flask functionalities in libxl easier.

libflask is left for compatibility purpose, but should be considered
deprecated, and remove in the near future. all flask_ symbols are now
xc_flask_ symbols in libxenctrl.

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
2010-06-22 16:37:53 +01:00
Ian Jackson 285ffaa941 libxc: [PATCH 2/3] remove some duplicated code: helper add/del functions
Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
2010-06-22 16:37:13 +01:00
Ian Jackson 5404a18af7 libxc: [PATCH 1/3] merge libflask into libxenctrl
The flask library is small, and putting everything in libxenctrl make
relying on flask functionalities in libxl easier.

libflask is left for compatibility purpose, but should be considered
deprecated, and remove in the near future. all flask_ symbols are now
xc_flask_ symbols in libxenctrl.

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
2010-06-22 16:36:04 +01:00
Ian Jackson 7b76ecc628 init.d: Fix xencommons init script chkconfig configuration
Fix the xencommons init script chkconfig configuration since the
priority was missing here and chkconfig was complaining about invalid
chkconfig script so I added both start and stop priorities to the
chkconfig line and it was working fine, the script was successfully
added to chkconfig when using `chkconfig --add xencommons` and
management using the chkconfig utility was now possible.

Tested on RHEL-5 Server with Xen-4.1-unstable installed, running on
PVops kernel 2.6.32.15 and it was working fine.

Signed-off-by: Michal Novotny <minovotn@redhat.com>
2010-06-22 16:22:30 +01:00
Stefano Stabellini 919dd38585 Merge 2010-06-22 16:09:59 +01:00
Ian Jackson c1acfe560b Check "mac" address sooner in device_create function, before doing device_add.
In XendDomainInfo.py device_create function, when device type is
"vif", it has a paragraph to check the validity of "mac"
address. Before checking validity, device_add has been done. But after
checking validity, if the mac address is invlid, it raises VmError and
exits directly without doing clean work like removing the device item
from config info. This will cause that the incorrect mac address is
saved into VM Config file and VM fails to restart. If check "mac"
validity before doing device_add, there will be no problem.

Signed-off-by Chunyan Liu <CYLiu@novell.com>
2010-06-22 16:07:00 +01:00
Stefano Stabellini 8cde53d099 this patch implements few missing options in xl so that it can be
used as a replacement of xm in xendomains:

- dryrun and quiet, long options to xl create;

- l, option to xl list.

printf_info is now used to print the configuration of the running VMs so
the output has been reformatted to be similar to the output of xm list -l.

There is still one command used in xendomains that is not implemented in
xl and not covered by this patch: xm shutdown. However a patch has been
sent to the list in the past and we are expecting a new version of it
soon.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2010-06-22 16:05:56 +01:00
Stefano Stabellini 14d8a83b62 this patch adds support for xl in xendomains: if xm list fails all the
following commands are issued using xl instead.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2010-06-22 16:05:30 +01:00
Ian Jackson b9ae83b6e2 python/xc: do not crash xend if /proc/xen/privcmd cannot be opened
If /proc/xen/privcmd cannot be opened,
start xend occurs Segmentation fault.
Add check to fix it.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
2010-06-22 16:00:08 +01:00
Ian Jackson 6f4e9be827 If xenfs is compiled as a module, now cannot complete
'service xencommons start', mount xenfs directly can fix it,
it can trigger modprobe xenfs.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
2010-06-22 15:39:42 +01:00
Keir Fraser 39fcc064b1 perfc: Fix x86_64 build with perfc_arrays=y
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-22 07:19:38 +01:00
Keir Fraser 26d77199f8 x86 shadow: Fix x86_32 build.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-22 07:19:16 +01:00
Keir Fraser 5afab625f4 Enable tmem functionality for PV on HVM guests. Guest kernel
must still be tmem-enabled to use this functionality (e.g.
won't work for Windows), but upstream Linux tmem (aka
cleancache and frontswap) patches apply cleanly on top
of PV on HVM patches.

Also, fix up some ASSERTS and code used only when bad guest
mfns are passed to tmem.  Previous code could crash Xen
if a buggy/malicious guest passes bad gmfns.

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
2010-06-21 19:19:25 +01:00
Keir Fraser 3d5e6a3ff3 x86 hvm: implement HVMOP_pagetable_dying
This patch implements HVMOP_pagetable_dying: an hypercall for
guests to notify Xen that a pagetable is about to be destroyed so that
Xen can use it as a hint to unshadow the pagetable soon and unhook the
top-level user-mode shadow entries right away.

Gianluca Guida is the original author of this patch.

Signed-off-by: Gianluca Guida <glguida@gmail.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2010-06-21 19:18:27 +01:00
Keir Fraser c814a49b06 Revert 21641:2e5844e17d6f "xencommons: modprobe xenfs if it not be loaded"
Nacked by Jeremy Fitzhardinge and Ian Jackson.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-21 18:37:34 +01:00
Keir Fraser 411e8c2fef Revert 21640:05e127771b86 "libxc: Fix Segmentation fault of xend"
Nacked-by: Ian Jackson <ian.jackson@eu.citrix.com>

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-21 18:36:39 +01:00
Keir Fraser e862bdf68f xl: fix command truncation
Fix the truncation code so that it always accepts an exact match,
even when one command is a prefix of another one.   This fixes,
e.g., "xl list"

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
2010-06-21 18:35:10 +01:00
Keir Fraser 154a413090 vmx: Fix bug in VMX VPMU fixed function PMC offset
This is a minor fix to the calculation of bit-width of fixed function
perfmon counters in Intel processors.  Bits 5-12 of edx register
should be calculated as (edx & 0x1fe0) >>5 instead of using 0x1f70.

From: "John, Jaiber J" <jaiber.j.john@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-21 09:59:10 +01:00
Keir Fraser df992155c8 xend: fix "xm list hangs"
If a command hold domains_lock, "xm list" would hang for waiting for
the lock. Such as creating many VMs at a script (such as 20), command
of "xm list" could hang for long time(10 mins).  I think domains_lock
here only protect update().  So, we shouldn't do update before command
of "list" really get this lock, but xm do need show the domain's
information quickly. In this patch, if command couldn't get the
domains_lock after 20 times trying, "xm list" would show the
information of VMs without update().

Signed-off-by: James Song (Wei) <jsong@novell.com>
2010-06-21 09:58:17 +01:00
Keir Fraser 0ca1bba0a6 xencommons: modprobe xenfs if it not be loaded
If xenfs is compiled as a module, now cannot complete
'service xencommons start', modprobe xenfs can fix it.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
2010-06-21 09:57:10 +01:00
Keir Fraser ff4cc39490 libxc: Fix Segmentation fault of xend
If /proc/xen/privcmd cannot be opened,
start xend occurs Segmentation fault.
Add check to fix it.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
2010-06-21 09:55:12 +01:00
Keir Fraser 636fed5063 cpuidle: add comments for hpet cpumask_lock usage
Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-18 14:09:44 +01:00
Keir Fraser d3e1e67d8a xl: tidy up around global '-v' option
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
2010-06-18 14:09:29 +01:00
Keir Fraser f20cacf6dc xl: allow truncation of xl subcommands
for those of us who are used to typing "xm cr foo"

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
2010-06-18 14:09:14 +01:00
Keir Fraser 20ad53b196 ia64: Fix xc_save error reporting
This is the patch for error reporting on ia64 that has a special
handling in comparison with i386/x86_64 platforms. This is pretty
straight-forward just to fail on "cannot map mfn page" message instead
of continue since the memory is not being correctly mapped using the
xc_map_foreign_range() function.

From: Michal Novotny <minovotn@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-18 14:08:57 +01:00
Keir Fraser fee4ddc4c2 libxl: give reasons for ctx init failures
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
2010-06-18 14:07:42 +01:00
Keir Fraser b45cd94758 Makefile: Separate misc dist things from dist target
Separate the miscellaneous actions the dist: target does into its own
target so you can run them independently.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
2010-06-18 14:07:19 +01:00
Keir Fraser 1af8775400 Switch default Linux kernel build to 2.6.32
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
2010-06-18 14:06:38 +01:00
Keir Fraser a038a9b44b cpuidle: redefine cpumask_lock as rwlock_t
Multiple cpus clear hpet channel cpumask simultaneously is ok. So we
can change the cpumask_lock to rwlock_t.

Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-17 08:53:12 +01:00
Keir Fraser df52a13912 cpuidle: redirect some hpet lock users to a new cpumask_lock
The hpet channel lock was also used for prevent handle_hpet_broadcast
access other cpu's timer_deadline_start/end after other cpu was
already waken up.
This purpose can be approached via a standalone lock to remove much
spins on the hpet channel lock.

Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-17 08:52:50 +01:00
Keir Fraser aa42fc0e9c cpuidle: remove hpet access in hpet_broadcast_exit
hpet_broadcast_exit calls reprogram_hpet to stop possible hpet intr if
the last deep-cstate waken up cpu is waken by unexpected intrs instead
of hpet broadcast handler. This can be removed without brings much
useless intrs, but bring chance for further optimization. It is a
tradeoff between grace & optimization.

BTW, move the cpumask set out of critial section in
hpet_broadcast_enter to shorten it.

Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-17 08:52:29 +01:00
Keir Fraser cbfacd749c cpuidle: use stime to count c-state residency in NONSTOP_TSC case
stime is based on tsc, with far less access cost than PM timer. So for
processors w/ NONSTOP_TSC, using stime instead of PM timer. This could
reduce idle overheads and save power.

Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-17 08:51:25 +01:00
Keir Fraser 3358e0fe7f cpuidle: reduce redundant cost in cstate_restore_tsc for nonstop tsc
Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-17 08:50:55 +01:00
Keir Fraser 42f6af8640 cpuidle: fix wrapped ticks calculation for pm timer.
Signed-off-by: Wei Gang <gang.wei@intel.com>
2010-06-17 08:50:18 +01:00
Keir Fraser ec28d32c6f Fix sched_adjust_global() and clean up surrounding code.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2010-06-17 08:02:27 +01:00
Keir Fraser 38b998cfb6 x86: IRQ affinity should track vCPU affinity
With IRQs getting bound to the CPU the binding vCPU currently runs on
there can result quite a bit of extra cross CPU traffic as soon as
that vCPU moves to a different pCPU. Likewise, when a domain re-binds
an event channel associated with a pIRQ, that IRQ's affinity should
also be adjusted.

The open issue is how to break ties for interrupts shared by multiple
domains - currently, the last request (at any point in time) is being
honored.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-17 07:22:06 +01:00
Keir Fraser 56d6b7ac5d python/xc: fix out of bounds array access
Writing a NUL terminator here isn't even necessary, since snprintf()
already guarantees proper termination.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:27:14 +01:00
Keir Fraser f606c65a53 ia64: fix build
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:26:49 +01:00
Keir Fraser cc87cdbd83 x86: fix guest wrmsr warning format
During the recent MSR handling cleanup, the '0' format modifier got
lost.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:24:11 +01:00
Keir Fraser 5b5c03bca8 x86/mce: assorted fixes
- correct various range checks (avoids bogus warnings on domains
  modifying virtualized MSRs)
- correct consistency check (so that APs get checked instead of the
  BP [against uninitialized data])
- reduce verbosity (capabilities printed only once, but then all of
  the relevant values)

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:21:34 +01:00
Keir Fraser a564071cae x86: return value of domain_pirq_to_irq() is signed
That value can, for forcibly unbound PIRQs, validly be negative, and
for the respective check to catch those cases (and prevent using these
negative values as array index), the respective variables must be of
signed type.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:21:03 +01:00
Keir Fraser 622c5d9ee4 x86: put_superpage() must also work for !opt_allow_superpage
This is because the P2M table, when placed at a kernel specified
location, gets populated with large pages, which the domain must have
a way to unmap/recycle.

Additionally when allowing Dom0 to use superpages, they ought to be
tracked accordingly in the superpage frame table.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:20:43 +01:00
Keir Fraser c2c4e65d96 Allow LZO compressed bzImage to be used as DomU kernel
... since recently Linux added this as another kernel compression
method.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:20:11 +01:00
Keir Fraser d371fcc85b x86: allow LZO compressed bzImage to be used as Dom0 kernel
... since recently Linux added this as another kernel compression
method, and we already have LZO compression in the tree (from tmem),
so that only glue logic is needed.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:19:33 +01:00
Keir Fraser 135259fa86 x86: fix pv cpuid masking
Invert initial values of the variables parsed into from the command
line, so that completely clearing out one or more of the four bit
fields is possible.

Further, consolidate the command line parameter specifications into
a single place.

Finally, as per "Intel Virtualization Technology FlexMigration
Application Note" (http://www.intel.com/Assets/PDF/manual/323850.pdf),
also handle family 6 model 0x1f.

What remains open is the question whether pv_cpuid() shouldn't also
consume these masks.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:18:55 +01:00
Keir Fraser 3aff5e1948 Don't save Xen heap pages during domain save
As discussed in the thread starting at
http://lists.xensource.com/archives/html/xen-devel/2010-05/msg01383.html,
don't save Xen heap pages in order to avoid overallocation when the
domain gets restored, as those pages would get (temporarily) backed
with normal RAM pages by the restore code.

This requires making DOMCTL_getpageframeinfo{2,3} usable for HVM
guests, meaning that the input to these must be treated as GMFNs.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-06-15 13:18:09 +01:00
Keir Fraser 11ca89db85 xl: fix restore_common return value
restore_common function should return error when failed.

Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
2010-06-15 11:38:41 +01:00