Skip site navigation (1)Skip section navigation (2)

CVS log for src/sys/ia64/ia64/genassym.c

[BACK] Up to [FreeBSD] / src / sys / ia64 / ia64

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.51.2.1.2.1: download - view: text, markup, annotated - select for diffs
Fri Nov 11 04:20:22 2011 UTC (2 months, 4 weeks ago) by kensmith
Branches: RELENG_9_0
CVS tags: RELENG_9_0_0_RELEASE
Diff to: previous 1.51.2.1: preferred, colored
Changes since revision 1.51.2.1: +0 -0 lines
SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)

Revision 1.51.2.1: download - view: text, markup, annotated - select for diffs
Fri Sep 23 00:51:37 2011 UTC (4 months, 2 weeks ago) by kensmith
Branches: RELENG_9
CVS tags: RELENG_9_0_BP
Branch point for: RELENG_9_0
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +0 -0 lines
SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)

Revision 1.51: download - view: text, markup, annotated - select for diffs
Sat Apr 30 20:49:00 2011 UTC (9 months, 1 week ago) by marcel
Branches: MAIN
CVS tags: RELENG_9_BP, HEAD
Branch point for: RELENG_9
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +2 -2 lines
SVN rev 221271 on 2011-04-30 20:49:00Z by marcel

Stop linking against a direct-mapped virtual address and instead
use the PBVM. This eliminates the implied hardcoding of the
physical address at which the kernel needs to be loaded. Using the
PBVM makes it possible to load the kernel irrespective of the
physical memory organization and allows us to replicate kernel text
on NUMA machines.

While here, reduce the direct-mapped page size to the kernel's
page size so that we can support memory attributes better.

Revision 1.50: download - view: text, markup, annotated - select for diffs
Fri Mar 18 22:45:43 2011 UTC (10 months, 3 weeks ago) by marcel
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +5 -0 lines
SVN rev 219758 on 2011-03-18 22:45:43Z by marcel

o   Move the IVT and supporting functions to the front of the text
    segment so that it's always mapped by the loader.
o   Change the alternate fault handlers to account for PBVM. Since
    currently the region is handled by the VHPT, no alternate faults
    will be generated for it.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Fri Mar 18 15:36:28 2011 UTC (10 months, 3 weeks ago) by marcel
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +1 -1 lines
SVN rev 219741 on 2011-03-18 15:36:28Z by marcel

Use VM_MAXUSER_ADDRESS rather than VM_MAX_ADDRESS when we talk about
the bounds of user space. Redefine VM_MAX_ADDRESS as ~0UL, even though
it's not used anywhere in the source tree.

Revision 1.44.14.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:10:29 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_7_4
CVS tags: RELENG_7_4_0_RELEASE
Diff to: previous 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44: +0 -0 lines
SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)

Revision 1.44.10.4.4.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:09:25 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_8_2
CVS tags: RELENG_8_2_0_RELEASE
Diff to: previous 1.44.10.4: preferred, colored; next MAIN 1.44.12.1: preferred, colored
Changes since revision 1.44.10.4: +0 -0 lines
SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)

Revision 1.48: download - view: text, markup, annotated - select for diffs
Tue Nov 9 20:41:10 2010 UTC (15 months ago) by jhb
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +0 -1 lines
SVN rev 215052 on 2010-11-09 20:41:10Z by jhb

Remove unused includes of <sys/mutex.h> and <machine/mutex.h>.

Revision 1.44.10.4.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 14 02:09:06 2010 UTC (19 months, 4 weeks ago) by kensmith
Branches: RELENG_8_1
CVS tags: RELENG_8_1_0_RELEASE
Diff to: previous 1.44.10.4: preferred, colored; next MAIN 1.44.12.1: preferred, colored
Changes since revision 1.44.10.4: +0 -0 lines
SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)

Revision 1.44.10.4: download - view: text, markup, annotated - select for diffs
Wed Apr 7 02:24:41 2010 UTC (22 months ago) by nwhitehorn
Branches: RELENG_8
CVS tags: RELENG_8_2_BP, RELENG_8_1_BP
Branch point for: RELENG_8_2, RELENG_8_1
Diff to: previous 1.44.10.3: preferred, colored; branchpoint 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44.10.3: +2 -2 lines
SVN rev 206336 on 2010-04-07 02:24:41Z by nwhitehorn

MFC r205014,205015:

Provide groundwork for 32-bit binary compatibility on non-x86 platforms,
for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32
option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts
of the kernel and enhances the freebsd32 compatibility code to support
big-endian platforms.

This MFC is required for MFCs of later changes to the freebsd32
compatibility from HEAD.

Requested by:	kib

Revision 1.47: download - view: text, markup, annotated - select for diffs
Thu Mar 11 14:49:06 2010 UTC (23 months ago) by nwhitehorn
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +2 -2 lines
SVN rev 205014 on 2010-03-11 14:49:06Z by nwhitehorn

Provide groundwork for 32-bit binary compatibility on non-x86 platforms,
for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32
option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts
of the kernel and enhances the freebsd32 compatibility code to support
big-endian platforms.

Reviewed by:	kib, jhb

Revision 1.44.12.1: download - view: text, markup, annotated - select for diffs
Wed Feb 10 00:26:20 2010 UTC (2 years ago) by kensmith
Branches: RELENG_7_3
CVS tags: RELENG_7_3_0_RELEASE
Diff to: previous 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44: +0 -0 lines
SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)

Revision 1.44.10.3: download - view: text, markup, annotated - select for diffs
Sat Dec 12 05:14:40 2009 UTC (2 years, 1 month ago) by marcel
Branches: RELENG_8
Diff to: previous 1.44.10.2: preferred, colored; branchpoint 1.44: preferred, colored
Changes since revision 1.44.10.2: +1 -1 lines
SVN rev 200431 on 2009-12-12 05:14:40Z by marcel

MFC rev 199893, 199941, 200200 and 200207:
o   Eliminate MAXCPU.
o   Revamp the PCPU structure.

Revision 1.46: download - view: text, markup, annotated - select for diffs
Mon Dec 7 06:41:27 2009 UTC (2 years, 2 months ago) by marcel
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +1 -1 lines
SVN rev 200207 on 2009-12-07 06:41:27Z by marcel

Define struct pcpu_md as the only MD field of struct pcpu (pc_acpi_id
excluded, as it's used by MI code) and mode the sysctl variables from
pcpu_stats to pcpu_md.
Adjust all references accordingly.

While nearby, change the PCPU sysctl tree so that they match the CPU
device sysctl tree -- they are now children of a static node called
"machdep.cpu" and are named only with their cpu ID.

Revision 1.44.10.2.2.1: download - view: text, markup, annotated - select for diffs
Sun Oct 25 01:10:29 2009 UTC (2 years, 3 months ago) by kensmith
Branches: RELENG_8_0
CVS tags: RELENG_8_0_0_RELEASE
Diff to: previous 1.44.10.2: preferred, colored; next MAIN 1.44.10.3: preferred, colored
Changes since revision 1.44.10.2: +0 -0 lines
SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)

Revision 1.44.10.2: download - view: text, markup, annotated - select for diffs
Sun Aug 16 02:12:13 2009 UTC (2 years, 5 months ago) by marcel
Branches: RELENG_8
CVS tags: RELENG_8_0_BP
Branch point for: RELENG_8_0
Diff to: previous 1.44.10.1: preferred, colored; branchpoint 1.44: preferred, colored
Changes since revision 1.44.10.1: +0 -1 lines
SVN rev 196270 on 2009-08-16 02:12:13Z by marcel

MFC rev 196268:
Decouple ACPI CPU Ids from FreeBSD's cpuid. The ACPI Ids can be
sparse, which causes a kernel assert.

Approved by:	re (kensmith)

Revision 1.45: download - view: text, markup, annotated - select for diffs
Sun Aug 16 01:43:08 2009 UTC (2 years, 5 months ago) by marcel
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +0 -1 lines
SVN rev 196268 on 2009-08-16 01:43:08Z by marcel

Decouple ACPI CPU Ids from FreeBSD's cpuid. The ACPI Ids can be
sparse, which causes a kernel assert.

Approved by:	re (kensmith)

Revision 1.44.10.1: download - view: text, markup, annotated - select for diffs
Mon Aug 3 08:13:06 2009 UTC (2 years, 6 months ago) by kensmith
Branches: RELENG_8
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +0 -0 lines
SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)

Revision 1.44.8.1: download - view: text, markup, annotated - select for diffs
Wed Apr 15 03:14:26 2009 UTC (2 years, 9 months ago) by kensmith
Branches: RELENG_7_2
CVS tags: RELENG_7_2_0_RELEASE
Diff to: previous 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44: +0 -0 lines
SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)

Revision 1.44.6.1: download - view: text, markup, annotated - select for diffs
Tue Nov 25 02:59:29 2008 UTC (3 years, 2 months ago) by kensmith
Branches: RELENG_7_1
CVS tags: RELENG_7_1_0_RELEASE
Diff to: previous 1.44: preferred, colored; next MAIN 1.45: preferred, colored
Changes since revision 1.44: +0 -0 lines
SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)

Revision 1.41.2.1.8.1: download - view: text, markup, annotated - select for diffs
Thu Oct 2 02:57:24 2008 UTC (3 years, 4 months ago) by kensmith
Branches: RELENG_6_4
CVS tags: RELENG_6_4_0_RELEASE
Diff to: previous 1.41.2.1: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41.2.1: +0 -0 lines
SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)

Revision 1.44: download - view: text, markup, annotated - select for diffs
Sat Nov 18 21:48:13 2006 UTC (5 years, 2 months ago) by marcel
Branches: MAIN
CVS tags: RELENG_8_BP, RELENG_7_BP, RELENG_7_4_BP, RELENG_7_3_BP, RELENG_7_2_BP, RELENG_7_1_BP, RELENG_7_0_BP, RELENG_7_0_0_RELEASE, RELENG_7_0, RELENG_7
Branch point for: RELENG_8, RELENG_7_4, RELENG_7_3, RELENG_7_2, RELENG_7_1
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +0 -1 lines
Revert previous commit. PC_CONS_BUFR is not used nor needed by
assembly.

Revision 1.43: download - view: text, markup, annotated - select for diffs
Wed Nov 1 04:54:50 2006 UTC (5 years, 3 months ago) by jb
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +1 -0 lines
Add a cnputs() function to write a string to the console with
a lock to prevent interspersed strings written from different CPUs
at the same time.

To avoid putting a buffer on the stack or having to malloc one,
space is incorporated in the per-cpu structure. The buffer
size if 128 bytes; chosen because it's the next power of 2 size
up from 80 characters.

String writes to the console are buffered up the end of the line
or until the buffer fills. Then the buffer is flushed to all
console devices.

Existing low level console output via cnputc() is unaffected by
this change. ithread calls to log() are also unaffected to avoid
blocking those threads.

A minor change to the behaviour in a panic situation is that
console output will still be buffered, but won't be written to
a tty as before. This should prevent interspersed panic output
as a number of CPUs panic before we end up single threaded
running ddb.

Reviewed by:	scottl, jhb
MFC after:	2 weeks

Revision 1.41.2.1: download - view: text, markup, annotated - select for diffs
Sat Jan 28 18:40:55 2006 UTC (6 years ago) by marcel
Branches: RELENG_6
CVS tags: RELENG_6_4_BP, RELENG_6_3_BP, RELENG_6_3_0_RELEASE, RELENG_6_3, RELENG_6_2_BP, RELENG_6_2_0_RELEASE, RELENG_6_2, RELENG_6_1_BP, RELENG_6_1_0_RELEASE, RELENG_6_1
Branch point for: RELENG_6_4
Diff to: previous 1.41: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41: +4 -4 lines
MFC ia64 psABI conformance changes:
	s/R_IA64_/R_IA_64_/
	s/DT_IA64_/DT_IA_64_/

	libexec/rtld-elf/ia64/reloc.c:1.17,1.18
	libexec/rtld-elf/ia64/rtld_start.S:1.4
	sys/boot/ia64/efi/start.S:1.9,1.10
	sys/ia64/ia64/elf_machdep.c:1.23
	sys/ia64/ia64/genassym.c:1.42
	sys/ia64/ia64/locore.S:1.39
	sys/ia64/include/elf.h:1.12,1.13,1.14
	usr.bin/elfdump/elfdump.c:1.14

Revision 1.42: download - view: text, markup, annotated - select for diffs
Tue Jan 17 21:03:22 2006 UTC (6 years ago) by marcel
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +4 -4 lines
s/R_IA64_/R_IA_64_/g as per the ia64 psABI.

Revision 1.39.2.1: download - view: text, markup, annotated - select for diffs
Sat Feb 5 01:04:53 2005 UTC (7 years ago) by das
Branches: RELENG_5
CVS tags: RELENG_5_5_BP, RELENG_5_5_0_RELEASE, RELENG_5_5, RELENG_5_4_BP, RELENG_5_4_0_RELEASE, RELENG_5_4
Diff to: previous 1.39: preferred, colored; next MAIN 1.40: preferred, colored
Changes since revision 1.39: +1 -1 lines
MFC:

  2004-11-20 02:28:15 UTC
  user.h is included only to get pcb.h, so use the latter directly instead.

Revision 1.41: download - view: text, markup, annotated - select for diffs
Sat Nov 20 02:28:14 2004 UTC (7 years, 2 months ago) by das
Branches: MAIN
CVS tags: RELENG_6_BP, RELENG_6_0_BP, RELENG_6_0_0_RELEASE, RELENG_6_0
Branch point for: RELENG_6
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +1 -1 lines
user.h is included only to get pcb.h, so use the latter directly instead.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Sat Sep 25 04:27:44 2004 UTC (7 years, 4 months ago) by marcel
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +5 -1 lines
Move the IA-32 trap handling from trap() to ia32_trap(). Move the
ia32_syscall() function along with it to ia32_trap.c. When COMPAT_IA32
is not defined, we'll raise SIGEMT instead.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Wed Apr 7 20:46:07 2004 UTC (7 years, 10 months ago) by imp
Branches: MAIN
CVS tags: RELENG_5_BP, RELENG_5_3_BP, RELENG_5_3_0_RELEASE, RELENG_5_3
Branch point for: RELENG_5
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +0 -4 lines
Remove advertising clause from University of California Regent's
license, per letter dated July 22, 1999 and email from Peter Wemm,
Alan Cox and Robert Watson.

Approved by: core, peter, alc, rwatson

Revision 1.38: download - view: text, markup, annotated - select for diffs
Fri Sep 19 00:37:41 2003 UTC (8 years, 4 months ago) by marcel
Branches: MAIN
CVS tags: RELENG_5_2_BP, RELENG_5_2_1_RELEASE, RELENG_5_2_0_RELEASE, RELENG_5_2
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +2 -0 lines
Include "opt_kstack_pages.h". We export KSTACK_PAGES to assembly and
better have the right value.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Tue Sep 9 05:59:09 2003 UTC (8 years, 5 months ago) by marcel
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +2 -0 lines
Introduce IA64_ID_PAGE_{MASK|SHIFT|SIZE} and LOG2_ID_PAGE_SIZE. The
latter is a kernel option for IA64_ID_PAGE_SHIFT, which in turn
determines IA64_ID_PAGE_MASK and IA64_ID_PAGE_SIZE.

The constants are used instead of the literal hardcoding (in its
various forms) of the size of the direct mappings created in region
6 and 7. The default and probably only workable size is still 256M,
but for kicks we use 128M for LINT.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Fri Sep 5 22:50:10 2003 UTC (8 years, 5 months ago) by marcel
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +0 -2 lines
Fix a place where I forgot to change the code that checks whether
we return to kernel or userland. This triggered a panic in a KSE
application when TDF_USTATCLOCK was set in the case userland was
interrupted, but we never called ast() on our way out. As such,
we called ast() at some other time. Unfortunately, TDF_USTATCLOCK
handling assumes running in the interrupt thread. This was not
the case anymore.

To avoid making the same mistake later, interrupt() now returns
to its caller whether we interrupted userland or not. This avoids
that we have to duplicate the check in assembly, where it's bound
to fall off the scope. Now we simply check the return value and
call ast() if appropriate.

Run into this: davidxu

Revision 1.35: download - view: text, markup, annotated - select for diffs
Mon Aug 4 00:08:39 2003 UTC (8 years, 6 months ago) by marcel
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +1 -1 lines
Fix handling of external interrupts: we weren't calling ast() when
interrupting user mode. The net effect of this bug is that a clock
interrupt does not cause rescheduling and processes are not
preempted. It only takes a "while (1);" to render the machine
useless.

This bug was introduced by the context changes and EPC syscall code.
Handling of ASTs was moved to C for clarity and ease of maintenance,
but was not added for the external interrupt case.

This needs to be revisited. We now have calls to do_ast() in trap(),
break_syscall() and ivt_External_Interrupt(). A single call in
exception_restore covers these 3 places without duplication. This
is where we handled ASTs prior to the overhaul, except that the
meat has been moved to do_ast(), a C function. This was the goal
to begin with.

Pointy hat: marcel

Revision 1.34: download - view: text, markup, annotated - select for diffs
Fri May 16 21:26:40 2003 UTC (8 years, 8 months ago) by marcel
Branches: MAIN
CVS tags: RELENG_5_1_BP, RELENG_5_1_0_RELEASE, RELENG_5_1
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +39 -71 lines
Revamp of the syscall path, exception and context handling. The
prime objectives are:
o  Implement a syscall path based on the epc inststruction (see
   sys/ia64/ia64/syscall.s).
o  Revisit the places were we need to save and restore registers
   and define those contexts in terms of the register sets (see
   sys/ia64/include/_regset.h).

Secundairy objectives:
o  Remove the requirement to use contigmalloc for kernel stacks.
o  Better handling of the high FP registers for SMP systems.
o  Switch to the new cpu_switch() and cpu_throw() semantics.
o  Add a good unwinder to reconstruct contexts for the rare
   cases we need to (see sys/contrib/ia64/libuwx)

Many files are affected by this change. Functionally it boils
down to:
o  The EPC syscall doesn't preserve registers it does not need
   to preserve and places the arguments differently on the stack.
   This affects libc and truss.
o  The address of the kernel page directory (kptdir) had to
   be unstaticized for use by the nested TLB fault handler.
   The name has been changed to ia64_kptdir to avoid conflicts.
   The renaming affects libkvm.
o  The trapframe only contains the special registers and the
   scratch registers. For syscalls using the EPC syscall path
   no scratch registers are saved. This affects all places where
   the trapframe is accessed. Most notably the unaligned access
   handler, the signal delivery code and the debugger.
o  Context switching only partly saves the special registers
   and the preserved registers. This affects cpu_switch() and
   triggered the move to the new semantics, which additionally
   affects cpu_throw().
o  The high FP registers are either in the PCB or on some
   CPU. context switching for them is done lazily. This affects
   trap().
o  The mcontext has room for all registers, but not all of them
   have to be defined in all cases. This mostly affects signal
   delivery code now. The *context syscalls are as of yet still
   unimplemented.

Many details went into the removal of the requirement to use
contigmalloc for kernel stacks. The details are mostly CPU
specific and limited to exception_save() and exception_restore().
The few places where we create, destroy or switch stacks were
mostly simplified by not having to construct physical addresses
and additionally saving the virtual addresses for later use.

Besides more efficient context saving and restoring, which of
course yields a noticable speedup, this also fixes the dreaded
SMP bootup problem as a side-effect. The details of which are
still not fully understood.

This change includes all the necessary backward compatibility
code to have it handle older userland binaries that use the
break instruction for syscalls. Support for break-based syscalls
has been pessimized in favor of a clean implementation. Due to
the overall better performance of the kernel, this will still
be notived as an improvement if it's noticed at all.

Approved by: re@ (jhb)

Revision 1.33: download - view: text, markup, annotated - select for diffs
Mon Feb 17 09:55:09 2003 UTC (8 years, 11 months ago) by julian
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +3 -4 lines
Move a bunch of flags from the KSE to the thread.
I was in two minds as to where to put them in the first case..
I should have listenned to the other mind.

Submitted by:	 parts by davidxu@
Reviewed by:	jeff@ mini@

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sun Feb 2 09:07:15 2003 UTC (9 years ago) by marcel
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +6 -0 lines
Export IA32 from opt_ia32.h to assembly so that we can eliminate
saving and restoring ia32 specific registers when switching
context and ia32 support has not been compiled-in. The primary
reason for this change is that one of the ia32 registers (ar.fcr)
is wrongly marked as invalid by the simulator. Now that we avoid
using the register when possible, usability is improved. The
secundary reason is that it saves us 7 loads and stores.

Note that the PCB will continue to have room for these registers,
irrespective of the IA32 option. There are no benefits that make
it worthwhile.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Wed Oct 30 05:55:29 2002 UTC (9 years, 3 months ago) by marcel
Branches: MAIN
CVS tags: RELENG_5_0_BP, RELENG_5_0_0_RELEASE, RELENG_5_0
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -29 lines
Rewrite cpu_switch(). The most notable change is the fact that we now
have f16-f31 as part of the context. The PCB has been reorganized to
better match how we save and restore the (preserved) registers. This
commit also moves the context restoriation to its own function (named
pcb_restore), as we did with pcb_save.

Only minimal effort has been put in writing optimal assembly. The
expectation is that there will be more rounds of changes.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Fri Jul 12 18:34:22 2002 UTC (9 years, 7 months ago) by jhb
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +0 -2 lines
Set the thread state of the newly chosen to run thread to TDS_RUNNING in
choosethread() in MI C code instead of doing it in in assembly in all the
various cpu_switch() functions.  This fixes problems on ia64 and sparc64.

Reviewed by:	julian, peter, benno
Tested on:	i386, alpha, sparc64

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sat Jun 29 18:26:18 2002 UTC (9 years, 7 months ago) by julian
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +2 -0 lines
Add KSE stubs to MD parts of ia64 code.
Dfr will fill these out when we decide to enable KSEs on ia64
(probably not immediatly)

Revision 1.28: download - view: text, markup, annotated - select for diffs
Fri Mar 29 16:35:25 2002 UTC (9 years, 10 months ago) by jake
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +6 -0 lines
Remove abuse of intr_disable/restore in MI code by moving the loop in ast()
back into the calling MD code.  The MD code must ensure no races between
checking the astpening flag and returning to usermode.

Submitted by:	peter (ia64 bits)
Tested on:	alpha (peter, jeff), i386, ia64 (peter), sparc64

Revision 1.27: download - view: text, markup, annotated - select for diffs
Thu Mar 14 19:20:24 2002 UTC (9 years, 10 months ago) by dfr
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +2 -0 lines
Add pcpu.pc_current_pmap and pcb.pcb_pmap.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Mon Mar 4 12:47:47 2002 UTC (9 years, 11 months ago) by dfr
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +1 -0 lines
Add emulation support for PAL_VM_SUMMARY.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Thu Feb 7 10:27:58 2002 UTC (10 years ago) by phk
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +0 -1 lines
GC the PC_SWITCH* symbols which are not used in assembly anymore.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Sun Dec 30 09:23:10 2001 UTC (10 years, 1 month ago) by marcel
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +1 -0 lines
Add PC_IDLETHREAD. We need it in cpu_switch.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Tue Dec 18 00:27:16 2001 UTC (10 years, 1 month ago) by jhb
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +0 -1 lines
Modify the critical section API as follows:
- The MD functions critical_enter/exit are renamed to start with a cpu_
  prefix.
- MI wrapper functions critical_enter/exit maintain a per-thread nesting
  count and a per-thread critical section saved state set when entering
  a critical section while at nesting level 0 and restored when exiting
  to nesting level 0.  This moves the saved state out of spin mutexes so
  that interlocking spin mutexes works properly.
- Most low-level MD code that used critical_enter/exit now use
  cpu_critical_enter/exit.  MI code such as device drivers and spin
  mutexes use the MI wrappers.  Note that since the MI wrappers store
  the state in the current thread, they do not have any return values or
  arguments.
- mtx_intr_enable() is replaced with a constant CRITICAL_FORK which is
  assigned to curthread->td_savecrit during fork_exit().

Tested on:	i386, alpha

Revision 1.22: download - view: text, markup, annotated - select for diffs
Tue Dec 11 23:33:41 2001 UTC (10 years, 2 months ago) by jhb
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +5 -5 lines
Overhaul the per-CPU support a bit:

- The MI portions of struct globaldata have been consolidated into a MI
  struct pcpu.  The MD per-CPU data are specified via a macro defined in
  machine/pcpu.h.  A macro was chosen over a struct mdpcpu so that the
  interface would be cleaner (PCPU_GET(my_md_field) vs.
  PCPU_GET(md.md_my_md_field)).
- All references to globaldata are changed to pcpu instead.  In a UP kernel,
  this data was stored as global variables which is where the original name
  came from.  In an SMP world this data is per-CPU and ideally private to each
  CPU outside of the context of debuggers.  This also included combining
  machine/globaldata.h and machine/globals.h into machine/pcpu.h.
- The pointer to the thread using the FPU on i386 was renamed from
  npxthread to fpcurthread to be identical with other architectures.
- Make the show pcpu ddb command MI with a MD callout to display MD
  fields.
- The globaldata_register() function was renamed to pcpu_init() and now
  init's MI fields of a struct pcpu in addition to registering it with
  the internal array and list.
- A pcpu_destroy() function was added to remove a struct pcpu from the
  internal array and list.

Tested on:	alpha, i386
Reviewed by:	peter, jake

Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Oct 31 18:06:38 2001 UTC (10 years, 3 months ago) by dfr
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +1 -0 lines
Add TF_AR_FPSR, the offset of ar.fpsr in a trapframe.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Oct 21 14:03:58 2001 UTC (10 years, 3 months ago) by dfr
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +16 -7 lines
Add some more names for bits of trapframe.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sat Sep 29 10:24:09 2001 UTC (10 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +6 -1 lines
Add some move definitions.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Thu Sep 20 15:03:28 2001 UTC (10 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +22 -22 lines
Tidy.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Sep 20 11:02:18 2001 UTC (10 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +1 -5 lines
Don't include NFS headers. I have no idea why they were here in the first
place - NFS has no assembler in it.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Sep 20 02:49:59 2001 UTC (10 years, 4 months ago) by peter
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +4 -4 lines
Replicate a change from alpha/genassym.c to other arches. This should
fix nfs-related build breakage.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Sep 13 12:39:14 2001 UTC (10 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +13 -1 lines
* Enable dynamically linked kernel. This involves adding a self-relocator
  to locore to process the @fptr relocations in the dynamic executable.
* Don't initialise the timer until *after* we install the timecounter to
  avoid a race between timecounter initialisation and hardclock.
* Tidy up bootinfo somewhat including adding sanity checks for when the
  kernel is loaded without a recognisable bootinfo.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Sep 12 08:37:40 2001 UTC (10 years, 5 months ago) by julian
Branches: MAIN
CVS tags: KSE_MILESTONE_2
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +38 -37 lines
KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after:    ha ha ha ha

Revision 1.13: download - view: text, markup, annotated - select for diffs
Mon Sep 10 13:39:59 2001 UTC (10 years, 5 months ago) by dfr
Branches: MAIN
CVS tags: KSE_PRE_MILESTONE_2
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +4 -1 lines
* Make a start on a realistic definition for bootinfo.
* Switch to proc0's stack and backing store before calling ia64_init
  so that we don't rely on the loader's stack at all.
* Change kernel entry point name from locorestart to __start.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed Mar 28 02:46:20 2001 UTC (10 years, 10 months ago) by jhb
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -2 lines
Catch up to the mtx_saveintr -> mtx_savecrit change.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu Feb 22 17:09:49 2001 UTC (10 years, 11 months ago) by jhb
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +1 -2 lines
Axe pcb_schednest as it is no longer used.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Thu Feb 22 15:37:34 2001 UTC (10 years, 11 months ago) by jhb
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +1 -2 lines
Axe the astpending per-cpu variable.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Wed Jan 24 17:12:27 2001 UTC (11 years ago) by dfr
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +2 -2 lines
Change cpuno to cpuid.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sat Dec 30 13:07:58 2000 UTC (11 years, 1 month ago) by dfr
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +1 -3 lines
Don't include <stddef.h> for offsetof() - its also defined in <sys/types.h>

Revision 1.7: download - view: text, markup, annotated - select for diffs
Tue Oct 24 19:54:36 2000 UTC (11 years, 3 months ago) by dfr
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +7 -1 lines
* Various fixes to breakage introduced by the atomic and mutex reorgs.
* Fixes to the signal delivery code. Not quite right yet.

I would have preferred to wait until I have signal delivery actually
working but the current kernel in CVS doesn't build.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Oct 20 07:38:44 2000 UTC (11 years, 3 months ago) by jhb
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -2 lines
- machine/mutex.h -> sys/mutex.h
- Catch up to the MI mutex structure due to saveflags,saveipl,savepsr
  becoming saveintr.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Oct 16 08:54:38 2000 UTC (11 years, 3 months ago) by dfr
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +8 -1 lines
* Correct some of my misunderstandings about how best to switch to the
  kernel backing store.
* Implement syscalls via break instructions.
* Fix backing store copying in cpu_fork() so that the child gets the right
  register values.

This thing is actually starting to work now. This set of changes takes me
up to the second execve (the one which runs the first shell). Next stop
single-user mode :-).

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Oct 12 14:36:38 2000 UTC (11 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +5 -1 lines
* Fix exception handling so that it actually works. We can now handle
  exceptions from both kernel and user mode.
* Fix context switching so that we can switch back to a proc which we
  switched away from (we were saving the state in the wrong place).
* Implement lazy switching of the high-fp state. This needs to be looked
  at again for SMP to cope with the case of a process migrating from one
  processor to another while it has the high-fp state.
* Make setregs() work properly. I still think this should be called
  cpu_exec() or something.
* Various other minor fixes.

With this lot, we can execve() /sbin/init and we get all the way up to its
first syscall. At that point, we stop because syscall handling is not done
yet.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Oct 10 14:57:10 2000 UTC (11 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -1 lines
* Add rudimentary DDB support (no kgdb, no backtrace, no single step).
* Track recent changes to SWI code.
* Allocate RIDs for pmaps (untested).
* Implement assembler version of cpu_switch - its cleaner that way.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Sep 30 17:48:43 2000 UTC (11 years, 4 months ago) by dfr
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +17 -3 lines
Next round of ia64 work, including fixes to context switching,
implementing cpu_fork(), copy*str(), bcopy(), copy{in,out}(). With these
changes, my test kernel reaches the mountroot prompt.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Fri Sep 29 13:46:04 2000 UTC (11 years, 4 months ago) by dfr
Branches: MAIN
This is the first snapshot of the FreeBSD/ia64 kernel. This kernel will
not work on any real hardware (or fully work on any simulator). Much more
needs to happen before this is actually functional but its nice to see
the FreeBSD copyright message appear in the ia64 simulator.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options