No longer open the device as non-blocking: all reads immediately follow
a select() on the device indicating it's ready to read.
Signed-off-by: John Levon <john.levon@sun.com>
Thus all can be disabled at compile time. It would be easy to
make enabling/disabling a run-time option too.
Signed-off-by: Keir Fraser <keir@xensource.com>
This patch pass the vcpus number to VT-i domain guest firmware,
so that guest firmware can set SMP info accordingly, mostly in
ACPI MADT table.
This patch is required by VT-i SMP support.
Signed-off-by: Yu Ke <ke.yu@intel.com>
pae_pgdir_above_4gb tp guests that have enabled this vmassist.
Control tools ensure all PAE page directories are below 4GB
unless the vmassist is enabled (triggered via an extended-cr3
option in guest Elf header).
Signed-off-by: Keir Fraser <keir@xensource.com>
**NOTE**: This obviates the need for lowmem_emergency_pool.
Unpriv guests no longer need to be able to allocate memory
below 4GB for PAE PDPTs.
Signed-off-by: Keir Fraser <keir@xensource.com>
with command-specific request structures. It aligns the ACM
hypercalls with the way parameters are passed in the event channel
hypercalls.
Advantages include backward-compatibility regarding old guests when
new calls are added and clarity of the code.
Signed-off by: Reiner Sailer <sailer@us.ibm.com>
This avoids using zero to indicate 'undefined'. Instead we use
an explicit boolean to indicate whether suitable defaults should
be used. As well as making the logic clearer (I believe) it also
avoids problems if anyone ever explicitly specifies virt_base
(and also elf_paddr_offset) as zero.
Signed-off-by: Keir Fraser <keir@xensource.com>
to prevent xend crashign (when Aravindh's latest patch is
applied) and breaks ia64. Also, ensure we set a reasonable
default for elf_paddr_offset.
Signed-off-by: Keir Fraser <keir@xensource.com>
pgdir. This is required for Xen to be able to insert its own protected
mappings. At the same time, clean up 32b and pae pagetable-size
calculations to use the helper macro already used for x86/64.
Based on an original patch from Bruce Rogers at Novell.
Signed-off-by: Keir Fraser <keir@xensource.com>
the page directory / page table pages are not present (for example
through dereferencing NULL in the gdb session). Changes:
- map_domain_va_32 has been rewritten to match map_domain_va_pae and
map_domain_va_64.
- All three functions have been extended to handle multiple vCPUs,
(untested, but shuld work), and check for _PAGE_PRESENT.
- Keir's workaround for the compile error in map_domain_va_64 has been
removed and hopefully fixed.
Signed-Off-By: Simon Kagstrom <simon.kagstrom@bth.se>
1. xenctrl.h needs to include stddef.h to define size_t
2. tbctl is broken -- remove it since xenmon and xentrace
both automatcially enable tracing now
3. Fix setsize after xc_tbug interface changes
Signed-off-by: Keir Fraser <keir@xensource.com>
Currently, Xen always copies the entire 512 byte extended
FPU state (fxsave) even if only the "regular" FPU state was
requested.
This breaks since the memory buffer allocated in
linux-xen-low.c:regsets_fetch_inferior_registers() is only large
enough to hold the "plain" FPU registers.
Signed-Off-By: Simon Kagstrom <simon.kagstrom@bth.se>
Changes:
- Added to_ma function which translates a physical address to a
machine address for HVM guests and just returns the address for PV
guests.
- Use to_ma() in map_domain_va_32, map_domain_va_pae and
map_domain_va_64 to abstract away differences between HVM and PV
guests.
- (From Keir, Ryan) Export CR0 to PV guests as well.
I've removed the address checks against 0 since the last version since
physical/machine address 0 should be valid. Invalid translations
should be catched in xc_map_foreign_domain.
Signed-Off-By: Simon Kagstrom <simon.kagstrom@bth.se>
Add a new __xen_guest header field to distinguish between kernels with
the previous use of the paddr field and the new use.
Add a new __xen_guest header field to control the kernel entry point,
since the elf header entry field now points to a physical address.
This header field is also useful for supporting alternative entry
points in kernel images which run both on xen and native.
Also add a kernel config option to control whether the resulting kernel
should include compatibility code to run on Xen 3.0.2 or whether such
code such be left out, resulting in a kernel which will only run on
newer Xen versions. Default to having compatibility enabled.
Kernels built with the new use of the elf header fields would otherwise
not work on Xen versions prior to this changeset.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Make header path for kernel's privcmd/evtchn headers generic.
Remove pointless xi_*() interface that was using private libxc
interfaces.
Signed-off-by: John Levon <john.levon@sun.com>
interface (the legacy hypercalls would break if subcommands with large
argument structures were added, as it would grow the size of the
union of all argument structures).
Also, based on a patch from Kevin Tian, add a new physdev op to
signal EOI for a particular irq.
Signed-off-by: Keir Fraser <keir@xensource.com>
As we know, the mechanism for hypervisor to pass parameter through pointer
is not complete. Hypervisor use copy_from/to_user functions to copy parameter
to hypervisor and copy result to user, if there is a tlb miss happening and
hypervisor can't handled this. This hypercall fails, there is no mechanism to
handle this failure, that may cause domain crash. Get_pfn_list hypercall copy
large data from hypervisor to user, it is easy to trigger this issue when
creating VTI-domain.
If fails, Get_pfn_list returns the number of pfn entries, and this patch will
Dummy access parameter memory block to cause this tlb mapping tracked by
Hypervisor, then continue to do get_pfn_list.
It's a workaround before we design a new mechanism of passing parameter thr
pointer.
Signed-off-by: Anthony Xu <anthony.xu@intel.com>
* Move .PHONY directives next to targets,
this makes them a lot harder to miss
* Add missing .PHONY directives
* Remove nonexistent .PHONY directives
* Hopefully I didn'T miss anything...
Signed-Off-By: Horms <horms@verge.net.au>