Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Aug 2014 17:18:55 -0500
From:      Stacey Son <sson@FreeBSD.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        freebsd-mips@freebsd.org
Subject:   Re: FreeBSD 10.0-STABLE on EdgeRouter Lite notes/issues
Message-ID:  <CDCB6D05-D29E-4217-9660-B046A96120B8@FreeBSD.org>
In-Reply-To: <89108FE4-59E2-471B-AF9D-AAAA9E02A4B0@bsdimp.com>
References:  <CAL8FB_0PJJQupX9Ekz=6L_rUo5Jr0J=xYO0Knb%2B_o5yf9ruYJg@mail.gmail.com> <FF7542EA-B008-448B-84DF-CB6F21F10A22@FreeBSD.org> <89108FE4-59E2-471B-AF9D-AAAA9E02A4B0@bsdimp.com>

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

On Aug 28, 2014, at 3:06 PM, Warner Losh <imp@bsdimp.com> wrote:

>=20
> On Aug 28, 2014, at 12:59 PM, Stacey Son <sson@FreeBSD.org> wrote:
>=20
>>=20
>>> Regarding https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D177876 =
--
>>> is this patch still a good idea? Or has it been merged?
>>=20
>> I have been using it for some time.  If you plan on mounting and =
using NFS volumes or anything else the might take a lot of kernel thread =
stack space then it is a good idea.
>>=20
>> A better version of this patch (that moves the mips dependent code =
out of the vm layer) has been merged into a MIPS64 FreeBSD project and =
that code will be upstreamed sometime in the near future.   You can find =
the changes here:
>>=20
>> =
https://github.com/CTSRD-CHERI/cheribsd/commit/b39bec2cefe36293ffb2322969c=
9f7c9cae8c1a2
>>=20
>> =
https://github.com/CTSRD-CHERI/cheribsd/commit/04ea99d04f6d5a595be759d34e8=
4e7fd9cea8166
>=20
> I don=92t suppose this could be done w/o adding #ifdef __mips__ to =
vm_glue? No need to block upstreaming on this, but it seems this could =
be a MD routine instead...

The plan is to add vm_kstack_valloc()'s and vm_kstack_palloc()'s to each =
${ARCH}/vm_machdep.c.   Of course, it is there for mips but the non-mips =
arch version needs to be added.   Once the non-mips version is added the =
#ifdef __mips__'s in vm_glue.c can go away.  Note that this does replace =
a bit of #ifdef __mips__ wrapped code that was already in vm_glue.c.

>=20
>> =
https://github.com/CTSRD-CHERI/cheribsd/commit/ae4f8d84bc30ffe2b2698534a2e=
6ab64480e8432
>=20
> On the whole, I really like this, but was hoping it would be cleaner. =
There=92s a crying need for it=85

You may have noticed that this FreeBSD branch also includes my older =
change for increasing the kstack size by using multiple wired TLB =
entries.  When "option KSTACK_LARGE_PAGE" is not in the kernel config it =
defaults to using that for __mips_n64.   This, of course, makes switch.S =
a bit messy.   At some point it might be good to generate some of this =
lower level code at boot time depending on the mips hardware that is =
detected.  Especially for critical code like the TLB miss exception =
handler.

-stacey.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CDCB6D05-D29E-4217-9660-B046A96120B8>