Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Nov 2019 11:47:11 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: What is an invalid ASID ?
Message-ID:  <7D522F39-7CCB-4678-BE12-506CE8122AC2@yahoo.com>
In-Reply-To: <20191111160303.GA61731@www.zefox.net>
References:  <20191111160303.GA61731@www.zefox.net>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2019-Nov-11, at 08:03, bob prohaska <fbsd at www.zefox.net> wrote:

> While building world on a Pi3 running -current  at r354546 the machine
> reported=20
> panic: invalid ASID
>=20
> For now he machine has restarted and resumed buildworld.
>=20
> Is there a glossary somewhere that offers a description of ASID?

Looks like it is arm terminology instead of FreeBSD-specific =
terminology,
though FreeBSD would have its specific style of use of such. Quoting =
from
a document about armv8:

QUOTE
Each TLB entry typically contains not only physical and virtual =
addresses, but also attributes such as memory type, cache policies, =
access permissions, the Address Space ID (ASID), and the Virtual Machine =
ID (VMID).
END QUOTE

=46rom what I see there is FreeBSD code around like:



 * A pmap's cookie encodes an ASID and epoch number.  Cookies for =
reserved
 * ASIDs have a negative epoch number, specifically, INT_MIN.  Cookies =
for
 * dynamically allocated ASIDs have a non-negative epoch number.
 *
 * An invalid ASID is represented by -1.

. . .

#define	ASID_TO_OPERAND(asid)	({					=
\
	KASSERT((asid) !=3D -1, ("invalid ASID"));			=
\
	(uint64_t)(asid) << ASID_TO_OPERAND_SHIFT;			=
\
})



It looks like a backtrace from such a panic might be of interest to the
folks dealing with such areas.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7D522F39-7CCB-4678-BE12-506CE8122AC2>