The arm64 fork-then-swap-out-then-swap-in failures: a program source for exploring them

Mark Millard markmi at dsl-only.net
Thu Apr 20 07:13:06 UTC 2017


On 2017-Apr-19, at 10:28 AM, Mark Millard <markmi at dsl-only.net> wrote:

> On 2017-Apr-18, at 11:16 AM, Jia-Shiun Li <jiashiun at gmail.com> wrote:
> 
>> just noticed that rpi3 wiki page still has outdated issue info regarding
>> this (the jemalloc error). Anyone to help update it?
>> 
>> https://wiki.freebsd.org/arm64/rpi3
> 
> stable/11 is still in process for the fork handling fixes.
> 
> One of the 2 fixes to fork behavior has just been MFC'd:
> -r313772 from head is now -r317147 in stable/11 . So
> interrupts will no longer trash the sp_el0 register.
> 
> There is still -r316679 from head to go so that
> Copy-On-Write would work for fork. (The defect
> may be more general than just being for fork.)
> 
>> -Jia-Shiun
>> 
>> On Mon, Apr 10, 2017 at 5:51 PM, Mark Millard <markmi at dsl-only.net> wrote:
>> 
>>> buildworld buildkernel completed non-stop for the first time
>>> on a BPI-M3 board.
>>> 
>>> Looks good for a check-in to svn to me (head and stable/11).
>>> 
>>> This combined with 2017-Feb-15's -r313772's fix to the fork
>>> trampline code's updating of sp_el0 makes arm64 far more stable
>>> for my purposes.
>>> 
>>> -r313772 was never MFC'd to stable/11. In my view it should be.

Another head-vintage-specific rpi3 note on:

https://wiki.freebsd.org/arm64/rpi3

is where it says:



If you want to build your own ports or packages, you'll need to install the aarch64-binutils package and link /usr/bin/ld to /usr/local/bin/aarch64-freebsd-ld: 

# pkg install aarch64-binutils
# ln /usr/local/bin/aarch64-freebsd-ld /usr/bin/ld



But using WITH_LLD_IS_LD= for an aarch64 buildworld
now provides an aarch64 system ld that works for
many things. This is now the default for aarch64.

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-hackers mailing list