Re: ia64/171814: [panic] bioq_init or bioq_remove (unsure which)

John Baldwin <[email protected]>
Newsgroups gmane.os.freebsd.devel.ia64
Message-ID <[email protected]>
On Tuesday, September 25, 2012 1:20:14 pm Paul Procacci wrote:
> The following reply was made to PR ia64/171814; it has been noted by GNATS.
> 
> From: Paul Procacci <[email protected]>
> To: John Baldwin <[email protected]>
> Cc: [email protected], [email protected]
> Subject: Re: ia64/171814: [panic] bioq_init or bioq_remove (unsure which)
> Date: Tue, 25 Sep 2012 12:11:17 -0500
> 
>  --047d7b66f839532c0a04ca89cbf7
>  Content-Type: text/plain; charset=ISO-8859-1
>  
>  Thanks John for your response.
>  
>  Here is the output provided what you had explained to do:
>  
>  
>  0xffffffff80865023 is in devstat_remove_entry
>  (/usr/src/sys/kern/subr_devstat.c:193).
>  188
>  189             /* Remove this entry from the devstat queue */
>  190             atomic_add_acq_int(&ds->sequence1, 1);
>  191             if (ds->id == NULL) {
>  192                     devstat_num_devs--;
>  193                     STAILQ_REMOVE(devstat_head, ds, devstat, 
dev_links);
>  194             }
>  195             devstat_free(ds);
>  196             devstat_generation++;
>  197             mtx_unlock(&devstat_mutex);

I think the devstat entry must have been destroyed twice somehow.

Earlier in geom_subr.c the devstat entry is created with a unit of -1:

struct g_consumer *
g_new_consumer(struct g_geom *gp)
{
	...
	cp->stat = devstat_new_entry(cp, -1, 0, DEVSTAT_ALL_SUPPORTED,
	    DEVSTAT_TYPE_DIRECT, DEVSTAT_PRIORITY_MAX);
}

That should result in devstat_new_entry() setting ds->id to 'cp' (which is 
clearly not NULL), so it shouldn't even attempt the STAILQ_REMOVE(), but that 
is where it appears to have faulted.

-- 
John Baldwin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ia64
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.