Home | History | Annotate | Download | only in include
History log of /src/sys/arch/aarch64/include/types.h
RevisionDateAuthorComments
 1.21  03-Nov-2022  skrll Provide MI PMAP support on AARCH64
 1.20  10-Oct-2021  skrll Use sys/uvm/pmap/pmap_tlb.c on Aarch64 in the same way that some Arm, MIPS,
and some PPC kernels do. This removes the limitation of 256 processes on
CPUs with 8bit ASID field, e.g. Apple M1.

Additionally the following changes have been made

- removed a couple of unnecessary aarch64_tlbi_all calls
- removed any invalidation after freeing page tables due to
_pmap_sweep_pdp. This was never necessary afaict.
- all kernel mappings are marked global and userland mapping not-global.

Performance testing hasn't show a significant difference. The data here
is from building a kernel on an lx2k system with nvme.

before
1489.6u 400.4s 2:40.65 1176.5% 228+224k 0+32289io 57pf+0w
1482.6u 403.2s 2:38.49 1189.9% 228+222k 0+32274io 46pf+0w
1485.4u 402.2s 2:37.27 1200.2% 228+222k 0+32275io 12pf+0w

after
1493.9u 404.6s 2:37.50 1205.4% 227+221k 0+32265io 48pf+0w
1485.0u 408.0s 2:38.54 1194.0% 227+222k 0+32272io 36pf+0w
1484.3u 407.0s 2:35.88 1213.3% 228+224k 0+32268io 14pf+0w

>>> stats.ttest_ind([160.65,158.49,157.27], [157.5,158.54,155.88])
Ttest_indResult(statistic=1.1923622711296888, pvalue=0.2990182944606766)
>>>
 1.19  30-Sep-2021  skrll Make tlb_asid_t unsigned int as pmap_tlb.c expects tlb_asid_t to be able to
hold ASID_MAX + 1.
 1.18  24-Mar-2021  simonb s/depreciated/deprecated/g
 1.17  23-Jan-2021  jmcneill branches: 1.17.2;
Add __HAVE_BUS_SPACE_8
 1.16  14-Sep-2020  ryo branches: 1.16.2;
PID_MAX is just an initial value (soft maximum). Don't use it for CTASSERT.
defined __HAVE_CPU_MAXPROC to use function cpu_maxproc().

pointed out by mrg@, thanks.
 1.15  03-Aug-2020  ryo Implement MD ucas(9) (__HAVE_UCAS_FULL)
 1.14  14-Feb-2020  skrll sort __HAVE_* defines. NFCI
 1.13  06-Dec-2019  kamil branches: 1.13.2;
Remove __HAVE_CPU_LWP_SETPRIVATE from aarch64

aarch64 specific cpu_lwp_setprivate() is redundant with its caller
lwp_setprivate() and there are no MD bits.
 1.12  13-Oct-2018  ryo - define PMAP_{MAP,UNMAP}_POOLPAGE for performance
- define __HAVE_MM_MD_KERNACC and add mm_md_kernacc()
 1.11  17-Jul-2018  joerg Be consistent and explicitly size register32_t too.
 1.10  17-Jul-2018  christos match declaration types for registers from reg.h
 1.9  12-Jul-2018  maxv Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.8  28-Apr-2018  jmcneill branches: 1.8.2;
Define __HAVE_OLD_DISKLABEL for compatibility with the arm32 port.
 1.7  27-Apr-2018  ryo define __HAVE_ATOMIC64_OPS
pointed out by nonaka@, thanks
 1.6  01-Apr-2018  ryo Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
 1.5  28-Feb-2016  joerg branches: 1.5.16;
Reorder using register_t to the point where it is defined.
 1.4  23-Jan-2016  christos expose the kernel types for standalone code.
 1.3  23-Jan-2016  christos Hide {p,v}{addr,size}_t and register_t (and a couple more types that
are machine-specific) from userland unless _KERNEL/_KMEMUSER and a
new _KERNTYPES variables is defined. The _KERNTYPES should be fixed
for many subsystems that should not be using it (rump)...
 1.2  27-Aug-2015  pooka Fix PTHREAD_FOO_INITIALIZER for C++ by not using volatile in the relevant
pthread types in C++ builds, attempt 2.

The problem with attempt 1 was making assumptions of what the MD
__cpu_simple_lock_t (declared volatile) looks like. To get a same type
except non-volatile, we change the MD type to __cpu_simple_lock_nv_t
and typedef __cpu_simple_lock_t as a volatile __cpu_simple_lock_nv_t.
IMO, __cpu_simple_lock_t should not be volatile at all, but changing it
now is too risky.

Fixes at least Rumprun w/ gcc 5.1/5.2. Furthermore, the mpd application
(and possibly others) will no longer require NetBSD-specific patches.

Tested: build.sh for i386, Rumprun for x86_64 w/ gcc 5.2.

Based on the patch from Christos in lib/49989.
 1.1  10-Aug-2014  matt branches: 1.1.4; 1.1.6;
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.
 1.1.6.2  19-Mar-2016  skrll Sync with HEAD
 1.1.6.1  22-Sep-2015  skrll Sync with HEAD
 1.1.4.3  03-Dec-2017  jdolecek update from HEAD
 1.1.4.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.4.1  10-Aug-2014  tls file types.h was added on branch tls-maxphys on 2014-08-20 00:02:39 +0000
 1.5.16.4  20-Oct-2018  pgoyette Sync with head
 1.5.16.3  28-Jul-2018  pgoyette Sync with HEAD
 1.5.16.2  02-May-2018  pgoyette Synch with HEAD
 1.5.16.1  07-Apr-2018  pgoyette Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
 1.8.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.8.2.1  10-Jun-2019  christos Sync with HEAD
 1.13.2.1  29-Feb-2020  ad Sync with head.
 1.16.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.17.2.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed