git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected

From
AMAndrew Morton <akpm@linux-foundation.org>
Date
Aug 22, 2008, 16:25 UTC
Message-ID
<20080822092549.ddcb7e79.akpm@linux-foundation.org>
In-Reply-To
<48AEDD3D.4060507@hp.com>
On Fri, 22 Aug 2008 11:37:33 -0400 "Alan D. Brunelle" <Alan.Brunelle@hp.com> wrote:
Show 32 quoted lines
> Andrew Morton wrote:
> 
> > 
> > You could confirm/debug it with something along the lines of this:
> > 
> > --- a/mm/vmalloc.c~a
> > +++ a/mm/vmalloc.c
> > @@ -214,7 +214,9 @@ __get_vm_area_node(unsigned long size, u
> >  	unsigned long align = 1;
> >  	unsigned long addr;
> >  
> > -	BUG_ON(in_interrupt());
> > +	if (preempt_count() > 10)
> > +		printk("%s: preempt_count()=%d\n", __func__, preempt_count());
> > +	WARN_ON(in_interrupt());
> >  	if (flags & VM_IOREMAP) {
> >  		int bit = fls(size);
> >  
> > _
> > 
> > 
> > But this bug could be in practically anywhere in the kernel and
> > bisection is by far the best way to find it.  It's sad and odd that
> > bisection landed you on a merge commit.  I'd suggest that you persist
> > with the bisection (please). 
> > http://www.kernel.org/doc/local/git-quick.html#example might be useful.
> 
> Sorry, was off on other things for the last couple of days:
> 
> I /did/ bisect it down to the aforementioned merge, the question is: How
> to crack open that merge into it's composite pieces? (Where do I go to
> bisect within that?)

urgh, it's irritating when git-bisect directs you to a merge commit - it hasn't done it for me for ages.

One (probably wrong) approach is to run
	gitk 1c89ac55017f982355c7761e1c912c88c941483d

then peer at the output, work out which real commits were in that merge.

It looks like the merge ended with b1b135c8d619cb2c7045d6ee4e48375882518bb5 and started with 40c42076ebd362dc69210cccea101ac80b6d4bd4, so perhaps you can do

	git bisect bad b1b135c8d619cb2c7045d6ee4e48375882518bb5
	git bisect good 40c42076ebd362dc69210cccea101ac80b6d4bd4

That has an off-by-one error, in that it assumes that 40c42076ebd362dc69210cccea101ac80b6d4bd4 is good, which we don't know. Perhaps one can pick the preceding commit in the `git log' output to fix that.

Anyway, I've sent sufficient wrongness to the right list for us to work out how to do this for real ;)

Next: Petr Baudis
Message 1 of 12 in “Re: Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected”
  1. Andrew MortonAug 22, 2008
  2. Petr BaudisAug 22, 2008
  3. Andrew MortonAug 22, 2008
  4. Alan D. BrunelleAug 22, 2008
  5. Björn SteinbrinkAug 22, 2008
  6. Alan D. BrunelleAug 22, 2008
  7. Alan D. BrunelleAug 22, 2008
  8. Jeff KingAug 22, 2008
  9. Junio C HamanoAug 22, 2008
  10. Andrew MortonAug 22, 2008
  11. Jeff KingAug 22, 2008
  12. Björn SteinbrinkAug 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.