[vfio-users] Interrupt Handling: Regression or config change?

Ede Wolf listac at nebelschwaden.de
Sat Jan 14 20:52:45 UTC 2017


Hello,

it seems, we have a result! Hooray. Unless I've done something wrong, 
which is not unlikely at all. Which ever way, what will be next?

But before the late braking news, thanks to Laszlo for further detailed 
information and of course for the heads up on the spelling. After 
writing "dissecting" correctly, google was much more friendly. 
Surprisingly... a bit embarassing that I cannot read properly, but once 
you've made up your mind, one tends to read what he thinks has been 
written.

Other issues: git fetch did not work for me, as it downloads a binary 
repository, that of course cannot be configured or compiled.
So I choose git clone, but have not been able to limit the tags. If 
somebody knows how to do that, I am all ear.
Also the required Mergebase took some time to get along with. Not sure 
that I've dealt correctly with it (at the beginning of the full log, in 
case someone wants to verify).

Back on topic, the last two entries, that by description fit just 
perfectly. Very sorry for having forgotten to set the language to "C" 
beforehand. I hope it's still clear. Otherwise I'll translate.
The upper cases are only for this mail.


#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-12-g23a1c2579b57
#[root at archbuild linux-stable]# git bisect GOOD v4.5-rc3-12-g23a1c2579b57
#binäre Suche: danach noch 0 Commits zum Testen übrig (ungefähr 1 Schritt)
#[6228a0da805792c2f25b32e9b926d0810a6648ab] KVM: x86: Add 
lowest-priority support for vt-d posted-interrupts
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-14-g6228a0da8057
#[root at archbuild linux-stable]# git bisect BAD v4.5-rc3-14-g6228a0da8057
#binäre Suche: danach noch 0 Commits zum Testen übrig (ungefähr 0 Schritte)
#[520040146a0af36f7875ec06b58f44b19a0edf53] KVM: x86: Use vector-hashing 
to deliver lowest-priority interrupts
#[root at archbuild linux-stable]#


In short, while Vector Linux is quite cool, vector hashing seems not to 
be. Maybe Mr. Wu did not imagine someone still is using an AMD CPU, as I 
do.

# -----------------

[root at archbuild linux-stable]# git describe --tag
v4.5-rc3-13-g520040146a0a
[root at archbuild linux-stable]# git bisect bad v4.5-rc3-13-g520040146a0a
520040146a0af36f7875ec06b58f44b19a0edf53 is the first bad commit
commit 520040146a0af36f7875ec06b58f44b19a0edf53
Author: Feng Wu <feng.wu at intel.com>
Date:   Mon Jan 25 16:53:33 2016 +0800

     KVM: x86: Use vector-hashing to deliver lowest-priority interrupts

     Use vector-hashing to deliver lowest-priority interrupts, As an
     example, modern Intel CPUs in server platform use this method to
     handle lowest-priority interrupts.

     Signed-off-by: Feng Wu <feng.wu at intel.com>
     Reviewed-by: Radim Krčmář <rkrcmar at redhat.com>
     Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>

:040000 040000 f1d833ca902832009798f3aacdf1ddd4159e4202 
3130cfbde26ed6c4f0b2fae55c9670223e0ff87d M      arch

# -----------------


And finally the somewhat (some early, all bad sects are missing) 
complete log. Again thanks very much for all that helped so far:

#[root at archbuild src]# git init
#[root at archbuild src]# git clone 
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
#[root at archbuild src]# cd linux-stable/
#[root at archbuild linux-stable]# git bisect start
#[root at archbuild linux-stable]# git bisect good v4.5.7
#[root at archbuild linux-stable]# git bisect bad v4.6
#binäre Suche: eine Merge-Basis muss geprüft werden
#[b562e44f507e863c6792946e4e1b1449fbbac85d] Linux 4.5
#[root at archbuild linux-stable]# git bisect good 
b562e44f507e863c6792946e4e1b1449fbbac85d
#binäre Suche: danach noch 8131 Commits zum Testen übrig (ungefähr 13 
Schritte)
#[6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f] Merge branch 'for-4.6' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
#[root at archbuild linux-stable]# git bisect good v4.5.7
#binäre Suche: danach noch 8131 Commits zum Testen übrig (ungefähr 13 
Schritte)
#[6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f] Merge branch 'for-4.6' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
#[root at archbuild linux-stable]#

# ...

#============================
#[root at archbuild linux-stable]# git bisect bad v4.5-3326-g96b9b1c95660
#binäre Suche: danach noch 1605 Commits zum Testen übrig (ungefähr 11 
Schritte)
#[277edbabf6fece057b14fb6db5e3a34e00f42f42] Merge tag 
'pm+acpi-4.6-rc1-1' of 
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
#============================
#linux-stable]# git describe --tag
#v4.5-1720-g277edbabf6fe
#[root at archbuild linux-stable]# git bisect bad v4.5-1720-g277edbabf6fe
#binäre Suche: danach noch 879 Commits zum Testen übrig (ungefähr 10 
Schritte)
#[5ca5446ec5ba5e79a6f271cd026bb153d6850fcc] Merge tag 'pinctrl-v4.6-1' 
of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-840-g5ca5446ec5ba
#[root at archbuild linux-stable]# git bisect good v4.5-840-g5ca5446ec5ba
#binäre Suche: danach noch 356 Commits zum Testen übrig (ungefähr 9 
Schritte)
#[10dc3747661bea9215417b659449bb7b8ed3df2c] Merge tag 'for-linus' of 
git://git.kernel.org/pub/scm/virt/kvm/kvm
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-1363-g10dc3747661b
#[root at archbuild linux-stable]# git bisect bad v4.5-1363-g10dc3747661b
#binäre Suche: danach noch 255 Commits zum Testen übrig (ungefähr 8 
Schritte)
#[13f6f62f61b4d3d5f45bed889128bb7ff3fda5ed] Merge tag 'rtc-4.6' of 
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-1107-g13f6f62f61b4
#[root at archbuild linux-stable]# git bisect good v4.5-1107-g13f6f62f61b4
#binäre Suche: danach noch 142 Commits zum Testen übrig (ungefähr 7 
Schritte)
#[bb9eadf0c35f2e7eb5ca6468f46ebb7473b85537] KVM: MMU: micro-optimize 
gpte_access
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-123-gbb9eadf0c35f
#[root at archbuild linux-stable]# git bisect bad v4.5-rc3-123-gbb9eadf0c35f
#binäre Suche: danach noch 66 Commits zum Testen übrig (ungefähr 6 Schritte)
#[433da86023f866820e9bcd7f0889d944005d311c] KVM: async_pf: use 
list_first_entry
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-56-g433da86023f8
#[root at archbuild linux-stable]# git bisect bad v4.5-rc3-56-g433da86023f8
#binäre Suche: danach noch 22 Commits zum Testen übrig (ungefähr 5 Schritte)
#[8a08b9c7379dc881ff5f00c086877353888a982f] KVM: s390: usage hint for 
adapter mappings
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-33-g8a08b9c7379d
#[root at archbuild linux-stable]# git bisect bad v4.5-rc3-33-g8a08b9c7379d
#binäre Suche: danach noch 11 Commits zum Testen übrig (ungefähr 4 Schritte)
#[0e8bc06a2fbb4d6b688baa8e2416cd07f9453595] KVM: s390: PSW forwarding / 
rewinding / ilc rework
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-21-g0e8bc06a2fbb
#[root at archbuild linux-stable]# git bisect bad v4.5-rc3-21-g0e8bc06a2fbb
#binäre Suche: danach noch 5 Commits zum Testen übrig (ungefähr 3 Schritte)
#[b6ce978067e75187d3c30f59b60d390a29374fab] KVM/VMX: Add host irq 
information in trace event when updating IRTE for posted interrupts
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-15-gb6ce978067e7
#[root at archbuild linux-stable]# git bisect bad v4.5-rc3-15-gb6ce978067e7
#binäre Suche: danach noch 2 Commits zum Testen übrig (ungefähr 1 Schritt)
#[23a1c2579b575b228a6c685dfe93f296d3d5e0e1] KVM: Recover IRTE to 
remapped mode if the interrupt is not single-destination
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-12-g23a1c2579b57
#[root at archbuild linux-stable]# git bisect good v4.5-rc3-12-g23a1c2579b57
#binäre Suche: danach noch 0 Commits zum Testen übrig (ungefähr 1 Schritt)
#[6228a0da805792c2f25b32e9b926d0810a6648ab] KVM: x86: Add 
lowest-priority support for vt-d posted-interrupts
#[root at archbuild linux-stable]#
#============================
#[root at archbuild linux-stable]# git describe --tag
#v4.5-rc3-14-g6228a0da8057
#[root at archbuild linux-stable]# git bisect bad v4.5-rc3-14-g6228a0da8057
#binäre Suche: danach noch 0 Commits zum Testen übrig (ungefähr 0 Schritte)
#[520040146a0af36f7875ec06b58f44b19a0edf53] KVM: x86: Use vector-hashing 
to deliver lowest-priority interrupts
#[root at archbuild linux-stable]#





Am 12.01.2017 um 19:49 schrieb Laszlo Ersek:
> On 01/12/17 19:21, Ede Wolf wrote:
>> Besides my fighting with git, is it correct, that the working kernel is
>> labeld "bad", while the non working one "good"? May very well possible
>> for the workflow of dissect, just want to confirm, please
>>
>>> git bisect start
>>> git bisect bad v4.5.4
>>> git bisect good v4.6.1
>
> No. git-bisect always locates a regression, that is, the first commit
> that introduces a bug. Where things go from right to wrong. If this
> matches your situation (old version works, new version breaks), simply
> use the "good" and "bad" command line arguments verbatim.
>
> Now, if you are looking for a commit that fixes a known bug, i.e., old
> version is broken, new version works, but you don't exactly know what
> fixed it, then you have to invert the meanings. Whenever the commit
> under testing works, you have to say "bad", and whenever it breaks, you
> have to say "good". More modern git versions help automate this (for
> less boggling of the mind) with "git bisect terms". (See the manual.)
> With older git versions, git command aliases, shell aliases, or small
> wrapper scripts can hide the confusion.
>
> Given that you are facing a real regression, you should use the good/bad
> terms verbatim. From your earlier email, "4.5.7" works, "4.6" breaks,
> hence you should qualify the former with "good", and the latter with "bad".
>
> Also, the word is "bisect", not "dissect".
>
> https://en.wiktionary.org/wiki/bisect
> https://en.wiktionary.org/wiki/dissect
>
> git-bisect performs a binary search, halving commit ranges. Hence the
> "bi" in "bisect".
>
> Laszlo
>




More information about the vfio-users mailing list