Re: Panic from vesa_configure()

From: Alan Cox <alan.l.cox_at_gmail.com>
Date: Sat, 9 Jan 2016 13:50:28 -0600
On Sat, Jan 9, 2016 at 12:44 AM, Adrian Chadd <adrian.chadd_at_gmail.com>
wrote:

> It shouldn't have changed though; you're just requesting memory to use
> for x86bios calls.
>
> +jhb - any ideas?
>
>

Yes, there is insufficient free (or reclaimable) physical memory below 1MB,
so contigmalloc() fails.

This is almost certainly a side-effect of r292469, specifically, this part:

"Make vm_phys_alloc_contig() a little smarter (and more efficient in some
cases).  Specifically, use vm_phys_segs[] earlier to avoid scanning free
page lists that can't possibly contain suitable pages.

That part of the change has altered the order in which we allocate from the
free lists corresponding to different ranges of physical addresses, so
contigmalloc(low=0, high=4GB) might well consume memory from physical
addresses [0, 1MB), whereas before it wouldn't consume such physical memory
as long as physical memory between 16MB and 4GB was available.



>
>
>
> On 8 January 2016 at 20:53, Cy Schubert <Cy.Schubert_at_komquats.com> wrote:
> > 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. :~
> >
> >
> >
> >
> > 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.
> >
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Sat Jan 09 2016 - 18:50:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:02 UTC