From: Satoru Takeuchi <satoru.takeuchi@gmail.com>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Satoru Takeuchi <satoru.takeuchi@gmail.com>,
Borislav Petkov <bp@alien8.de>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [BUG] x86: failed to boot a kernel on a Ryzen machine
Date: Wed, 26 Apr 2017 20:56:24 +0900 [thread overview]
Message-ID: <87a873e61j.wl-satoru.takeuchi@gmail.com> (raw)
In-Reply-To: <20170425235850.f99433227aeb8ed00ce9606b@kernel.org>
At Tue, 25 Apr 2017 23:58:50 +0900,
Masami Hiramatsu wrote:
>
> Hello,
>
> 2017-04-24 22:09 GMT+09:00 Satoru Takeuchi <satoru.takeuchi@gmail.com>:
> > At Mon, 24 Apr 2017 14:48:46 +0200,
> > Borislav Petkov wrote:
> >>
> >> On Mon, Apr 24, 2017 at 09:39:12PM +0900, Satoru Takeuchi wrote:
> >> > I used the following auto-test tool (its backend is ktest).
> >> >
> >> > https://github.com/satoru-takeuchi/elkdat
> >> >
> >> > This problem can be reproduced by the following command on Ubuntu 16.04.
> >> >
> >> > ```
> >> > $ sudo apt-get install git vagrant libvirt-bin libvirt-dev kernel-package qemu-kvm libssl-dev libncurses5-dev
> >>
> >> Can you minimize that reproducer? I.e, can you dump only the qemu
> >> command line options from this setup?
> >>
> >> They're enough to be able to start a guest with your config without me
> >> having to install all that other stuff.
> >
> > OK. Is it sufficient information?
> >
> > ```
> > qemu-system-x86_64 -enable-kvm -name elkdat_ktest -S -machine pc-i440fx-xenial,accel=kvm,usb=off -cpu Opteron_G3,+smap,+adx,+rdseed,+bmi2,+smep,+avx2,+bmi1,+fsgsbase,+perfctr_nb,+perfctr_core,+topoext,+tce,+wdt,+skinit,+osvw,
> +3dnowprefetch,+cr8legacy,+extapic,+cmp_legacy,+pdpe1gb,+fxsr_opt,+mmxext,+rdrand,+f16c,+avx,+osxsave,+xsave,+aes,+movbe,+sse4.2,+sse4.1,+fma,+ssse3,+pclmuldq,+ht,
> +vme -m 512 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 12de0e96-5d01-4ab0-b0b3-165f55999960 -no-user-config -nodefaults -chardev
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-elkdat_ktest/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc
> base=utc -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/libvirt/images/
> elkdat_ktest.img,format=qcow2,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-
> disk0,bootindex=1 -netdev tap,fd=26,id=h
> > ostnet0,vhost=on,vhostfd=28 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e4:6f:3e,bus=pci.0,addr=0x5 -chardev
> pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:0 -k en-us -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on
> > ```
>
> I also could reproduce this with Fedora 25 on Core i7-4770S,
> with below options.
>
> "-cpu Opteron_G3,+smap,+adx,+rdseed,+bmi2,+smep,+avx2,+bmi1,+fsgsbase,+perfctr_nb,+perfctr_core,+topoext,+tce,+wdt,+skinit,+osvw,+3dnowprefetch,+cr8legacy,+extapic,+cmp_legacy,+pdpe1gb,+fxsr_opt,+mmxext,+rdrand,+f16c,+avx,+osxsave,+xsave,+aes,+movbe,+sse4.2,+sse4.1,+fma,+ssse3,+pclmuldq,+vme -M pc -enable-kvm -M pc -enable-kvm "
>
> And a quick investigation showed that this crash happened when I
> replaced the "Opteron_G3" with "Opteron_G2", "Opteron_G1", "Westmere"
> and "Nehalem" (I didn't check older than that). But I didn't see the
> crash when I specify "Opteron_G4" or "Opteron_G5", or newer than
> "SandyBridge".
>
> So, I guess this maybe caused by the combinations of cpu model and
> flags which must not exist, maybe qemu changes available instruction
> set based on cpu model, but linux checks only cpu feature flag.
Yeah, probably so. I succeeded to boot my own kernel with "Opteron_G5" model and disabling
"fma4", "tbm", and "xop" which Ryzen doesn't support.
As Paolo said in other mail, The boot also succeeded with "host-passthrough" mode rather than
"host-model". I'll wait for adding "Ryzen (or Zen?)" model to qemu.
Regards,
Satoru
>
> Thank you,
>
> --
> Masami Hiramatsu <mhiramat@kernel.org>
next prev parent reply other threads:[~2017-04-26 11:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-24 6:58 [BUG] x86: failed to boot a kernel on a Ryzen machine Satoru Takeuchi
2017-04-24 11:07 ` Borislav Petkov
2017-04-24 12:39 ` Satoru Takeuchi
2017-04-24 12:48 ` Borislav Petkov
2017-04-24 13:09 ` Satoru Takeuchi
2017-04-25 9:36 ` Borislav Petkov
2017-04-26 7:48 ` Paolo Bonzini
2017-04-26 8:14 ` Borislav Petkov
2017-04-26 11:47 ` Satoru Takeuchi
2017-04-26 16:58 ` Paolo Bonzini
2017-04-27 0:42 ` Satoru Takeuchi
2017-04-28 13:34 ` Paolo Bonzini
2017-04-29 21:08 ` Satoru Takeuchi
2017-04-25 14:58 ` Masami Hiramatsu
2017-04-26 11:56 ` Satoru Takeuchi [this message]
2017-04-26 12:51 ` Borislav Petkov
2017-04-24 11:27 ` Satoru Takeuchi
2017-04-25 7:45 ` Jon Masters
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a873e61j.wl-satoru.takeuchi@gmail.com \
--to=satoru.takeuchi@gmail.com \
--cc=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).