xen: features for 4.4-rc0
- Improve balloon driver memory hotplug placement. - Use unpopulated hotplugged memory for foreign pages (if supported/enabled). - Support 64 KiB guest pages on arm64. - CPU hotplug support on arm/arm64. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJWOeSkAAoJEFxbo/MsZsTRph0H/0nE8Tx0GyGtOyCYfBdInTvI WgjvL8VR1XrweZMVis3668MzhLSYg6b5lvJsoi+L3jlzYRyze43iHXsKfvp+8p0o TVUhFnlHEHF8ASEtPydAi6HgS7Dn9OQ9LaZ45R1Gk0rHnwJjIQonhTn2jB0yS9Am Hf4aZXP2NVZphjYcloqNsLH0G6mGLtgq8cS0uKcVO2YIrR4Dr3sfj9qfq9mflf8n sA/5ifoHRfOUD1vJzYs4YmIBUv270jSsprWK/Mi2oXIxUTBpKRAV1RVCAPW6GFci HIZjIJkjEPWLsvxWEs0dUFJQGp3jel5h8vFPkDWBYs3+9rILU2DnLWpKGNDHx3k= =vUfa -----END PGP SIGNATURE----- Merge tag 'for-linus-4.4-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen updates from David Vrabel: - Improve balloon driver memory hotplug placement. - Use unpopulated hotplugged memory for foreign pages (if supported/enabled). - Support 64 KiB guest pages on arm64. - CPU hotplug support on arm/arm64. * tag 'for-linus-4.4-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (44 commits) xen: fix the check of e_pfn in xen_find_pfn_range x86/xen: add reschedule point when mapping foreign GFNs xen/arm: don't try to re-register vcpu_info on cpu_hotplug. xen, cpu_hotplug: call device_offline instead of cpu_down xen/arm: Enable cpu_hotplug.c xenbus: Support multiple grants ring with 64KB xen/grant-table: Add an helper to iterate over a specific number of grants xen/xenbus: Rename *RING_PAGE* to *RING_GRANT* xen/arm: correct comment in enlighten.c xen/gntdev: use types from linux/types.h in userspace headers xen/gntalloc: use types from linux/types.h in userspace headers xen/balloon: Use the correct sizeof when declaring frame_list xen/swiotlb: Add support for 64KB page granularity xen/swiotlb: Pass addresses rather than frame numbers to xen_arch_need_swiotlb arm/xen: Add support for 64KB page granularity xen/privcmd: Add support for Linux 64KB page granularity net/xen-netback: Make it running on 64KB page granularity net/xen-netfront: Make it running on 64KB page granularity block/xen-blkback: Make it running on 64KB page granularity block/xen-blkfront: Make it running on 64KB page granularity ...
This commit is contained in:
commit
41ecf1404b
41 changed files with 1370 additions and 652 deletions
|
@ -11,6 +11,8 @@
|
|||
#ifndef __LINUX_PUBLIC_GNTALLOC_H__
|
||||
#define __LINUX_PUBLIC_GNTALLOC_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Allocates a new page and creates a new grant reference.
|
||||
*/
|
||||
|
@ -19,17 +21,17 @@ _IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
|
|||
struct ioctl_gntalloc_alloc_gref {
|
||||
/* IN parameters */
|
||||
/* The ID of the domain to be given access to the grants. */
|
||||
uint16_t domid;
|
||||
__u16 domid;
|
||||
/* Flags for this mapping */
|
||||
uint16_t flags;
|
||||
__u16 flags;
|
||||
/* Number of pages to map */
|
||||
uint32_t count;
|
||||
__u32 count;
|
||||
/* OUT parameters */
|
||||
/* The offset to be used on a subsequent call to mmap(). */
|
||||
uint64_t index;
|
||||
__u64 index;
|
||||
/* The grant references of the newly created grant, one per page */
|
||||
/* Variable size, depending on count */
|
||||
uint32_t gref_ids[1];
|
||||
__u32 gref_ids[1];
|
||||
};
|
||||
|
||||
#define GNTALLOC_FLAG_WRITABLE 1
|
||||
|
@ -43,9 +45,9 @@ _IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
|
|||
struct ioctl_gntalloc_dealloc_gref {
|
||||
/* IN parameters */
|
||||
/* The offset returned in the map operation */
|
||||
uint64_t index;
|
||||
__u64 index;
|
||||
/* Number of references to unmap */
|
||||
uint32_t count;
|
||||
__u32 count;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -67,11 +69,11 @@ struct ioctl_gntalloc_unmap_notify {
|
|||
* be cleared. Otherwise, it can be any byte in the page whose
|
||||
* notification we are adjusting.
|
||||
*/
|
||||
uint64_t index;
|
||||
__u64 index;
|
||||
/* Action(s) to take on unmap */
|
||||
uint32_t action;
|
||||
__u32 action;
|
||||
/* Event channel to notify */
|
||||
uint32_t event_channel_port;
|
||||
__u32 event_channel_port;
|
||||
};
|
||||
|
||||
/* Clear (set to zero) the byte specified by index */
|
||||
|
|
|
@ -33,11 +33,13 @@
|
|||
#ifndef __LINUX_PUBLIC_GNTDEV_H__
|
||||
#define __LINUX_PUBLIC_GNTDEV_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct ioctl_gntdev_grant_ref {
|
||||
/* The domain ID of the grant to be mapped. */
|
||||
uint32_t domid;
|
||||
__u32 domid;
|
||||
/* The grant reference of the grant to be mapped. */
|
||||
uint32_t ref;
|
||||
__u32 ref;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -50,11 +52,11 @@ _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
|
|||
struct ioctl_gntdev_map_grant_ref {
|
||||
/* IN parameters */
|
||||
/* The number of grants to be mapped. */
|
||||
uint32_t count;
|
||||
uint32_t pad;
|
||||
__u32 count;
|
||||
__u32 pad;
|
||||
/* OUT parameters */
|
||||
/* The offset to be used on a subsequent call to mmap(). */
|
||||
uint64_t index;
|
||||
__u64 index;
|
||||
/* Variable IN parameter. */
|
||||
/* Array of grant references, of size @count. */
|
||||
struct ioctl_gntdev_grant_ref refs[1];
|
||||
|
@ -70,10 +72,10 @@ _IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))
|
|||
struct ioctl_gntdev_unmap_grant_ref {
|
||||
/* IN parameters */
|
||||
/* The offset was returned by the corresponding map operation. */
|
||||
uint64_t index;
|
||||
__u64 index;
|
||||
/* The number of pages to be unmapped. */
|
||||
uint32_t count;
|
||||
uint32_t pad;
|
||||
__u32 count;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -93,13 +95,13 @@ _IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr))
|
|||
struct ioctl_gntdev_get_offset_for_vaddr {
|
||||
/* IN parameters */
|
||||
/* The virtual address of the first mapped page in a range. */
|
||||
uint64_t vaddr;
|
||||
__u64 vaddr;
|
||||
/* OUT parameters */
|
||||
/* The offset that was used in the initial mmap() operation. */
|
||||
uint64_t offset;
|
||||
__u64 offset;
|
||||
/* The number of pages mapped in the VM area that begins at @vaddr. */
|
||||
uint32_t count;
|
||||
uint32_t pad;
|
||||
__u32 count;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -113,7 +115,7 @@ _IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants))
|
|||
struct ioctl_gntdev_set_max_grants {
|
||||
/* IN parameter */
|
||||
/* The maximum number of grants that may be mapped at once. */
|
||||
uint32_t count;
|
||||
__u32 count;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -135,11 +137,11 @@ struct ioctl_gntdev_unmap_notify {
|
|||
* be cleared. Otherwise, it can be any byte in the page whose
|
||||
* notification we are adjusting.
|
||||
*/
|
||||
uint64_t index;
|
||||
__u64 index;
|
||||
/* Action(s) to take on unmap */
|
||||
uint32_t action;
|
||||
__u32 action;
|
||||
/* Event channel to notify */
|
||||
uint32_t event_channel_port;
|
||||
__u32 event_channel_port;
|
||||
};
|
||||
|
||||
/* Clear (set to zero) the byte specified by index */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue