Comment 6 for bug 1892855

Revision history for this message
Po-Hsu Lin (cypressyew) wrote : Re: [Potential Regression] hyperv_connections / hyperv_stimer / hyperv_synic failed on B-i386

A Bisect shows:
40ed11e0049a5856848e59a6275ba08b734accc8 is the first bad commit
commit 40ed11e0049a5856848e59a6275ba08b734accc8
Author: Jon Doron <email address hidden>
Date: Fri Apr 24 14:37:40 2020 +0300

    x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit

    BugLink: https://bugs.launchpad.net/bugs/1885176

    [ Upstream commit f7d31e65368aeef973fab788aa22c4f1d5a6af66 ]

    The problem the patch is trying to address is the fact that 'struct
    kvm_hyperv_exit' has different layout on when compiling in 32 and 64 bit
    modes.

    In 64-bit mode the default alignment boundary is 64 bits thus
    forcing extra gaps after 'type' and 'msr' but in 32-bit mode the
    boundary is at 32 bits thus no extra gaps.

    This is an issue as even when the kernel is 64 bit, the userspace using
    the interface can be both 32 and 64 bit but the same 32 bit userspace has
    to work with 32 bit kernel.

    The issue is fixed by forcing the 64 bit layout, this leads to ABI
    change for 32 bit builds and while we are obviously breaking '32 bit
    userspace with 32 bit kernel' case, we're fixing the '32 bit userspace
    with 64 bit kernel' one.

    As the interface has no (known) users and 32 bit KVM is rather baroque
    nowadays, this seems like a reasonable decision.

    Reviewed-by: Vitaly Kuznetsov <email address hidden>
    Signed-off-by: Jon Doron <email address hidden>
    Message-Id: <email address hidden>
    Reviewed-by: Roman Kagan <email address hidden>
    Signed-off-by: Paolo Bonzini <email address hidden>
    Signed-off-by: Sasha Levin <email address hidden>
    Signed-off-by: Kamal Mostafa <email address hidden>
    Signed-off-by: Khalid Elmously <email address hidden>

:040000 040000 e62587476ed3db655527a1e55776ad3dd7756ff6 d085168ac233723af3b4e0e2c079e97d72f6f7e1 M Documentation
:040000 040000 10bf0fe682799f3de914b15a1066636bc25e989a f78b5dad5a85cf65f04c372532d654c0d2c094f8 M include

$ git bisect log
git bisect start
# bad: [0e158155817fc6ac0a55648943e52b1004747d74] UBUNTU: Ubuntu-4.15.0-116.117
git bisect bad 0e158155817fc6ac0a55648943e52b1004747d74
# good: [495149ddc61a5997857fda041ccd4c81cac46e00] UBUNTU: Ubuntu-4.15.0-112.113
git bisect good 495149ddc61a5997857fda041ccd4c81cac46e00
# bad: [672e9dec222925652241f8522bb7e7483d0fa74c] drm/amdgpu: Replace invalid device ID with a valid device ID
git bisect bad 672e9dec222925652241f8522bb7e7483d0fa74c
# bad: [cebf29010efca3b7f7e195f80f5fd9db5f93afea] PCI: Don't disable decoding when mmio_always_on is set
git bisect bad cebf29010efca3b7f7e195f80f5fd9db5f93afea
# good: [8606a3b9726b9efb0a92015372be88a84b291406] s390/mm: fix set_huge_pte_at() for empty ptes
git bisect good 8606a3b9726b9efb0a92015372be88a84b291406
# good: [692fb8958a8fbb0b3b645e73ef89b1e75a543538] ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
git bisect good 692fb8958a8fbb0b3b645e73ef89b1e75a543538
# bad: [749a10fcdcb6e6e3afa26aa9994325f8fcb19eda] tools api fs: Make xxx__mountpoint() more scalable
git bisect bad 749a10fcdcb6e6e3afa26aa9994325f8fcb19eda
# good: [c0cf7189d1b30c7c5423ce2aa6442f3e2f026568] net: ena: fix error returning in ena_com_get_hash_function()
git bisect good c0cf7189d1b30c7c5423ce2aa6442f3e2f026568
# good: [bec58f7e892951fea92df69801315b67ed0b73ce] clocksource: dw_apb_timer_of: Fix missing clockevent timers
git bisect good bec58f7e892951fea92df69801315b67ed0b73ce
# bad: [40ed11e0049a5856848e59a6275ba08b734accc8] x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
git bisect bad 40ed11e0049a5856848e59a6275ba08b734accc8
# good: [0f92ac206e457a32da575c4f72afdc80143b809d] ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
git bisect good 0f92ac206e457a32da575c4f72afdc80143b809d
# good: [9502e85ad1c8470ff8acefc16de6afd57bb49b0a] spi: dw: Fix Rx-only DMA transfers
git bisect good 9502e85ad1c8470ff8acefc16de6afd57bb49b0a
# first bad commit: [40ed11e0049a5856848e59a6275ba08b734accc8] x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit