Re: [PATCH net-next v12 2/5] netvsc: refactor notifier/event handling code to use the failover framework
On Fri, 25 May 2018 16:11:47 -0700 "Samudrala, Sridhar"wrote: > On 5/25/2018 3:34 PM, Stephen Hemminger wrote: > > On Thu, 24 May 2018 09:55:14 -0700 > > Sridhar Samudrala wrote: > > > >> --- a/drivers/net/hyperv/Kconfig > >> +++ b/drivers/net/hyperv/Kconfig > >> @@ -2,5 +2,6 @@ config HYPERV_NET > >>tristate "Microsoft Hyper-V virtual network driver" > >>depends on HYPERV > >>select UCS2_STRING > >> + select FAILOVER > > When I take a working kernel config, add the patches then do > > make oldconfig > > > > It is not autoselecting FAILOVER, it prompts me for it. This means > > if user says no then a non-working netvsc device is made. > > I see > Generic failover module (FAILOVER) [M/y/?] (NEW) > > So the user is given an option to either build as a Module or part of the > kernel. 'n' is not an option. With most libraries there is no prompt at all. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 2/5] netvsc: refactor notifier/event handling code to use the failover framework
On 5/25/2018 3:34 PM, Stephen Hemminger wrote: On Thu, 24 May 2018 09:55:14 -0700 Sridhar Samudralawrote: --- a/drivers/net/hyperv/Kconfig +++ b/drivers/net/hyperv/Kconfig @@ -2,5 +2,6 @@ config HYPERV_NET tristate "Microsoft Hyper-V virtual network driver" depends on HYPERV select UCS2_STRING + select FAILOVER When I take a working kernel config, add the patches then do make oldconfig It is not autoselecting FAILOVER, it prompts me for it. This means if user says no then a non-working netvsc device is made. I see Generic failover module (FAILOVER) [M/y/?] (NEW) So the user is given an option to either build as a Module or part of the kernel. 'n' is not an option. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 1/5] net: Introduce generic failover module
On 5/25/2018 3:38 PM, Stephen Hemminger wrote: On Thu, 24 May 2018 09:55:13 -0700 Sridhar Samudralawrote: diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 03ed492c4e14..0f4ba52b641d 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1421,6 +1421,8 @@ struct net_device_ops { *entity (i.e. the master device for bridged veth) * @IFF_MACSEC: device is a MACsec device * @IFF_NO_RX_HANDLER: device doesn't support the rx_handler hook + * @IFF_FAILOVER: device is a failover master device + * @IFF_FAILOVER_SLAVE: device is lower dev of a failover master device */ enum netdev_priv_flags { IFF_802_1Q_VLAN = 1<<0, @@ -1450,6 +1452,8 @@ enum netdev_priv_flags { IFF_PHONY_HEADROOM = 1<<24, IFF_MACSEC = 1<<25, IFF_NO_RX_HANDLER = 1<<26, + IFF_FAILOVER= 1<<27, + IFF_FAILOVER_SLAVE = 1<<28, }; Why is FAILOVER any different than other master/slave relationships. I don't think you need to take up precious netdev flag bits for this. These are netdev priv flags. Jiri says that IFF_MASTER/IFF_SLAVE are bonding specific flags and cannot be used with other failover mechanisms. Team also doesn't use this flags and it has its own priv_flags. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 1/5] net: Introduce generic failover module
On 5/25/2018 3:37 PM, Stephen Hemminger wrote: On Thu, 24 May 2018 09:55:13 -0700 Sridhar Samudralawrote: + spin_lock(_lock); Since register is not in fast path, this should be a mutex? This is Jiri's comment which made me to switch to spinlock from mutex >> Why mutex? Apparently you don't need to sleep while holding a lock. >> Simple spinlock would do. +int failover_slave_unregister(struct net_device *slave_dev) +{ + struct net_device *failover_dev; + struct failover_ops *fops; + + if (!netif_is_failover_slave(slave_dev)) + goto done; + + ASSERT_RTNL(); + + failover_dev = failover_get_bymac(slave_dev->perm_addr, ); + if (!failover_dev) + goto done; Since the slave device must have a master device set already, why not use that instead of searching by MAC address on unregister or link change. We also need to get the fops(failover_ops) ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 1/5] net: Introduce generic failover module
On Thu, 24 May 2018 09:55:13 -0700 Sridhar Samudralawrote: > diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > index 03ed492c4e14..0f4ba52b641d 100644 > --- a/include/linux/netdevice.h > +++ b/include/linux/netdevice.h > @@ -1421,6 +1421,8 @@ struct net_device_ops { > * entity (i.e. the master device for bridged veth) > * @IFF_MACSEC: device is a MACsec device > * @IFF_NO_RX_HANDLER: device doesn't support the rx_handler hook > + * @IFF_FAILOVER: device is a failover master device > + * @IFF_FAILOVER_SLAVE: device is lower dev of a failover master device > */ > enum netdev_priv_flags { > IFF_802_1Q_VLAN = 1<<0, > @@ -1450,6 +1452,8 @@ enum netdev_priv_flags { > IFF_PHONY_HEADROOM = 1<<24, > IFF_MACSEC = 1<<25, > IFF_NO_RX_HANDLER = 1<<26, > + IFF_FAILOVER= 1<<27, > + IFF_FAILOVER_SLAVE = 1<<28, > }; Why is FAILOVER any different than other master/slave relationships. I don't think you need to take up precious netdev flag bits for this. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 1/5] net: Introduce generic failover module
On Thu, 24 May 2018 09:55:13 -0700 Sridhar Samudralawrote: > + spin_lock(_lock); Since register is not in fast path, this should be a mutex? > +int failover_slave_unregister(struct net_device *slave_dev) > +{ > + struct net_device *failover_dev; > + struct failover_ops *fops; > + > + if (!netif_is_failover_slave(slave_dev)) > + goto done; > + > + ASSERT_RTNL(); > + > + failover_dev = failover_get_bymac(slave_dev->perm_addr, ); > + if (!failover_dev) > + goto done; Since the slave device must have a master device set already, why not use that instead of searching by MAC address on unregister or link change. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 2/5] netvsc: refactor notifier/event handling code to use the failover framework
On Thu, 24 May 2018 09:55:14 -0700 Sridhar Samudralawrote: > --- a/drivers/net/hyperv/Kconfig > +++ b/drivers/net/hyperv/Kconfig > @@ -2,5 +2,6 @@ config HYPERV_NET > tristate "Microsoft Hyper-V virtual network driver" > depends on HYPERV > select UCS2_STRING > + select FAILOVER When I take a working kernel config, add the patches then do make oldconfig It is not autoselecting FAILOVER, it prompts me for it. This means if user says no then a non-working netvsc device is made. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH v2 11/13] drm/virtio: Stop updating plane->crtc
From: Ville SyrjäläWe want to get rid of plane->crtc on atomic drivers. Stop setting it. v2: s/fb/crtc/ in the commit message (Gerd) Cc: David Airlie Cc: Gerd Hoffmann Cc: virtualization@lists.linux-foundation.org Signed-off-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Reviewed-by: Daniel Vetter --- drivers/gpu/drm/virtio/virtgpu_display.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c index d6dd769a7ad3..ff9933e79416 100644 --- a/drivers/gpu/drm/virtio/virtgpu_display.c +++ b/drivers/gpu/drm/virtio/virtgpu_display.c @@ -282,8 +282,6 @@ static int vgdev_output_init(struct virtio_gpu_device *vgdev, int index) drm_crtc_init_with_planes(dev, crtc, primary, cursor, _gpu_crtc_funcs, NULL); drm_crtc_helper_add(crtc, _gpu_crtc_helper_funcs); - primary->crtc = crtc; - cursor->crtc = crtc; drm_connector_init(dev, connector, _gpu_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL); -- 2.16.1 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH v2 00/13] drm: Eliminate plane->fb/crtc usage for atomic drivers
From: Ville SyrjäläHere are again the last (?) bits of eliminating the plane->fb/crtc usage for atomic drivers. I've pushed everything else (thanks to everyone who reviewed them). Deepak said he'd tested the vmwgfx stuff, so I think it should be safe to land. Just missing a bit of review... Cc: Alex Deucher Cc: amd-...@lists.freedesktop.org Cc: "Christian König" Cc: Daniel Vetter Cc: David Airlie Cc: "David (ChunMing) Zhou" Cc: Deepak Rawat Cc: Eric Anholt Cc: freedr...@lists.freedesktop.org Cc: Gerd Hoffmann Cc: Harry Wentland Cc: Inki Dae Cc: Joonyoung Shim Cc: Kyungmin Park Cc: linux-arm-...@vger.kernel.org Cc: Rob Clark Cc: Seung-Woo Kim Cc: Sinclair Yeh Cc: Thomas Hellstrom Cc: virtualization@lists.linux-foundation.org Cc: VMware Graphics Ville Syrjälä (13): drm/vmwgfx: Stop using plane->fb in vmw_kms_atomic_check_modeset() drm/vmwgfx: Stop using plane->fb in vmw_kms_helper_dirty() drm/vmwgfx: Stop using plane->fb in vmw_kms_update_implicit_fb() drm/vmwgfx: Stop updating plane->fb drm/vmwgfx: Stop using plane->fb in atomic_enable() drm/vmwgfx: Stop messing about with plane->fb/old_fb/crtc drm/amdgpu/dc: Stop updating plane->fb drm/i915: Stop updating plane->fb/crtc drm/exynos: Stop updating plane->crtc drm/msm: Stop updating plane->fb/crtc drm/virtio: Stop updating plane->crtc drm/vc4: Stop updating plane->fb/crtc drm: Stop updating plane->crtc/fb/old_fb on atomic drivers drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 - drivers/gpu/drm/drm_atomic.c | 55 +++ drivers/gpu/drm/drm_atomic_helper.c | 15 +-- drivers/gpu/drm/drm_crtc.c| 8 +++- drivers/gpu/drm/drm_fb_helper.c | 7 --- drivers/gpu/drm/drm_framebuffer.c | 5 --- drivers/gpu/drm/drm_plane.c | 14 +++--- drivers/gpu/drm/drm_plane_helper.c| 4 +- drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 - drivers/gpu/drm/i915/intel_atomic_plane.c | 12 - drivers/gpu/drm/i915/intel_display.c | 7 ++- drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 1 - drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c| 2 - drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 1 - drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c| 2 - drivers/gpu/drm/vc4/vc4_crtc.c| 3 -- drivers/gpu/drm/virtio/virtgpu_display.c | 2 - drivers/gpu/drm/vmwgfx/vmwgfx_fb.c| 24 -- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 24 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 - drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 5 +-- include/drm/drm_atomic.h | 3 -- 22 files changed, 46 insertions(+), 154 deletions(-) -- 2.16.1 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [RFC PATCH net-next 00/12] XDP batching for TUN/vhost_net
On Mon, May 21, 2018 at 05:04:21PM +0800, Jason Wang wrote: > Hi all: > > We do not support XDP batching for TUN since it can only receive one > packet a time from vhost_net. This series tries to remove this > limitation by: > > - introduce a TUN specific msg_control that can hold a pointer to an > array of XDP buffs > - try copy and build XDP buff in vhost_net > - store XDP buffs in an array and submit them once for every N packets > from vhost_net > - since TUN can only do native XDP for datacopy packet, to simplify > the logic, split datacopy out logic and only do batching for > datacopy. I like how this rework looks. Pls go ahead and repost as non-RFC. > With this series, TX PPS can improve about 34% from 2.9Mpps to > 3.9Mpps when doing xdp_redirect_map between TAP and ixgbe. > > Thanks > > Jason Wang (12): > vhost_net: introduce helper to initialize tx iov iter > vhost_net: introduce vhost_exceeds_weight() > vhost_net: introduce vhost_has_more_pkts() > vhost_net: split out datacopy logic > vhost_net: batch update used ring for datacopy TX > tuntap: enable premmption early > tuntap: simplify error handling in tun_build_skb() > tuntap: tweak on the path of non-xdp case in tun_build_skb() > tuntap: split out XDP logic > vhost_net: build xdp buff > vhost_net: passing raw xdp buff to tun > vhost_net: batch submitting XDP buffers to underlayer sockets > > drivers/net/tun.c | 226 +++-- > drivers/vhost/net.c| 297 > - > include/linux/if_tun.h | 7 ++ > 3 files changed, 444 insertions(+), 86 deletions(-) > > -- > 2.7.4 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [RFC V2] virtio: Add platform specific DMA API translation for virito devices
On Thu, May 24, 2018 at 08:27:04AM +1000, Benjamin Herrenschmidt wrote: > On Wed, 2018-05-23 at 21:50 +0300, Michael S. Tsirkin wrote: > > > I re-read that discussion and I'm still unclear on the > > original question, since I got several apparently > > conflicting answers. > > > > I asked: > > > > Why isn't setting VIRTIO_F_IOMMU_PLATFORM on the > > hypervisor side sufficient? > > I thought I had replied to this... > > There are a couple of reasons: > > - First qemu doesn't know that the guest will switch to "secure mode" > in advance. There is no difference between a normal and a secure > partition until the partition does the magic UV call to "enter secure > mode" and qemu doesn't see any of it. So who can set the flag here ? Not sure I understand. Just set the flag e.g. on qemu command line. I might be wrong, but these secure mode things usually a. require hypervisor side tricks anyway > - Second, when using VIRTIO_F_IOMMU_PLATFORM, we also make qemu (or > vhost) go through the emulated MMIO for every access to the guest, > which adds additional overhead. > > Cheers, > Ben. Well it's not supposed to be much slower for the static case. vhost has a cache so should be fine. A while ago Paolo implemented a translation cache which should be perfect for this case - most of the code got merged but never enabled because of stability issues. If all else fails, we could teach QEMU to handle the no-iommu case as if VIRTIO_F_IOMMU_PLATFORM was off. > > > > > > > arch/powerpc/include/asm/dma-mapping.h | 6 ++ > > > arch/powerpc/platforms/pseries/iommu.c | 11 +++ > > > drivers/virtio/virtio_ring.c | 10 ++ > > > 3 files changed, 27 insertions(+) > > > > > > diff --git a/arch/powerpc/include/asm/dma-mapping.h > > > b/arch/powerpc/include/asm/dma-mapping.h > > > index 8fa3945..056e578 100644 > > > --- a/arch/powerpc/include/asm/dma-mapping.h > > > +++ b/arch/powerpc/include/asm/dma-mapping.h > > > @@ -115,4 +115,10 @@ extern u64 __dma_get_required_mask(struct device > > > *dev); > > > #define ARCH_HAS_DMA_MMAP_COHERENT > > > > > > #endif /* __KERNEL__ */ > > > + > > > +#define platform_forces_virtio_dma platform_forces_virtio_dma > > > + > > > +struct virtio_device; > > > + > > > +extern bool platform_forces_virtio_dma(struct virtio_device *vdev); > > > #endif /* _ASM_DMA_MAPPING_H */ > > > diff --git a/arch/powerpc/platforms/pseries/iommu.c > > > b/arch/powerpc/platforms/pseries/iommu.c > > > index 06f0296..a2ec15a 100644 > > > --- a/arch/powerpc/platforms/pseries/iommu.c > > > +++ b/arch/powerpc/platforms/pseries/iommu.c > > > @@ -38,6 +38,7 @@ > > > #include > > > #include > > > #include > > > +#include > > > #include > > > #include > > > #include > > > @@ -1396,3 +1397,13 @@ static int __init disable_multitce(char *str) > > > __setup("multitce=", disable_multitce); > > > > > > machine_subsys_initcall_sync(pseries, tce_iommu_bus_notifier_init); > > > + > > > +bool platform_forces_virtio_dma(struct virtio_device *vdev) > > > +{ > > > + /* > > > + * On protected guest platforms, force virtio core to use DMA > > > + * MAP API for all virtio devices. But there can also be some > > > + * exceptions for individual devices like virtio balloon. > > > + */ > > > + return (of_find_compatible_node(NULL, NULL, "ibm,ultravisor") != NULL); > > > +} > > > > Isn't this kind of slow? vring_use_dma_api is on > > data path and supposed to be very fast. > > > > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > > > index 21d464a..47ea6c3 100644 > > > --- a/drivers/virtio/virtio_ring.c > > > +++ b/drivers/virtio/virtio_ring.c > > > @@ -141,8 +141,18 @@ struct vring_virtqueue { > > > * unconditionally on data path. > > > */ > > > > > > +#ifndef platform_forces_virtio_dma > > > +static inline bool platform_forces_virtio_dma(struct virtio_device *vdev) > > > +{ > > > + return false; > > > +} > > > +#endif > > > + > > > static bool vring_use_dma_api(struct virtio_device *vdev) > > > { > > > + if (platform_forces_virtio_dma(vdev)) > > > + return true; > > > + > > > if (!virtio_has_iommu_quirk(vdev)) > > > return true; > > > > > > -- > > > 2.9.3 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH net-next v12 0/5] Enable virtio_net to act as a standby for a passthru device
On Thu, May 24, 2018 at 09:55:12AM -0700, Sridhar Samudrala wrote: > The main motivation for this patch is to enable cloud service providers > to provide an accelerated datapath to virtio-net enabled VMs in a > transparent manner with no/minimal guest userspace changes. This also > enables hypervisor controlled live migration to be supported with VMs that > have direct attached SR-IOV VF devices. > > Patch 1 introduces a failover module that provides a generic interface for > paravirtual drivers to listen for netdev register/unregister/link change > events from pci ethernet devices with the same MAC and takeover their > datapath. The notifier and event handling code is based on the existing > netvsc implementation. > > Patch 2 refactors netvsc to use the registration/notification framework > introduced by failover module. > > Patch 3 introduces a net_failover driver that provides an automated > failover mechanism to paravirtual drivers via APIs to create and destroy > a failover master netdev and mananges a primary and standby slave netdevs > that get registered via the generic failover infrastructure. > > Patch 4 introduces a new feature bit VIRTIO_NET_F_STANDBY to virtio-net > that can be used by hypervisor to indicate that virtio_net interface > should act as a standby for another device with the same MAC address. > > Patch 5 extends virtio_net to use alternate datapath when available and > registered. When STANDBY feature is enabled, virtio_net driver uese the > net_failover API to create an additional 'failover' netdev that acts as > a master device and controls 2 slave devices. The original virtio_net > netdev is registered as 'standby' netdev and a passthru/vf device with > the same MAC gets registered as 'primary' netdev. Both 'standby' and > 'failover' netdevs are associated with the same 'pci' device. The user > accesses the network interface via 'failover' netdev. The 'failover' > netdev chooses 'primary' netdev as default for transmits when it is > available with link up and running. > > As this patch series is initially focusing on usecases where hypervisor > fully controls the VM networking and the guest is not expected to directly > configure any hardware settings, it doesn't expose all the ndo/ethtool ops > that are supported by virtio_net at this time. To support additional usecases, > it should be possible to enable additional ops later by caching the state > in failover netdev and replaying when the 'primary' netdev gets registered. > > At the time of live migration, the hypervisor needs to unplug the VF device > from the guest on the source host and reset the MAC filter of the VF to > initiate failover of datapath to virtio before starting the migration. After > the migration is completed, the destination hypervisor sets the MAC filter > on the VF and plugs it back to the guest to switch over to VF datapath. > > This patch is based on the discussion initiated by Jesse on this thread. > https://marc.info/?l=linux-virtualization=151189725224231=2 Series: Acked-by: Michael S. Tsirkin> v12: > - Tested live migration with virtio-net/AVF(i40evf) configured in failover > mode while running iperf in background. Tried static ip and dhcp > configurations using 'network' scripts and Network Manager. > - Build tested netvsc module. > Updates: > - Extended generic failover module to do common functions like setting > FAILOVER_SLAVE flag, registering rx-handler and linking to upper dev in > the generic register/unregister handlers. > This required adding 3 additional failover ops pre_register, pre_unregister > and handle_frame. netvsc and net_failover drivers are updated to support > these ops. > > v11: > - Split net_failover module into 2 components. > 1. 'failover' module that provides generic failover infrastructure > to register a failover instance and listen for slave events. > 2. 'net_failover' driver that provides APIs to create/destroy upper > netdev and supports 3-netdev model used by virtio-net. > - Added documentation > > v10: > - fix net_failover_open() to update failover CARRIER correctly based on > standby and primary states. > - fix net_failover_handle_frame() to handle frames received on standby > when primary is present. > - replace netdev_upper_dev_link with netdev_master_upper_dev_link and > handle lower dev state changes. > - fix net_failver_create() and net_failover_register() interfaces to > use ERR_PTR and avoid arg ** > - disable setting mac address when virtio-net in STANDBY mode > - document exported symbols > - added entry to MAINTAINERS file > > v9: > Select NET_FAILOVER automatically when VIRTIO_NET/HYPERV_NET > are enabled. (stephen) > > v8: > - Made the failover managment routines more robust by updating the feature > bits/other fields in the failover netdev when slave netdevs are > registered/unregistered. (mst) > - added support for handling vlans. > - Limited the changes in netvsc to
Re: [PATCH v3 09/27] x86/acpi: Adapt assembly for PIE support
On Fri, May 25, 2018 at 2:14 AM Pavel Machekwrote: > On Thu 2018-05-24 09:35:42, Thomas Garnier wrote: > > On Thu, May 24, 2018 at 4:03 AM Pavel Machek wrote: > > > > > On Wed 2018-05-23 12:54:03, Thomas Garnier wrote: > > > > Change the assembly code to use only relative references of symbols for > > the > > > > kernel to be PIE compatible. > > > > > > > > Position Independent Executable (PIE) support will allow to extended the > > > > KASLR randomization range below the -2G memory limit. > > > > > What testing did this get? > > > > Tested boot, hibernation and performance on qemu and dedicated machine. > Well, this is suspend, not hibernation code. > So "sudo pm-suspend" or "echo mem > /sys/power/state" would be good > way to test this. Thanks, it worked. I added this to the testsuite I use for KASLR. > Thanks, > Pavel > > > > diff --git a/arch/x86/kernel/acpi/wakeup_64.S > > b/arch/x86/kernel/acpi/wakeup_64.S > > > > index 50b8ed0317a3..472659c0f811 100644 > > > > --- a/arch/x86/kernel/acpi/wakeup_64.S > > > > +++ b/arch/x86/kernel/acpi/wakeup_64.S > > > > @@ -14,7 +14,7 @@ > > > >* Hooray, we are in Long 64-bit mode (but still running in low > > memory) > > > >*/ > > > > ENTRY(wakeup_long64) > > > > - movqsaved_magic, %rax > > > > + movqsaved_magic(%rip), %rax > > > > movq$0x123456789abcdef0, %rdx > > > > cmpq%rdx, %rax > > > > jne bogus_64_magic > > > > > Because, as comment says, this is rather tricky code. > > > > I agree, I think maintainers feedback is very important for this patchset. > -- > (english) http://www.livejournal.com/~pavelmachek > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- Thomas ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH v3 09/27] x86/acpi: Adapt assembly for PIE support
On Thu 2018-05-24 09:35:42, Thomas Garnier wrote: > On Thu, May 24, 2018 at 4:03 AM Pavel Machekwrote: > > > On Wed 2018-05-23 12:54:03, Thomas Garnier wrote: > > > Change the assembly code to use only relative references of symbols for > the > > > kernel to be PIE compatible. > > > > > > Position Independent Executable (PIE) support will allow to extended the > > > KASLR randomization range below the -2G memory limit. > > > What testing did this get? > > Tested boot, hibernation and performance on qemu and dedicated machine. Well, this is suspend, not hibernation code. So "sudo pm-suspend" or "echo mem > /sys/power/state" would be good way to test this. Thanks, Pavel > > > diff --git a/arch/x86/kernel/acpi/wakeup_64.S > b/arch/x86/kernel/acpi/wakeup_64.S > > > index 50b8ed0317a3..472659c0f811 100644 > > > --- a/arch/x86/kernel/acpi/wakeup_64.S > > > +++ b/arch/x86/kernel/acpi/wakeup_64.S > > > @@ -14,7 +14,7 @@ > > >* Hooray, we are in Long 64-bit mode (but still running in low > memory) > > >*/ > > > ENTRY(wakeup_long64) > > > - movqsaved_magic, %rax > > > + movqsaved_magic(%rip), %rax > > > movq$0x123456789abcdef0, %rdx > > > cmpq%rdx, %rax > > > jne bogus_64_magic > > > Because, as comment says, this is rather tricky code. > > I agree, I think maintainers feedback is very important for this patchset. -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH v3 11/27] x86/power/64: Adapt assembly for PIE support
On Thu 2018-05-24 09:37:20, Thomas Garnier wrote: > On Thu, May 24, 2018 at 4:04 AM Pavel Machekwrote: > > > On Wed 2018-05-23 12:54:05, Thomas Garnier wrote: > > > Change the assembly code to use only relative references of symbols for > the > > > kernel to be PIE compatible. > > > > > > Position Independent Executable (PIE) support will allow to extended the > > > KASLR randomization range below the -2G memory limit. > > > > > > Signed-off-by: Thomas Garnier > > > Again, was this tested? > > Hibernation was tested as much as I can with qemu and my dedicated >machine. Ok, good. Acked-by: Pavel Machek > Any specific test you think I should use? Hibernation working should be good enough test for this. Thanks, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization