Re: [PATCH v2 0/4] x86: sigcontext fixes, again

From: Toshi Kani
Date: Wed Oct 28 2015 - 12:38:21 EST


On Wed, 2015-10-28 at 12:53 +0300, Stas Sergeev wrote:
> 28.10.2015 03:04, Toshi Kani ÐÐÑÐÑ:
> > On Wed, 2015-10-28 at 07:37 +0900, Linus Torvalds wrote:
> > > On Tue, Oct 27, 2015 at 11:05 PM, Stas Sergeev <stsp@xxxxxxx> wrote:
> > > >
> > > > I can't easily post an Oops: under X it doesn't even appear -
> > > > machine freezes immediately, and under non-KMS console it is
> > > > possible to get one, but difficult to screen-shot (using bare
> > > > metal, not VM). Also the Oops was seemingly unrelated.
> > > > And if you run "dosemu -s" under non-KMS console, you'll also
> > > > reproduce this one:
> > > > https://bugzilla.kernel.org/show_bug.cgi?id=97321
> > >
> > > Hmm. Andrew Morton responded to that initially, but then nothing
> > > happened, and now it's been another six months. Andrew?
> > >
> > > The arch/x86/mm/pat.c error handling does seem to be suspect. This is
> > > all code several years old, so none of this is new, and I think
> > > Suresh
> > > is gone. Adding a few other people with recent sign-offs to that
> > > file, in the hope that somebody feels like they own it..
> >
> > In the case of PFNMAP, the range should always be mapped. So, I wonder
> > why
> > follow_phys() failed with the !pte_present() check.
> >
> > Stas, do you have a test program that can reproduce 97321?
> Get dosemu2 from here:
> https://github.com/stsp/dosemu2/releases
> or from git, or get dosemu1.
> Then boot your kernel with "nomodeset=1" to get a text console.
> Run
>
> dosemu -s
>
> and you'll get the bug.
> You don't even need to mess with FreeDOS or whatever, because
> the problem happens on a very start. And since it is WARN_OCNCE,
> you'll need to reboot to get it again.
> You will probably need to adjust /etc/sudoers because -s means
> that dosemu (a wrapper script for dosemu.bin) will try sudo so
> that dosemu.bin can grab /dev/mem as root.
>
> If it is too complicated, let me know and I'll try to code up
> a reduced test-case (but can't promise to get to that quickly).
>
> Thanks to everyone (esp Linus of course :-) who got involved in
> finally supporting dosemu again - it was rather ill for the last
> years.

I compiled "pre4" dosemu2, and ran on 4.3-rc7 kernel booted with the
"nomodeset=1" option. I may be missing something, but I am not able to
reproduce your problem because dosemu fails with the segfault below on my
system...

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000000000421fdb in video_init () at video.c:242
242 if (Video->priv_init)

(gdb) bt
#0 0x0000000000421fdb in video_init () at video.c:242
#1 video_config_init () at video.c:391
#2 0x00000000004b5693 in device_init () at init.c:237
#3 0x000000000041ea3a in main (argc=3, argv=0x7fff70851d28) at emu.c:356

(gdb) p Video
$1 = (struct video_system *) 0x0

Thanks,
-Toshi





--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/