include/standard-headers/asm-x86/hyperv.h | 19 ++++++++++--- include/standard-headers/linux/pci_regs.h | 42 ++++++++++++++++------------ include/standard-headers/linux/virtio_ring.h | 4 +-- linux-headers/asm-s390/kvm.h | 6 ++++ linux-headers/linux/kvm.h | 3 +- linux-headers/linux/userfaultfd.h | 16 ++++++++++- 6 files changed, 64 insertions(+), 26 deletions(-)
Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com>
---
include/standard-headers/asm-x86/hyperv.h | 19 ++++++++++---
include/standard-headers/linux/pci_regs.h | 42 ++++++++++++++++------------
include/standard-headers/linux/virtio_ring.h | 4 +--
linux-headers/asm-s390/kvm.h | 6 ++++
linux-headers/linux/kvm.h | 3 +-
linux-headers/linux/userfaultfd.h | 16 ++++++++++-
6 files changed, 64 insertions(+), 26 deletions(-)
diff --git a/include/standard-headers/asm-x86/hyperv.h b/include/standard-headers/asm-x86/hyperv.h
index fac7651..5f95d5e 100644
--- a/include/standard-headers/asm-x86/hyperv.h
+++ b/include/standard-headers/asm-x86/hyperv.h
@@ -149,12 +149,9 @@
*/
#define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9)
-/*
- * HV_VP_SET available
- */
+/* Recommend using the newer ExProcessorMasks interface */
#define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11)
-
/*
* Crash notification flag.
*/
@@ -242,7 +239,11 @@
(~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1))
/* Declare the various hypercall operations. */
+#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002
+#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003
#define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008
+#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013
+#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014
#define HVCALL_POST_MESSAGE 0x005c
#define HVCALL_SIGNAL_EVENT 0x005d
@@ -259,6 +260,16 @@
#define HV_PROCESSOR_POWER_STATE_C2 2
#define HV_PROCESSOR_POWER_STATE_C3 3
+#define HV_FLUSH_ALL_PROCESSORS BIT(0)
+#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES BIT(1)
+#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY BIT(2)
+#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3)
+
+enum HV_GENERIC_SET_FORMAT {
+ HV_GENERIC_SET_SPARCE_4K,
+ HV_GENERIC_SET_ALL,
+};
+
/* hypercall status code */
#define HV_STATUS_SUCCESS 0
#define HV_STATUS_INVALID_HYPERCALL_CODE 2
diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h
index c22d3eb..f8d5804 100644
--- a/include/standard-headers/linux/pci_regs.h
+++ b/include/standard-headers/linux/pci_regs.h
@@ -513,6 +513,7 @@
#define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */
#define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */
#define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */
#define PCI_EXP_LNKCAP 12 /* Link Capabilities */
#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
#define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
@@ -556,7 +557,7 @@
#define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */
#define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */
#define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */
#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */
#define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */
#define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */
@@ -639,7 +640,7 @@
#define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */
#define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */
#define PCI_EXP_DEVSTA2 42 /* Device Status 2 */
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */
#define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */
#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */
#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */
@@ -647,6 +648,7 @@
#define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */
#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */
#define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */
@@ -733,23 +735,17 @@
#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */
#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */
-/* Correctable Err Reporting Enable */
-#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
-/* Non-fatal Err Reporting Enable */
-#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
-/* Fatal Err Reporting Enable */
-#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
+#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */
+#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */
+#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */
#define PCI_ERR_ROOT_STATUS 48
-#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
-/* Multi ERR_COR Received */
-#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
-/* ERR_FATAL/NONFATAL Received */
-#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
-/* Multi ERR_FATAL/NONFATAL Received */
-#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008
-#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */
-#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
-#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
+#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
+#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */
+#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */
+#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */
+#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */
+#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
+#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
#define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */
/* Virtual Channel */
@@ -967,6 +963,7 @@
#define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */
#define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */
#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */
+#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */
#define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
#define PCI_EXP_DPC_CTL 6 /* DPC control */
@@ -980,6 +977,15 @@
#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
+#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */
+#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */
+#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */
+#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */
+#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */
+#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */
+#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */
+#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */
+
/* Precision Time Measurement */
#define PCI_PTM_CAP 0x04 /* PTM Capability */
#define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */
diff --git a/include/standard-headers/linux/virtio_ring.h b/include/standard-headers/linux/virtio_ring.h
index 023c6db..f1dc05d 100644
--- a/include/standard-headers/linux/virtio_ring.h
+++ b/include/standard-headers/linux/virtio_ring.h
@@ -1,7 +1,7 @@
#ifndef _LINUX_VIRTIO_RING_H
#define _LINUX_VIRTIO_RING_H
-/* An interface for efficient virtio implementation, currently for use by KVM
- * and lguest, but hopefully others soon. Do NOT change this since it will
+/* An interface for efficient virtio implementation, currently for use by KVM,
+ * but hopefully others soon. Do NOT change this since it will
* break existing servers and clients.
*
* This header is BSD licensed so anyone can use the definitions to implement
diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
index 8387d71..7b750ef 100644
--- a/linux-headers/asm-s390/kvm.h
+++ b/linux-headers/asm-s390/kvm.h
@@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req {
/* kvm attributes for KVM_S390_VM_TOD */
#define KVM_S390_VM_TOD_LOW 0
#define KVM_S390_VM_TOD_HIGH 1
+#define KVM_S390_VM_TOD_EXT 2
+
+struct kvm_s390_vm_tod_clock {
+ __u8 epoch_idx;
+ __u64 tod;
+};
/* kvm attributes for KVM_S390_VM_CPU_MODEL */
/* processor related attributes are r/w */
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index 7971a4f..dd8a918 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size {
struct kvm_ppc_smmu_info {
__u64 flags;
__u32 slb_size;
- __u32 pad;
+ __u16 data_keys; /* # storage keys supported for data */
+ __u16 instr_keys; /* # storage keys supported for instructions */
struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
};
diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h
index 9701772..b43cf0d 100644
--- a/linux-headers/linux/userfaultfd.h
+++ b/linux-headers/linux/userfaultfd.h
@@ -23,7 +23,9 @@
UFFD_FEATURE_EVENT_REMOVE | \
UFFD_FEATURE_EVENT_UNMAP | \
UFFD_FEATURE_MISSING_HUGETLBFS | \
- UFFD_FEATURE_MISSING_SHMEM)
+ UFFD_FEATURE_MISSING_SHMEM | \
+ UFFD_FEATURE_SIGBUS | \
+ UFFD_FEATURE_THREAD_ID)
#define UFFD_API_IOCTLS \
((__u64)1 << _UFFDIO_REGISTER | \
(__u64)1 << _UFFDIO_UNREGISTER | \
@@ -78,6 +80,9 @@ struct uffd_msg {
struct {
__u64 flags;
__u64 address;
+ union {
+ __u32 ptid;
+ } feat;
} pagefault;
struct {
@@ -153,6 +158,13 @@ struct uffdio_api {
* UFFD_FEATURE_MISSING_SHMEM works the same as
* UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem
* (i.e. tmpfs and other shmem based APIs).
+ *
+ * UFFD_FEATURE_SIGBUS feature means no page-fault
+ * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead
+ * a SIGBUS signal will be sent to the faulting process.
+ *
+ * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will
+ * be returned, if feature is not requested 0 will be returned.
*/
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
#define UFFD_FEATURE_EVENT_FORK (1<<1)
@@ -161,6 +173,8 @@ struct uffdio_api {
#define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4)
#define UFFD_FEATURE_MISSING_SHMEM (1<<5)
#define UFFD_FEATURE_EVENT_UNMAP (1<<6)
+#define UFFD_FEATURE_SIGBUS (1<<7)
+#define UFFD_FEATURE_THREAD_ID (1<<8)
__u64 features;
__u64 ioctls;
--
1.9.1
cc'ing in Paolo who I think knows more about checking this sync. Dave * Alexey Perevalov (a.perevalov@samsung.com) wrote: > Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com> > --- > include/standard-headers/asm-x86/hyperv.h | 19 ++++++++++--- > include/standard-headers/linux/pci_regs.h | 42 ++++++++++++++++------------ > include/standard-headers/linux/virtio_ring.h | 4 +-- > linux-headers/asm-s390/kvm.h | 6 ++++ > linux-headers/linux/kvm.h | 3 +- > linux-headers/linux/userfaultfd.h | 16 ++++++++++- > 6 files changed, 64 insertions(+), 26 deletions(-) > > diff --git a/include/standard-headers/asm-x86/hyperv.h b/include/standard-headers/asm-x86/hyperv.h > index fac7651..5f95d5e 100644 > --- a/include/standard-headers/asm-x86/hyperv.h > +++ b/include/standard-headers/asm-x86/hyperv.h > @@ -149,12 +149,9 @@ > */ > #define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9) > > -/* > - * HV_VP_SET available > - */ > +/* Recommend using the newer ExProcessorMasks interface */ > #define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11) > > - > /* > * Crash notification flag. > */ > @@ -242,7 +239,11 @@ > (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1)) > > /* Declare the various hypercall operations. */ > +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002 > +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003 > #define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008 > +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013 > +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014 > #define HVCALL_POST_MESSAGE 0x005c > #define HVCALL_SIGNAL_EVENT 0x005d > > @@ -259,6 +260,16 @@ > #define HV_PROCESSOR_POWER_STATE_C2 2 > #define HV_PROCESSOR_POWER_STATE_C3 3 > > +#define HV_FLUSH_ALL_PROCESSORS BIT(0) > +#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES BIT(1) > +#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY BIT(2) > +#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3) > + > +enum HV_GENERIC_SET_FORMAT { > + HV_GENERIC_SET_SPARCE_4K, > + HV_GENERIC_SET_ALL, > +}; > + > /* hypercall status code */ > #define HV_STATUS_SUCCESS 0 > #define HV_STATUS_INVALID_HYPERCALL_CODE 2 > diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h > index c22d3eb..f8d5804 100644 > --- a/include/standard-headers/linux/pci_regs.h > +++ b/include/standard-headers/linux/pci_regs.h > @@ -513,6 +513,7 @@ > #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ > #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ > #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ > +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */ > #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ > #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ > #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ > @@ -556,7 +557,7 @@ > #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ > #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ > #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ > -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */ > +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */ > #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ > #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ > #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ > @@ -639,7 +640,7 @@ > #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ > #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ > #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ > -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ > +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */ > #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ > #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ > #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ > @@ -647,6 +648,7 @@ > #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ > #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ > #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ > +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ > #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ > #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ > #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ > @@ -733,23 +735,17 @@ > #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ > #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ > #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ > -/* Correctable Err Reporting Enable */ > -#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 > -/* Non-fatal Err Reporting Enable */ > -#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 > -/* Fatal Err Reporting Enable */ > -#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 > +#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ > +#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ > +#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ > #define PCI_ERR_ROOT_STATUS 48 > -#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ > -/* Multi ERR_COR Received */ > -#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 > -/* ERR_FATAL/NONFATAL Received */ > -#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 > -/* Multi ERR_FATAL/NONFATAL Received */ > -#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 > -#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */ > -#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ > -#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ > +#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ > +#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ > +#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ > +#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */ > +#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */ > +#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ > +#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ > #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ > > /* Virtual Channel */ > @@ -967,6 +963,7 @@ > #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ > #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ > #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */ > +#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */ > #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ > > #define PCI_EXP_DPC_CTL 6 /* DPC control */ > @@ -980,6 +977,15 @@ > > #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ > > +#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */ > +#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */ > +#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */ > +#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */ > +#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */ > +#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */ > +#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */ > +#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */ > + > /* Precision Time Measurement */ > #define PCI_PTM_CAP 0x04 /* PTM Capability */ > #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ > diff --git a/include/standard-headers/linux/virtio_ring.h b/include/standard-headers/linux/virtio_ring.h > index 023c6db..f1dc05d 100644 > --- a/include/standard-headers/linux/virtio_ring.h > +++ b/include/standard-headers/linux/virtio_ring.h > @@ -1,7 +1,7 @@ > #ifndef _LINUX_VIRTIO_RING_H > #define _LINUX_VIRTIO_RING_H > -/* An interface for efficient virtio implementation, currently for use by KVM > - * and lguest, but hopefully others soon. Do NOT change this since it will > +/* An interface for efficient virtio implementation, currently for use by KVM, > + * but hopefully others soon. Do NOT change this since it will > * break existing servers and clients. > * > * This header is BSD licensed so anyone can use the definitions to implement > diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h > index 8387d71..7b750ef 100644 > --- a/linux-headers/asm-s390/kvm.h > +++ b/linux-headers/asm-s390/kvm.h > @@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req { > /* kvm attributes for KVM_S390_VM_TOD */ > #define KVM_S390_VM_TOD_LOW 0 > #define KVM_S390_VM_TOD_HIGH 1 > +#define KVM_S390_VM_TOD_EXT 2 > + > +struct kvm_s390_vm_tod_clock { > + __u8 epoch_idx; > + __u64 tod; > +}; > > /* kvm attributes for KVM_S390_VM_CPU_MODEL */ > /* processor related attributes are r/w */ > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index 7971a4f..dd8a918 100644 > --- a/linux-headers/linux/kvm.h > +++ b/linux-headers/linux/kvm.h > @@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { > struct kvm_ppc_smmu_info { > __u64 flags; > __u32 slb_size; > - __u32 pad; > + __u16 data_keys; /* # storage keys supported for data */ > + __u16 instr_keys; /* # storage keys supported for instructions */ > struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; > }; > > diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h > index 9701772..b43cf0d 100644 > --- a/linux-headers/linux/userfaultfd.h > +++ b/linux-headers/linux/userfaultfd.h > @@ -23,7 +23,9 @@ > UFFD_FEATURE_EVENT_REMOVE | \ > UFFD_FEATURE_EVENT_UNMAP | \ > UFFD_FEATURE_MISSING_HUGETLBFS | \ > - UFFD_FEATURE_MISSING_SHMEM) > + UFFD_FEATURE_MISSING_SHMEM | \ > + UFFD_FEATURE_SIGBUS | \ > + UFFD_FEATURE_THREAD_ID) > #define UFFD_API_IOCTLS \ > ((__u64)1 << _UFFDIO_REGISTER | \ > (__u64)1 << _UFFDIO_UNREGISTER | \ > @@ -78,6 +80,9 @@ struct uffd_msg { > struct { > __u64 flags; > __u64 address; > + union { > + __u32 ptid; > + } feat; > } pagefault; > > struct { > @@ -153,6 +158,13 @@ struct uffdio_api { > * UFFD_FEATURE_MISSING_SHMEM works the same as > * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem > * (i.e. tmpfs and other shmem based APIs). > + * > + * UFFD_FEATURE_SIGBUS feature means no page-fault > + * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead > + * a SIGBUS signal will be sent to the faulting process. > + * > + * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will > + * be returned, if feature is not requested 0 will be returned. > */ > #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) > #define UFFD_FEATURE_EVENT_FORK (1<<1) > @@ -161,6 +173,8 @@ struct uffdio_api { > #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) > #define UFFD_FEATURE_MISSING_SHMEM (1<<5) > #define UFFD_FEATURE_EVENT_UNMAP (1<<6) > +#define UFFD_FEATURE_SIGBUS (1<<7) > +#define UFFD_FEATURE_THREAD_ID (1<<8) > __u64 features; > > __u64 ioctls; > -- > 1.9.1 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 27/09/2017 21:05, Dr. David Alan Gilbert wrote: > cc'ing in Paolo who I think knows more about checking this sync. It looks good to me. Paolo > Dave > > * Alexey Perevalov (a.perevalov@samsung.com) wrote: >> Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com> >> --- >> include/standard-headers/asm-x86/hyperv.h | 19 ++++++++++--- >> include/standard-headers/linux/pci_regs.h | 42 ++++++++++++++++------------ >> include/standard-headers/linux/virtio_ring.h | 4 +-- >> linux-headers/asm-s390/kvm.h | 6 ++++ >> linux-headers/linux/kvm.h | 3 +- >> linux-headers/linux/userfaultfd.h | 16 ++++++++++- >> 6 files changed, 64 insertions(+), 26 deletions(-) >> >> diff --git a/include/standard-headers/asm-x86/hyperv.h b/include/standard-headers/asm-x86/hyperv.h >> index fac7651..5f95d5e 100644 >> --- a/include/standard-headers/asm-x86/hyperv.h >> +++ b/include/standard-headers/asm-x86/hyperv.h >> @@ -149,12 +149,9 @@ >> */ >> #define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9) >> >> -/* >> - * HV_VP_SET available >> - */ >> +/* Recommend using the newer ExProcessorMasks interface */ >> #define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11) >> >> - >> /* >> * Crash notification flag. >> */ >> @@ -242,7 +239,11 @@ >> (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1)) >> >> /* Declare the various hypercall operations. */ >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002 >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003 >> #define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008 >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013 >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014 >> #define HVCALL_POST_MESSAGE 0x005c >> #define HVCALL_SIGNAL_EVENT 0x005d >> >> @@ -259,6 +260,16 @@ >> #define HV_PROCESSOR_POWER_STATE_C2 2 >> #define HV_PROCESSOR_POWER_STATE_C3 3 >> >> +#define HV_FLUSH_ALL_PROCESSORS BIT(0) >> +#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES BIT(1) >> +#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY BIT(2) >> +#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3) >> + >> +enum HV_GENERIC_SET_FORMAT { >> + HV_GENERIC_SET_SPARCE_4K, >> + HV_GENERIC_SET_ALL, >> +}; >> + >> /* hypercall status code */ >> #define HV_STATUS_SUCCESS 0 >> #define HV_STATUS_INVALID_HYPERCALL_CODE 2 >> diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h >> index c22d3eb..f8d5804 100644 >> --- a/include/standard-headers/linux/pci_regs.h >> +++ b/include/standard-headers/linux/pci_regs.h >> @@ -513,6 +513,7 @@ >> #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ >> #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ >> #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ >> +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */ >> #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ >> #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ >> #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ >> @@ -556,7 +557,7 @@ >> #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ >> #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ >> #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ >> -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */ >> +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */ >> #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ >> #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ >> #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ >> @@ -639,7 +640,7 @@ >> #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ >> #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ >> #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ >> -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ >> +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */ >> #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ >> #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ >> #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ >> @@ -647,6 +648,7 @@ >> #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ >> #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ >> #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ >> +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ >> #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ >> #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ >> #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ >> @@ -733,23 +735,17 @@ >> #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ >> #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ >> #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ >> -/* Correctable Err Reporting Enable */ >> -#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 >> -/* Non-fatal Err Reporting Enable */ >> -#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 >> -/* Fatal Err Reporting Enable */ >> -#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 >> +#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ >> +#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ >> +#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ >> #define PCI_ERR_ROOT_STATUS 48 >> -#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ >> -/* Multi ERR_COR Received */ >> -#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 >> -/* ERR_FATAL/NONFATAL Received */ >> -#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 >> -/* Multi ERR_FATAL/NONFATAL Received */ >> -#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 >> -#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */ >> -#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ >> -#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ >> +#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ >> +#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ >> +#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ >> +#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */ >> +#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */ >> +#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ >> +#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ >> #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ >> >> /* Virtual Channel */ >> @@ -967,6 +963,7 @@ >> #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ >> #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ >> #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */ >> +#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */ >> #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ >> >> #define PCI_EXP_DPC_CTL 6 /* DPC control */ >> @@ -980,6 +977,15 @@ >> >> #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ >> >> +#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */ >> +#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */ >> +#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */ >> +#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */ >> +#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */ >> +#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */ >> +#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */ >> +#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */ >> + >> /* Precision Time Measurement */ >> #define PCI_PTM_CAP 0x04 /* PTM Capability */ >> #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ >> diff --git a/include/standard-headers/linux/virtio_ring.h b/include/standard-headers/linux/virtio_ring.h >> index 023c6db..f1dc05d 100644 >> --- a/include/standard-headers/linux/virtio_ring.h >> +++ b/include/standard-headers/linux/virtio_ring.h >> @@ -1,7 +1,7 @@ >> #ifndef _LINUX_VIRTIO_RING_H >> #define _LINUX_VIRTIO_RING_H >> -/* An interface for efficient virtio implementation, currently for use by KVM >> - * and lguest, but hopefully others soon. Do NOT change this since it will >> +/* An interface for efficient virtio implementation, currently for use by KVM, >> + * but hopefully others soon. Do NOT change this since it will >> * break existing servers and clients. >> * >> * This header is BSD licensed so anyone can use the definitions to implement >> diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h >> index 8387d71..7b750ef 100644 >> --- a/linux-headers/asm-s390/kvm.h >> +++ b/linux-headers/asm-s390/kvm.h >> @@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req { >> /* kvm attributes for KVM_S390_VM_TOD */ >> #define KVM_S390_VM_TOD_LOW 0 >> #define KVM_S390_VM_TOD_HIGH 1 >> +#define KVM_S390_VM_TOD_EXT 2 >> + >> +struct kvm_s390_vm_tod_clock { >> + __u8 epoch_idx; >> + __u64 tod; >> +}; >> >> /* kvm attributes for KVM_S390_VM_CPU_MODEL */ >> /* processor related attributes are r/w */ >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h >> index 7971a4f..dd8a918 100644 >> --- a/linux-headers/linux/kvm.h >> +++ b/linux-headers/linux/kvm.h >> @@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { >> struct kvm_ppc_smmu_info { >> __u64 flags; >> __u32 slb_size; >> - __u32 pad; >> + __u16 data_keys; /* # storage keys supported for data */ >> + __u16 instr_keys; /* # storage keys supported for instructions */ >> struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; >> }; >> >> diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h >> index 9701772..b43cf0d 100644 >> --- a/linux-headers/linux/userfaultfd.h >> +++ b/linux-headers/linux/userfaultfd.h >> @@ -23,7 +23,9 @@ >> UFFD_FEATURE_EVENT_REMOVE | \ >> UFFD_FEATURE_EVENT_UNMAP | \ >> UFFD_FEATURE_MISSING_HUGETLBFS | \ >> - UFFD_FEATURE_MISSING_SHMEM) >> + UFFD_FEATURE_MISSING_SHMEM | \ >> + UFFD_FEATURE_SIGBUS | \ >> + UFFD_FEATURE_THREAD_ID) >> #define UFFD_API_IOCTLS \ >> ((__u64)1 << _UFFDIO_REGISTER | \ >> (__u64)1 << _UFFDIO_UNREGISTER | \ >> @@ -78,6 +80,9 @@ struct uffd_msg { >> struct { >> __u64 flags; >> __u64 address; >> + union { >> + __u32 ptid; >> + } feat; >> } pagefault; >> >> struct { >> @@ -153,6 +158,13 @@ struct uffdio_api { >> * UFFD_FEATURE_MISSING_SHMEM works the same as >> * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem >> * (i.e. tmpfs and other shmem based APIs). >> + * >> + * UFFD_FEATURE_SIGBUS feature means no page-fault >> + * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead >> + * a SIGBUS signal will be sent to the faulting process. >> + * >> + * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will >> + * be returned, if feature is not requested 0 will be returned. >> */ >> #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) >> #define UFFD_FEATURE_EVENT_FORK (1<<1) >> @@ -161,6 +173,8 @@ struct uffdio_api { >> #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) >> #define UFFD_FEATURE_MISSING_SHMEM (1<<5) >> #define UFFD_FEATURE_EVENT_UNMAP (1<<6) >> +#define UFFD_FEATURE_SIGBUS (1<<7) >> +#define UFFD_FEATURE_THREAD_ID (1<<8) >> __u64 features; >> >> __u64 ioctls; >> -- >> 1.9.1 >> > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK >
* Paolo Bonzini (pbonzini@redhat.com) wrote: > On 27/09/2017 21:05, Dr. David Alan Gilbert wrote: > > cc'ing in Paolo who I think knows more about checking this sync. > > It looks good to me. Fancy turning that into a Reviewed-by and pulling it? Dave > Paolo > > > Dave > > > > * Alexey Perevalov (a.perevalov@samsung.com) wrote: > >> Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com> > >> --- > >> include/standard-headers/asm-x86/hyperv.h | 19 ++++++++++--- > >> include/standard-headers/linux/pci_regs.h | 42 ++++++++++++++++------------ > >> include/standard-headers/linux/virtio_ring.h | 4 +-- > >> linux-headers/asm-s390/kvm.h | 6 ++++ > >> linux-headers/linux/kvm.h | 3 +- > >> linux-headers/linux/userfaultfd.h | 16 ++++++++++- > >> 6 files changed, 64 insertions(+), 26 deletions(-) > >> > >> diff --git a/include/standard-headers/asm-x86/hyperv.h b/include/standard-headers/asm-x86/hyperv.h > >> index fac7651..5f95d5e 100644 > >> --- a/include/standard-headers/asm-x86/hyperv.h > >> +++ b/include/standard-headers/asm-x86/hyperv.h > >> @@ -149,12 +149,9 @@ > >> */ > >> #define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9) > >> > >> -/* > >> - * HV_VP_SET available > >> - */ > >> +/* Recommend using the newer ExProcessorMasks interface */ > >> #define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11) > >> > >> - > >> /* > >> * Crash notification flag. > >> */ > >> @@ -242,7 +239,11 @@ > >> (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1)) > >> > >> /* Declare the various hypercall operations. */ > >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002 > >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003 > >> #define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008 > >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013 > >> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014 > >> #define HVCALL_POST_MESSAGE 0x005c > >> #define HVCALL_SIGNAL_EVENT 0x005d > >> > >> @@ -259,6 +260,16 @@ > >> #define HV_PROCESSOR_POWER_STATE_C2 2 > >> #define HV_PROCESSOR_POWER_STATE_C3 3 > >> > >> +#define HV_FLUSH_ALL_PROCESSORS BIT(0) > >> +#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES BIT(1) > >> +#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY BIT(2) > >> +#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3) > >> + > >> +enum HV_GENERIC_SET_FORMAT { > >> + HV_GENERIC_SET_SPARCE_4K, > >> + HV_GENERIC_SET_ALL, > >> +}; > >> + > >> /* hypercall status code */ > >> #define HV_STATUS_SUCCESS 0 > >> #define HV_STATUS_INVALID_HYPERCALL_CODE 2 > >> diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h > >> index c22d3eb..f8d5804 100644 > >> --- a/include/standard-headers/linux/pci_regs.h > >> +++ b/include/standard-headers/linux/pci_regs.h > >> @@ -513,6 +513,7 @@ > >> #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ > >> #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ > >> #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ > >> +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */ > >> #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ > >> #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ > >> #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ > >> @@ -556,7 +557,7 @@ > >> #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ > >> #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ > >> #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ > >> -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */ > >> +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */ > >> #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ > >> #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ > >> #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ > >> @@ -639,7 +640,7 @@ > >> #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ > >> #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ > >> #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ > >> -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ > >> +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */ > >> #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ > >> #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ > >> #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ > >> @@ -647,6 +648,7 @@ > >> #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ > >> #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ > >> #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ > >> +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ > >> #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ > >> #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ > >> #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ > >> @@ -733,23 +735,17 @@ > >> #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ > >> #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ > >> #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ > >> -/* Correctable Err Reporting Enable */ > >> -#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 > >> -/* Non-fatal Err Reporting Enable */ > >> -#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 > >> -/* Fatal Err Reporting Enable */ > >> -#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 > >> +#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ > >> +#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ > >> +#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ > >> #define PCI_ERR_ROOT_STATUS 48 > >> -#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ > >> -/* Multi ERR_COR Received */ > >> -#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 > >> -/* ERR_FATAL/NONFATAL Received */ > >> -#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 > >> -/* Multi ERR_FATAL/NONFATAL Received */ > >> -#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 > >> -#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */ > >> -#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ > >> -#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ > >> +#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ > >> +#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ > >> +#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ > >> +#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */ > >> +#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */ > >> +#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ > >> +#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ > >> #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ > >> > >> /* Virtual Channel */ > >> @@ -967,6 +963,7 @@ > >> #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ > >> #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ > >> #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */ > >> +#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */ > >> #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ > >> > >> #define PCI_EXP_DPC_CTL 6 /* DPC control */ > >> @@ -980,6 +977,15 @@ > >> > >> #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ > >> > >> +#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */ > >> +#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */ > >> +#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */ > >> +#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */ > >> +#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */ > >> +#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */ > >> +#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */ > >> +#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */ > >> + > >> /* Precision Time Measurement */ > >> #define PCI_PTM_CAP 0x04 /* PTM Capability */ > >> #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ > >> diff --git a/include/standard-headers/linux/virtio_ring.h b/include/standard-headers/linux/virtio_ring.h > >> index 023c6db..f1dc05d 100644 > >> --- a/include/standard-headers/linux/virtio_ring.h > >> +++ b/include/standard-headers/linux/virtio_ring.h > >> @@ -1,7 +1,7 @@ > >> #ifndef _LINUX_VIRTIO_RING_H > >> #define _LINUX_VIRTIO_RING_H > >> -/* An interface for efficient virtio implementation, currently for use by KVM > >> - * and lguest, but hopefully others soon. Do NOT change this since it will > >> +/* An interface for efficient virtio implementation, currently for use by KVM, > >> + * but hopefully others soon. Do NOT change this since it will > >> * break existing servers and clients. > >> * > >> * This header is BSD licensed so anyone can use the definitions to implement > >> diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h > >> index 8387d71..7b750ef 100644 > >> --- a/linux-headers/asm-s390/kvm.h > >> +++ b/linux-headers/asm-s390/kvm.h > >> @@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req { > >> /* kvm attributes for KVM_S390_VM_TOD */ > >> #define KVM_S390_VM_TOD_LOW 0 > >> #define KVM_S390_VM_TOD_HIGH 1 > >> +#define KVM_S390_VM_TOD_EXT 2 > >> + > >> +struct kvm_s390_vm_tod_clock { > >> + __u8 epoch_idx; > >> + __u64 tod; > >> +}; > >> > >> /* kvm attributes for KVM_S390_VM_CPU_MODEL */ > >> /* processor related attributes are r/w */ > >> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > >> index 7971a4f..dd8a918 100644 > >> --- a/linux-headers/linux/kvm.h > >> +++ b/linux-headers/linux/kvm.h > >> @@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { > >> struct kvm_ppc_smmu_info { > >> __u64 flags; > >> __u32 slb_size; > >> - __u32 pad; > >> + __u16 data_keys; /* # storage keys supported for data */ > >> + __u16 instr_keys; /* # storage keys supported for instructions */ > >> struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; > >> }; > >> > >> diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h > >> index 9701772..b43cf0d 100644 > >> --- a/linux-headers/linux/userfaultfd.h > >> +++ b/linux-headers/linux/userfaultfd.h > >> @@ -23,7 +23,9 @@ > >> UFFD_FEATURE_EVENT_REMOVE | \ > >> UFFD_FEATURE_EVENT_UNMAP | \ > >> UFFD_FEATURE_MISSING_HUGETLBFS | \ > >> - UFFD_FEATURE_MISSING_SHMEM) > >> + UFFD_FEATURE_MISSING_SHMEM | \ > >> + UFFD_FEATURE_SIGBUS | \ > >> + UFFD_FEATURE_THREAD_ID) > >> #define UFFD_API_IOCTLS \ > >> ((__u64)1 << _UFFDIO_REGISTER | \ > >> (__u64)1 << _UFFDIO_UNREGISTER | \ > >> @@ -78,6 +80,9 @@ struct uffd_msg { > >> struct { > >> __u64 flags; > >> __u64 address; > >> + union { > >> + __u32 ptid; > >> + } feat; > >> } pagefault; > >> > >> struct { > >> @@ -153,6 +158,13 @@ struct uffdio_api { > >> * UFFD_FEATURE_MISSING_SHMEM works the same as > >> * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem > >> * (i.e. tmpfs and other shmem based APIs). > >> + * > >> + * UFFD_FEATURE_SIGBUS feature means no page-fault > >> + * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead > >> + * a SIGBUS signal will be sent to the faulting process. > >> + * > >> + * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will > >> + * be returned, if feature is not requested 0 will be returned. > >> */ > >> #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) > >> #define UFFD_FEATURE_EVENT_FORK (1<<1) > >> @@ -161,6 +173,8 @@ struct uffdio_api { > >> #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) > >> #define UFFD_FEATURE_MISSING_SHMEM (1<<5) > >> #define UFFD_FEATURE_EVENT_UNMAP (1<<6) > >> +#define UFFD_FEATURE_SIGBUS (1<<7) > >> +#define UFFD_FEATURE_THREAD_ID (1<<8) > >> __u64 features; > >> > >> __u64 ioctls; > >> -- > >> 1.9.1 > >> > > -- > > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK > > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 28/09/2017 20:02, Dr. David Alan Gilbert wrote: > * Paolo Bonzini (pbonzini@redhat.com) wrote: >> On 27/09/2017 21:05, Dr. David Alan Gilbert wrote: >>> cc'ing in Paolo who I think knows more about checking this sync. >> >> It looks good to me. > > Fancy turning that into a Reviewed-by and pulling it? Sure. Paolo > Dave > >> Paolo >> >>> Dave >>> >>> * Alexey Perevalov (a.perevalov@samsung.com) wrote: >>>> Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com> >>>> --- >>>> include/standard-headers/asm-x86/hyperv.h | 19 ++++++++++--- >>>> include/standard-headers/linux/pci_regs.h | 42 ++++++++++++++++------------ >>>> include/standard-headers/linux/virtio_ring.h | 4 +-- >>>> linux-headers/asm-s390/kvm.h | 6 ++++ >>>> linux-headers/linux/kvm.h | 3 +- >>>> linux-headers/linux/userfaultfd.h | 16 ++++++++++- >>>> 6 files changed, 64 insertions(+), 26 deletions(-) >>>> >>>> diff --git a/include/standard-headers/asm-x86/hyperv.h b/include/standard-headers/asm-x86/hyperv.h >>>> index fac7651..5f95d5e 100644 >>>> --- a/include/standard-headers/asm-x86/hyperv.h >>>> +++ b/include/standard-headers/asm-x86/hyperv.h >>>> @@ -149,12 +149,9 @@ >>>> */ >>>> #define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9) >>>> >>>> -/* >>>> - * HV_VP_SET available >>>> - */ >>>> +/* Recommend using the newer ExProcessorMasks interface */ >>>> #define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11) >>>> >>>> - >>>> /* >>>> * Crash notification flag. >>>> */ >>>> @@ -242,7 +239,11 @@ >>>> (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1)) >>>> >>>> /* Declare the various hypercall operations. */ >>>> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002 >>>> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003 >>>> #define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008 >>>> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013 >>>> +#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014 >>>> #define HVCALL_POST_MESSAGE 0x005c >>>> #define HVCALL_SIGNAL_EVENT 0x005d >>>> >>>> @@ -259,6 +260,16 @@ >>>> #define HV_PROCESSOR_POWER_STATE_C2 2 >>>> #define HV_PROCESSOR_POWER_STATE_C3 3 >>>> >>>> +#define HV_FLUSH_ALL_PROCESSORS BIT(0) >>>> +#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES BIT(1) >>>> +#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY BIT(2) >>>> +#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3) >>>> + >>>> +enum HV_GENERIC_SET_FORMAT { >>>> + HV_GENERIC_SET_SPARCE_4K, >>>> + HV_GENERIC_SET_ALL, >>>> +}; >>>> + >>>> /* hypercall status code */ >>>> #define HV_STATUS_SUCCESS 0 >>>> #define HV_STATUS_INVALID_HYPERCALL_CODE 2 >>>> diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h >>>> index c22d3eb..f8d5804 100644 >>>> --- a/include/standard-headers/linux/pci_regs.h >>>> +++ b/include/standard-headers/linux/pci_regs.h >>>> @@ -513,6 +513,7 @@ >>>> #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */ >>>> #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ >>>> #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ >>>> +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */ >>>> #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ >>>> #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ >>>> #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ >>>> @@ -556,7 +557,7 @@ >>>> #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */ >>>> #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ >>>> #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ >>>> -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */ >>>> +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */ >>>> #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ >>>> #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ >>>> #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ >>>> @@ -639,7 +640,7 @@ >>>> #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ >>>> #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ >>>> #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ >>>> -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ >>>> +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */ >>>> #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ >>>> #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ >>>> #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */ >>>> @@ -647,6 +648,7 @@ >>>> #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ >>>> #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ >>>> #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ >>>> +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ >>>> #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ >>>> #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ >>>> #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ >>>> @@ -733,23 +735,17 @@ >>>> #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ >>>> #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ >>>> #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ >>>> -/* Correctable Err Reporting Enable */ >>>> -#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 >>>> -/* Non-fatal Err Reporting Enable */ >>>> -#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 >>>> -/* Fatal Err Reporting Enable */ >>>> -#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 >>>> +#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ >>>> +#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ >>>> +#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ >>>> #define PCI_ERR_ROOT_STATUS 48 >>>> -#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ >>>> -/* Multi ERR_COR Received */ >>>> -#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 >>>> -/* ERR_FATAL/NONFATAL Received */ >>>> -#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 >>>> -/* Multi ERR_FATAL/NONFATAL Received */ >>>> -#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 >>>> -#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */ >>>> -#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ >>>> -#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ >>>> +#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ >>>> +#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ >>>> +#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ >>>> +#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */ >>>> +#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */ >>>> +#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ >>>> +#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ >>>> #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ >>>> >>>> /* Virtual Channel */ >>>> @@ -967,6 +963,7 @@ >>>> #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */ >>>> #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */ >>>> #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */ >>>> +#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */ >>>> #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ >>>> >>>> #define PCI_EXP_DPC_CTL 6 /* DPC control */ >>>> @@ -980,6 +977,15 @@ >>>> >>>> #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ >>>> >>>> +#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */ >>>> +#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */ >>>> +#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */ >>>> +#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */ >>>> +#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */ >>>> +#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */ >>>> +#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */ >>>> +#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */ >>>> + >>>> /* Precision Time Measurement */ >>>> #define PCI_PTM_CAP 0x04 /* PTM Capability */ >>>> #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */ >>>> diff --git a/include/standard-headers/linux/virtio_ring.h b/include/standard-headers/linux/virtio_ring.h >>>> index 023c6db..f1dc05d 100644 >>>> --- a/include/standard-headers/linux/virtio_ring.h >>>> +++ b/include/standard-headers/linux/virtio_ring.h >>>> @@ -1,7 +1,7 @@ >>>> #ifndef _LINUX_VIRTIO_RING_H >>>> #define _LINUX_VIRTIO_RING_H >>>> -/* An interface for efficient virtio implementation, currently for use by KVM >>>> - * and lguest, but hopefully others soon. Do NOT change this since it will >>>> +/* An interface for efficient virtio implementation, currently for use by KVM, >>>> + * but hopefully others soon. Do NOT change this since it will >>>> * break existing servers and clients. >>>> * >>>> * This header is BSD licensed so anyone can use the definitions to implement >>>> diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h >>>> index 8387d71..7b750ef 100644 >>>> --- a/linux-headers/asm-s390/kvm.h >>>> +++ b/linux-headers/asm-s390/kvm.h >>>> @@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req { >>>> /* kvm attributes for KVM_S390_VM_TOD */ >>>> #define KVM_S390_VM_TOD_LOW 0 >>>> #define KVM_S390_VM_TOD_HIGH 1 >>>> +#define KVM_S390_VM_TOD_EXT 2 >>>> + >>>> +struct kvm_s390_vm_tod_clock { >>>> + __u8 epoch_idx; >>>> + __u64 tod; >>>> +}; >>>> >>>> /* kvm attributes for KVM_S390_VM_CPU_MODEL */ >>>> /* processor related attributes are r/w */ >>>> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h >>>> index 7971a4f..dd8a918 100644 >>>> --- a/linux-headers/linux/kvm.h >>>> +++ b/linux-headers/linux/kvm.h >>>> @@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { >>>> struct kvm_ppc_smmu_info { >>>> __u64 flags; >>>> __u32 slb_size; >>>> - __u32 pad; >>>> + __u16 data_keys; /* # storage keys supported for data */ >>>> + __u16 instr_keys; /* # storage keys supported for instructions */ >>>> struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; >>>> }; >>>> >>>> diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h >>>> index 9701772..b43cf0d 100644 >>>> --- a/linux-headers/linux/userfaultfd.h >>>> +++ b/linux-headers/linux/userfaultfd.h >>>> @@ -23,7 +23,9 @@ >>>> UFFD_FEATURE_EVENT_REMOVE | \ >>>> UFFD_FEATURE_EVENT_UNMAP | \ >>>> UFFD_FEATURE_MISSING_HUGETLBFS | \ >>>> - UFFD_FEATURE_MISSING_SHMEM) >>>> + UFFD_FEATURE_MISSING_SHMEM | \ >>>> + UFFD_FEATURE_SIGBUS | \ >>>> + UFFD_FEATURE_THREAD_ID) >>>> #define UFFD_API_IOCTLS \ >>>> ((__u64)1 << _UFFDIO_REGISTER | \ >>>> (__u64)1 << _UFFDIO_UNREGISTER | \ >>>> @@ -78,6 +80,9 @@ struct uffd_msg { >>>> struct { >>>> __u64 flags; >>>> __u64 address; >>>> + union { >>>> + __u32 ptid; >>>> + } feat; >>>> } pagefault; >>>> >>>> struct { >>>> @@ -153,6 +158,13 @@ struct uffdio_api { >>>> * UFFD_FEATURE_MISSING_SHMEM works the same as >>>> * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem >>>> * (i.e. tmpfs and other shmem based APIs). >>>> + * >>>> + * UFFD_FEATURE_SIGBUS feature means no page-fault >>>> + * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead >>>> + * a SIGBUS signal will be sent to the faulting process. >>>> + * >>>> + * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will >>>> + * be returned, if feature is not requested 0 will be returned. >>>> */ >>>> #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) >>>> #define UFFD_FEATURE_EVENT_FORK (1<<1) >>>> @@ -161,6 +173,8 @@ struct uffdio_api { >>>> #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) >>>> #define UFFD_FEATURE_MISSING_SHMEM (1<<5) >>>> #define UFFD_FEATURE_EVENT_UNMAP (1<<6) >>>> +#define UFFD_FEATURE_SIGBUS (1<<7) >>>> +#define UFFD_FEATURE_THREAD_ID (1<<8) >>>> __u64 features; >>>> >>>> __u64 ioctls; >>>> -- >>>> 1.9.1 >>>> >>> -- >>> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK >>> >> > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK >
© 2016 - 2024 Red Hat, Inc.