NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/57564 test after the commit



This is very weird...  The relevant code is this:

#define	COUNT(f) do { \
	lwp_t *l = curlwp; \
	KPREEMPT_DISABLE(l); \
	struct nchcpu *nchcpu = curcpu()->ci_data.cpu_nch; \
	nchcpu->cur.f++; \
	KPREEMPT_ENABLE(l); \
} while (/* CONSTCOND */ 0);

Somewhere, between

	lwp_t *l = curlwp;

and

	KPREEMPT_DISABLE(l);

l has become null.  My first guess would be that the exception vector
failed to restore all the registers or something.  But every time it's
tripped exactly the same assertion, with the same stack trace in
cache_lookup, right?  If the exception vector were broken, I would
expect to see other random things failing or panicking.

Can you send me the vfs_cache.o file from your kernel build, and/or
share the output of `list *(cache_lookup+0x7c0)' in `gdb netbsd.gdb'?
Maybe the compiler has done something screwy here on armv6.


Home | Main Index | Thread Index | Old Index