Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 752240e7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-4.3-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen updates from David Vrabel:
 "Xen features and fixes for 4.3:

   - Convert xen-blkfront to the multiqueue API
   - [arm] Support binding event channels to different VCPUs.
   - [x86] Support > 512 GiB in a PV guests (off by default as such a
     guest cannot be migrated with the current toolstack).
   - [x86] PMU support for PV dom0 (limited support for using perf with
     Xen and other guests)"

* tag 'for-linus-4.3-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (33 commits)
  xen: switch extra memory accounting to use pfns
  xen: limit memory to architectural maximum
  xen: avoid another early crash of memory limited dom0
  xen: avoid early crash of memory limited dom0
  arm/xen: Remove helpers which are PV specific
  xen/x86: Don't try to set PCE bit in CR4
  xen/PMU: PMU emulation code
  xen/PMU: Intercept PMU-related MSR and APIC accesses
  xen/PMU: Describe vendor-specific PMU registers
  xen/PMU: Initialization code for Xen PMU
  xen/PMU: Sysfs interface for setting Xen PMU mode
  xen: xensyms support
  xen: remove no longer needed p2m.h
  xen: allow more than 512 GB of RAM for 64 bit pv-domains
  xen: move p2m list if conflicting with e820 map
  xen: add explicit memblock_reserve() calls for special pages
  mm: provide early_memremap_ro to establish read-only mapping
  xen: check for initrd conflicting with e820 map
  xen: check pre-allocated page tables for conflict with memory map
  xen: check for kernel memory conflicting with memory layout
  ...
parents b8cb642a 626d7508
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
What:		/sys/hypervisor/pmu/pmu_mode
Date:		August 2015
KernelVersion:	4.3
Contact:	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Description:
		Describes mode that Xen's performance-monitoring unit (PMU)
		uses. Accepted values are
			"off"  -- PMU is disabled
			"self" -- The guest can profile itself
			"hv"   -- The guest can profile itself and, if it is
				  privileged (e.g. dom0), the hypervisor
			"all" --  The guest can profile itself, the hypervisor
				  and all other guests. Only available to
				  privileged guests.

What:           /sys/hypervisor/pmu/pmu_features
Date:           August 2015
KernelVersion:  4.3
Contact:        Boris Ostrovsky <boris.ostrovsky@oracle.com>
Description:
		Describes Xen PMU features (as an integer). A set bit indicates
		that the corresponding feature is enabled. See
		include/xen/interface/xenpmu.h for available features
+7 −0
Original line number Diff line number Diff line
@@ -4106,6 +4106,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
			plus one apbt timer for broadcast timer.
			x86_intel_mid_timer=apbt_only | lapic_and_apbt

	xen_512gb_limit		[KNL,X86-64,XEN]
			Restricts the kernel running paravirtualized under Xen
			to use only up to 512 GB of RAM. The reason to do so is
			crash analysis tools and Xen tools for doing domain
			save/restore/migration must be enabled to handle larger
			domains.

	xen_emul_unplug=		[HW,X86,XEN]
			Unplug Xen emulated devices
			Format: [unplug0,][unplug1]
+6 −0
Original line number Diff line number Diff line
@@ -20,4 +20,10 @@ static inline int xen_irqs_disabled(struct pt_regs *regs)
							    atomic64_t,	\
							    counter), (val))

/* Rebind event channel is supported by default */
static inline bool xen_support_evtchn_rebind(void)
{
	return true;
}

#endif /* _ASM_ARM_XEN_EVENTS_H */
+2 −14
Original line number Diff line number Diff line
@@ -54,26 +54,14 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn)

#define mfn_to_local_pfn(mfn) mfn_to_pfn(mfn)

static inline xmaddr_t phys_to_machine(xpaddr_t phys)
{
	unsigned offset = phys.paddr & ~PAGE_MASK;
	return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
}

static inline xpaddr_t machine_to_phys(xmaddr_t machine)
{
	unsigned offset = machine.maddr & ~PAGE_MASK;
	return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
}
/* VIRT <-> MACHINE conversion */
#define virt_to_machine(v)	(phys_to_machine(XPADDR(__pa(v))))
#define virt_to_mfn(v)		(pfn_to_mfn(virt_to_pfn(v)))
#define mfn_to_virt(m)		(__va(mfn_to_pfn(m) << PAGE_SHIFT))

/* Only used in PV code. But ARM guests are always HVM. */
static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
{
	/* TODO: assuming it is mapped in the kernel 1:1 */
	return virt_to_machine(vaddr);
	BUG();
}

/* TODO: this shouldn't be here but it is because the frontend drivers
+0 −7
Original line number Diff line number Diff line
@@ -45,13 +45,6 @@ static struct vcpu_info __percpu *xen_vcpu_info;
unsigned long xen_released_pages;
struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;

/* TODO: to be removed */
__read_mostly int xen_have_vector_callback;
EXPORT_SYMBOL_GPL(xen_have_vector_callback);

int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);

static __read_mostly unsigned int xen_events_irq;

static __initdata struct device_node *xen_node;
Loading