Bug 390553

Summary: apply included fixes for Xen 4.6/4.7/4.8/4.9/4.10/4.11/4.12
Product: [Developer tools] valgrind Reporter: Olaf Hering <olaf>
Component: generalAssignee: Julian Seward <jseward>
Status: REPORTED ---    
Severity: normal CC: mark, marmarek
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
URL: https://github.com/olafhering/valgrind/compare/olh-base-master...olh-fixes-master
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: patches-for-bug390553.3a2711c65.tar.xz

Description Olaf Hering 2018-02-16 12:07:07 UTC
I'm preparing changes to add changed interfaces up to Xen-4.10. The amount of patches will be huge. How are the patches supposed to be delivered? Attach here, pull request, send to mailing list, all of it?
Comment 1 Olaf Hering 2018-02-16 20:35:14 UTC
Preview the changes over there, please:

https://github.com/olafhering/valgrind/compare/master...xen
Comment 2 Marek Marczykowski-Górecki 2018-07-23 01:03:50 UTC
I'm interested in this too. Any chance for this to be merged? I've tested it and it works fine.
Comment 5 Julian Seward 2020-01-22 09:59:01 UTC
407376 updates Xen support to 4.13.

*** This bug has been marked as a duplicate of bug 407376 ***
Comment 6 Olaf Hering 2020-01-28 07:55:38 UTC
Browsing the suggested changes attached to this bug would have revealed the other bug can not possibly fix this bug.
Comment 7 Olaf Hering 2020-02-28 15:18:51 UTC
Created attachment 126481 [details]
patches-for-bug390553.3a2711c65.tar.xz

refresh of the patch queue, based on 3a2711c65

for i in */*.patch ; do git am < $i ; done
Comment 8 Olaf Hering 2020-04-01 10:35:02 UTC
Good luck.
Comment 9 Mark Wielaard 2020-04-29 11:52:34 UTC
This does indeed not seem to be a duplicate of bug #407376. The patch series introduces a framework to determine the xen version, handles XEN_IOCTL_PRIVCMD_UNIMPLEMENTED, XEN_IOCTL_PRIVCMD_MMAP_RESOURCE, IOCTL_PRIVCMD_RESTRICT, IOCTL_GNTDEV_GRANT_COPY, IOCTL_GNTALLOC_SET_UNMAP_NOTIFY, IOCTL_GNTALLOC_DEALLOC_GREF, IOCTL_GNTALLOC_ALLOC_GREF, IOCTL_GNTDEV_SET_MAX_GRANTS, IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR, IOCTL_GNTDEV_UNMAP_GRANT_REF and (versioned) set_cpu_policy, getdomaininfolist, domctl_createdomain, get_cpu_policy, domctl_monitor_op, get_parameter, vuart_op, set_gnttab_limits, hvmcontext_partial, xen_domctl_assign_device, gcov_op, XENVER_build_id, get_cpu_featureset, SCHEDOP_pin_override, soft_reset, createdomain, pcitopoinfo, cputopoinfo, numainfo, settimeoffset, cputopoinfo, numainfo, mem_event_op, set_pod_target, get_pod_target, settimeoffset and probably others that I have missed.

The patch series is somewhat large (112 patches!), but applies (and builds) cleany on top of current git master:

Olaf Hering (112):
      track xenversion for unversioned interfaces
      fix XEN_SYSCTL_getdomaininfolist
      rename HVMOP_inject_trap struct
      adjust name of domctl mem_event_op_00000007
      Remove dead code from XEN_DOMCTL_monitor_op
      fix xen_sysctl_numainfo handling
      Expect earliest version for versioned xen domctl/sysctl
      fix typo in xen domctl and sysctl header
      remove unhelpful comments from xen domctl
      merge two xen domctl values for clearity
      mention sysctl and domctl numbers from ancient Xen versions
      xen: include vki-xen-physdev.h earlier in vki-xen.h
      xen-3.0: versioned xen_domctl_settimeoffset
      xen-3.0.4: versioned xen_domctl_createdomain
      xen-3.1: handle IOCTL_GNTDEV_MAP_GRANT_REF
      xen-3.1: handle IOCTL_GNTDEV_UNMAP_GRANT_REF
      xen-3.1: handle IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR
      xen-3.3: handle IOCTL_GNTDEV_SET_MAX_GRANTS
      xen-3.4: handle XENMEM_set_pod_target/XENMEM_get_pod_target
      xen-3.4: versioned hvmcontext_partial
      xen-4.1: fix XEN_DOMCTL_mem_event_op
      xen-4.1: handle XEN_HVMOP_inject_trap
      xen-4.1: fix xen_domctl_getdomaininfo layout
      xen-4.1: versioned XEN_SYSCTL_numainfo
      xen-4.2: handle IOCTL_GNTALLOC_ALLOC_GREF
      xen-4.2: handle IOCTL_GNTALLOC_DEALLOC_GREF
      xen-4.2: handle IOCTL_GNTALLOC_SET_UNMAP_NOTIFY
      xen-4.2: define XENMEM paging_op and sharing_op
      xen-4.4: define add_to_physmap_batch
      xen-4.5: define sysctl psr_cmt_op
      xen-4.5: define GNTTABOP_cache_flush
      xen-4.5: define domctl setvnumainfo
      xen-4.5: define domctl psr_cmt_op
      xen-4.5: define domctl arm_configure_domain
      xen-4.5: define XENMEM_get_vnumainfo
      xen-4.5: versioned XEN_SYSCTL_topologyinfo
      xen-4.5: handle all versioned domctl ops
      xen-4.6: adjust case value for VKI_XEN_DOMCTL_monitor_op
      xen-4.6: new sysctl value
      xen-4.6: versioned xen_domctl_createdomain
      xen-4.6: versioned xen_domctl_settimeoffset
      xen-4.6: define domctl psr_cat_op
      xen-4.6: define XENMEM_reserved_device_memory_map
      xen-4.6: versioned XEN_SYSCTL_numainfo
      xen-4.6: handle XEN_SYSCTL_cputopoinfo
      xen-4.6: handle XEN_SYSCTL_pcitopoinfo
      xen-4.6: define sysctl psr_cat_op
      xen-4.6: define sysctl tmem_op
      xen-4.6: define hypercall xenpmu_op
      xen-4.6: handle all versioned domctl ops
      xen-4.7: new sysctl value
      xen-4.7: fix domctl value in comment
      xen-4.7: versioned xen_arch_domainconfig
      xen-4.7: define XEN_VCPUAFFINITY_FORCE
      xen-4.7: define SCHEDOP put/getvcpuinfo
      xen-4.7: handle domctl soft_reset
      xen-4.7: define SCHEDOP_pin_override
      xen-4.7: versioned XEN_SYSCTL_get_cpu_featureset
      xen-4.7: define sysctl get_cpu_levelling_caps
      xen-4.7: define sysctl livepatch_op
      xen-4.7: handle XENVER_build_id
      xen-4.7: handle all versioned sysctl ops
      xen-4.8: new domctl value
      xen-4.8: new sysctl value
      xen-4.8: handle IOCTL_GNTDEV_GRANT_COPY
      xen-4.8: versioned xen_domctl_monitor_op
      xen-4.11: handle IOCTL_PRIVCMD_MMAP_RESOURCE
      xen-4.11: handle all versioned domctl ops
      xen-4.11: handle all versioned sysctl ops
      xen-4.12: new domctl value
      xen-4.12: new sysctl value
      xen-4.12: implement sysctl get_cpu_policy
      xen-4.12: implement domctl get_cpu_policy
      xen-4.12: handle IOCTL_PRIVCMD_UNIMPLEMENTED
      xen-4.12: versioned xen_domctl_createdomain
      xen-4.12: handle all versioned domctl ops
      xen-4.12: handle all versioned sysctl ops
      xen-4.13: new domctl value
      xen-4.13: versioned xen_domctl_createdomain
      xen-4.13: versioned xen_sysctl_getdomaininfolist
      xen-4.13: obsolete domctls
      xen-4.13: implement XEN_DOMCTL_set_cpu_policy
      xen-4.13: handle all versioned domctl ops
      xen-4.14: new sysctl value
      xen-4.14: handle all versioned sysctl ops

I don't have any experience with Xen, so it would be good if someone with some valgrind/xen experience took a quick look over this.