Panic from vesa_configure()
Cy Schubert
Cy.Schubert at komquats.com
Sat Jan 9 04:53:48 UTC 2016
Cy Schubert writes:
> In message <201601080107.u0817kDw078603 at slippy.cwsent.com>, Cy Schubert
> writes:
> > In message <CAJ-VmonGOs2f+rzciEcV=VuaNrZt0hqNePQx4LZDWu6BxuR9NQ at mail.gmail.
> c
> > om>
> > , Adrian Chadd writes:
> > > Ok,
> > >
> > > So try adding this check:
> > >
> > > vmbuf = x86bios_alloc(&offs, sizeof(*buf), M_WAITOK);
> > > if (vmbuf == NULL) {
> > > printf("%s: x86bios_alloc failed!\n", __func__);
> > > goto fail;
> > > }
> > >
> > > ... that call shouldn't be failing, but if it's truely failing on the
> > > bcopy(), the only reason is because vmbuf is NULL.
> >
> > Thanks. I'll try this.
> >
> > vesa.c hasn't changed for a while so I suspect the root cuase may be
> > somewhere else (we're probably treating the symptom here). Nice thing about
>
> > using the same mobo and cpu combination on all my machines (except
> > laptops), failures are completely reproducible. Might be a good idea to put
>
> > in a dtrace probe too.
>
> Hi Adrian,
>
> Your patch fixed the issue. I've included a dtrace probe. I suspect the
> error may be BIOS specific and the dtrace probe should help in tracking it
> down. Does this look good to commit?
A bit of multitasking going on here. I should have included the patch. :~
-------------- next part --------------
Index: vesa.c
===================================================================
--- vesa.c (revision 293386)
+++ vesa.c (working copy)
@@ -819,6 +819,11 @@
regs.R_AX = 0x4f00;
vmbuf = x86bios_alloc(&offs, sizeof(*buf), M_WAITOK);
+ if (vmbuf == NULL) {
+ printf("%s: x86bios_alloc failed!\n", __func__);
+ DTRACE_PROBE1(x86bios_alloc_failed, int, vmbuf);
+ goto fail;
+ }
regs.R_ES = X86BIOS_PHYSTOSEG(offs);
regs.R_DI = X86BIOS_PHYSTOOFF(offs);
-------------- next part --------------
Cheers,
Cy Schubert <Cy.Schubert at komquats.com> or <Cy.Schubert at cschubert.com>
FreeBSD UNIX: <cy at FreeBSD.org> Web: http://www.FreeBSD.org
The need of the many outweighs the greed of the few.
More information about the freebsd-current
mailing list