Home | History | Annotate | Download | only in conf
History log of /src/sys/arch/amd64/conf/kern.ldscript.Xen
RevisionDateAuthorComments
 1.18  24-Jan-2022  maya put .note.Xen into PT_NOTE

this is where grub 2.02 and possibly other things expect
to find it.
Fixes booting with grub2 on prgmr.com.
 1.17  21-May-2020  jdolecek update Xen ldscript to add kASan .ctors section, so that Xen kernel with
enabled KASAN option at least compiles; no promises on it actually working
though
 1.16  24-Jun-2018  maxv Sync the ld scripts:

* Force a PAGE_SIZE alignment of .bss on i386. Normally that's not
required since the bootloader ensures page alignment, but let's be
safe. Same on Xen-i386.

* Fill the .text section padding with int3 instructions on Xen kernels,
to prevent FALLTHROUGHs if a pointer goes crazy, same as native.
 1.15  24-Jun-2018  jdolecek follow change in rev. 1.22 of kern.ldscript and apply same fix for xen
ldscript too, but using just regular PAGE_ALIGN alignment:

"""
Fix a pretty dumb mistake I made in r1.22: the alignment needs to be in the
bss, otherwise the bootloader will use memory before __kernel_end and give
a wrong start pa to the kernel.
"""

this got broke by amd64/locore.S rev. 1.141 which removed an unused variable
which forced the alignment

this fixes ps/bt in ddb to be able to find symbols and hence PR port-xen/53056
 1.14  07-Jan-2018  maxv branches: 1.14.2;
Implement a real hotpatch feature.

Define a HOTPATCH() macro, that puts a label and additional information
in the new .rodata.hotpatch kernel section. In patch.c, scan the section
and patch what needs to be. Now it is possible to hotpatch the content of
a macro.

SMAP is switched to use this new system; this saves a call+ret in each
kernel entry/exit point.

Many other operating systems do the same.
 1.13  02-Aug-2016  maxv branches: 1.13.8;
Align the segments properly, and split text+rodata in two separate segments
on Xen.
 1.12  13-May-2016  maxv branches: 1.12.2;
Xen therefore uses x86/db_memrw.c, as I suspected. Define __rodata_start
in the Xen ld scripts, so that it can compile. We put the __rodata_start
definition right before __data_start, for it to appear as dead code, since
the rodata segment is not yet mapped independently on Xen.
 1.11  12-May-2016  maxv KNF the Xen ld scripts on x86.
 1.10  25-Aug-2015  uebayasi Fix previous; do include assym.h.
 1.9  25-Aug-2015  uebayasi Replace COHERENCY_UNIT in ldscript.
 1.8  22-Aug-2015  uebayasi Don't need to specify OUTPUT_FORMAT/OUTPUT_ARCH in linker scripts.
 1.7  20-Aug-2015  uebayasi Simplify these by relocating only .text.
 1.6  20-Aug-2015  uebayasi Indent with 2 spaces.
 1.5  02-Nov-2014  uebayasi branches: 1.5.2;
Revert previous per joerg@'s request.

According to him, exposing .data.{read_mostly,cacheline_aligned} is
intentional so that people can easily see which variables are optimized.
 1.4  01-Nov-2014  uebayasi amd64, i386: Don't expose .data.{read_mostly,cacheline_aligned} sections
 1.3  01-Jun-2010  mjf branches: 1.3.18;
Add __cacheline_aligned and __read_mostly annotations.

These annotations help to mitigate false sharing on multiprocessor
systems.

Variables annotated with __cacheline_aligned are placed into the
.data.cacheline_aligned section in the kernel. Each item in this
section is aligned on a cachline boundary - this avoids false
sharing. Highly contended global locks are a good candidate for
__cacheline_aligned annotation.

Variables annotated with __read_mostly are packed together tightly
into a .data.read_mostly section in the kernel. The idea here is that
we can pack infrequently modified data items into a cacheline and
avoid having to purge the cache, which would happen if read mostly
data and write mostly data shared a cachline. Initialisation variables
are a prime candiate for __read_mostly annotations.
 1.2  22-Nov-2007  bouyer branches: 1.2.2; 1.2.4; 1.2.8; 1.2.16; 1.2.26; 1.2.40; 1.2.46; 1.2.48;
Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support
to NetBSD/Xen, both Dom0 and DomU.
 1.1  17-Oct-2007  bouyer branches: 1.1.2; 1.1.4;
file kern.ldscript.Xen was initially added on branch bouyer-xenamd64.
 1.1.4.1  08-Dec-2007  mjf Sync with HEAD.
 1.1.2.2  25-Oct-2007  bouyer Finish sync with HEAD. Especially use the new x86 pmap for xenamd64.
For this:
- rename pmap_pte_set() to pmap_pte_testset()
- make pmap_pte_set() a function or macro for non-atomic PTE write
- define and use pmap_pa2pte()/pmap_pte2pa() to read/write PTE entries
- define pmap_pte_flush() which is a nop in x86 case, and flush the
MMUops queue in the Xen case
 1.1.2.1  17-Oct-2007  bouyer amd64 (aka x86-64) support for Xen. Based on the OpenBSD port done by
Mathieu Ropert in 2006.
DomU-only for now. An INSTALL_XEN3_DOMU kernel with a ramdisk will boot to
sysinst if you're lucky. Often it panics because a runable LWP has
a NULL stack (really, it's all of l->l_addr which is has been zeroed out
while the process was on the queue !)
TODO:
- bug fixes :)
- Most of the xpq_* functions should be shared with xen/i386
- The xen/i386 assembly bootstrap code should be remplaced with the C
version in xenamd64/amd64/xpmap.c
- see if a config(5) trick could allow to merge xenamd64 back to xen or amd64.
 1.2.48.1  03-Jul-2010  rmind sync with head
 1.2.46.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.2.40.2  29-Mar-2011  jym More sync fixes. And add the mbr_gpt files.
 1.2.40.1  24-Oct-2010  jym Sync with HEAD
 1.2.26.1  11-Aug-2010  yamt sync with head.
 1.2.16.2  09-Jan-2008  matt sync with HEAD
 1.2.16.1  22-Nov-2007  matt file kern.ldscript.Xen was added on branch matt-armv6 on 2008-01-09 01:44:51 +0000
 1.2.8.2  07-Dec-2007  yamt sync with head
 1.2.8.1  22-Nov-2007  yamt file kern.ldscript.Xen was added on branch yamt-lazymbuf on 2007-12-07 17:24:03 +0000
 1.2.4.2  03-Dec-2007  ad Sync with HEAD.
 1.2.4.1  22-Nov-2007  ad file kern.ldscript.Xen was added on branch vmlocking on 2007-12-03 19:02:47 +0000
 1.2.2.2  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.2.2.1  22-Nov-2007  joerg file kern.ldscript.Xen was added on branch jmcneill-pm on 2007-11-27 19:35:31 +0000
 1.3.18.1  03-Dec-2017  jdolecek update from HEAD
 1.5.2.3  05-Oct-2016  skrll Sync with HEAD
 1.5.2.2  29-May-2016  skrll Sync with HEAD
 1.5.2.1  22-Sep-2015  skrll Sync with HEAD
 1.12.2.1  06-Aug-2016  pgoyette Sync with HEAD
 1.13.8.1  06-Mar-2018  martin Pull up the following revisions, requested by maxv in ticket #603:

amd64/conf/kern.ldscript 1.25 (patch)
amd64/conf/kern.ldscript.Xen 1.14 (patch)
i386/conf/kern.ldscript 1.21 (patch)
i386/conf/kern.ldscript.Xen 1.15 (patch)
x86/include/cpufunc.h 1.24 (patch)
x86/x86/patch.c 1.25 (partial) 1.26 (partial)

Backport x86_hotpatch.
 1.14.2.1  25-Jun-2018  pgoyette Sync with HEAD

RSS XML Feed