#
e44af46e |
| 07-Sep-2013 |
Justin T. Gibbs <gibbs@FreeBSD.org> |
Implement PV IPIs for PVHVM guests and further converge PV and HVM IPI implmementations.
Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Submitted by: gibbs (misc cleanup, table drive
Implement PV IPIs for PVHVM guests and further converge PV and HVM IPI implmementations.
Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Submitted by: gibbs (misc cleanup, table driven config) Reviewed by: gibbs MFC after: 2 weeks
sys/amd64/include/cpufunc.h: sys/amd64/amd64/pmap.c: Move invltlb_globpcid() into cpufunc.h so that it can be used by the Xen HVM version of tlb shootdown IPI handlers.
sys/x86/xen/xen_intr.c: sys/xen/xen_intr.h: Rename xen_intr_bind_ipi() to xen_intr_alloc_and_bind_ipi(), and remove the ipi vector parameter. This api allocates an event channel port that can be used for ipi services, but knows nothing of the actual ipi for which that port will be used. Removing the unused argument and cleaning up the comments surrounding its declaration helps clarify its actual role.
sys/amd64/amd64/mp_machdep.c: sys/amd64/include/cpu.h: sys/i386/i386/mp_machdep.c: sys/i386/include/cpu.h: Implement a generic framework for amd64 and i386 that allows the implementation of certain CPU management functions to be selected at runtime. Currently this is only used for the ipi send function, which we optimize for Xen when running on a Xen hypervisor, but can easily be expanded to support more operations.
sys/x86/xen/hvm.c: Implement Xen PV IPI handlers and operations, replacing native send IPI.
sys/amd64/include/pcpu.h: sys/i386/include/pcpu.h: sys/i386/include/smp.h: Remove NR_VIRQS and NR_IPIS from FreeBSD headers. NR_VIRQS is defined already for us in the xen interface files. NR_IPIS is only needed in one file per Xen platform and is easily inferred by the IPI vector table that is defined in those files.
sys/i386/xen/mp_machdep.c: Restructure to more closely match the HVM implementation by performing table driven IPI setup.
show more ...
|
#
a29cc9a3 |
| 28-Jul-2013 |
Andriy Gapon <avg@FreeBSD.org> |
Revert r253748,253749
This WIP should not have been committed yet.
Pointyhat to: avg
|
#
366d8bfb |
| 28-Jul-2013 |
Andriy Gapon <avg@FreeBSD.org> |
put contents of cpu.h under _KERNEL
no userland-serviceable parts inside
MFC after: 20 days
|
Revision tags: release/8.4.0, release/9.1.0, release/8.3.0_cvs, release/8.3.0, release/9.0.0 |
|
#
57af65d4 |
| 05-Apr-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Use cpu_ticks() for get_cyclecount(9) rather than checking existence of TSC at run-time on i386. cpu_ticks() is set to use RDTSC early enough on i386 where it is available. Otherwise, cpu_ticks() i
Use cpu_ticks() for get_cyclecount(9) rather than checking existence of TSC at run-time on i386. cpu_ticks() is set to use RDTSC early enough on i386 where it is available. Otherwise, cpu_ticks() is driven by the current timecounter hardware as binuptime(9) does. This also avoids unnecessary namespace pollution from <machine/cputypes.h>.
show more ...
|
#
2ffa4044 |
| 16-Mar-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Rework r219679. Always check CPU class at run-time to make it predictable. Unfortunately, it pulls in <machine/cputypes.h> but it is small enough and namespace pollution is minimal, I hope.
Pointed
Rework r219679. Always check CPU class at run-time to make it predictable. Unfortunately, it pulls in <machine/cputypes.h> but it is small enough and namespace pollution is minimal, I hope.
Pointed out by: bde Pointy hat: jkim
show more ...
|
#
155438b4 |
| 16-Mar-2011 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Merge svn+ssh://svn.freebsd.org/base/head@219680
|
#
1f5cdd5a |
| 15-Mar-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Partially revert r219672. After r198295, kernel need to seed randomness as soon as possible for stack protector. However, dummy timecounter does not have enough entropy and we don't need to sacrifi
Partially revert r219672. After r198295, kernel need to seed randomness as soon as possible for stack protector. However, dummy timecounter does not have enough entropy and we don't need to sacrifice Pentium class and later.
Pointed out by: Maxim Dounin (mdounin at mdounin dot ru)
show more ...
|
#
b2b9331c |
| 15-Mar-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Remove tsc_present from this file, really.
|
#
d8ea2a49 |
| 15-Mar-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Unconditionally use binuptime(9) for get_cyclecount(9) on i386. Since this function is almost exclusively used for random harvesting, there is no need for micro-optimization. Adjust the manual page
Unconditionally use binuptime(9) for get_cyclecount(9) on i386. Since this function is almost exclusively used for random harvesting, there is no need for micro-optimization. Adjust the manual page accordingly.
show more ...
|
#
eb14346a |
| 15-Mar-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Make get_cyclecount(9) little bit more useful where binuptime(9) is used.
|
#
9b4fcf85 |
| 18-Feb-2011 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Merge svn+ssh://svn.freebsd.org/base/head@218816
|
Revision tags: release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0 |
|
#
6d4b9715 |
| 09-Dec-2010 |
Dimitry Andric <dim@FreeBSD.org> |
Sync: merge r216133 through r216338 from ^/head.
|
#
61d14101 |
| 08-Dec-2010 |
Jung-uk Kim <jkim@FreeBSD.org> |
Use int for 'tsc_present' instead of u_int. It is just a boolean.
|
#
b17f9ad2 |
| 16-Aug-2010 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Merge svn+ssh://svn.freebsd.org/base/head@211344
|
Revision tags: release/8.1.0_cvs, release/8.1.0 |
|
#
1003cfe9 |
| 13-Jul-2010 |
Warner Losh <imp@FreeBSD.org> |
Remove obsolete undef of COPY_SIGCODE. It appears to have not been used in FreeBSD in quite some time (maybe since before 4.4-lite :)
Submitted by: bde
|
Revision tags: release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0, release/6.2.0_cvs, release/6.2.0, release/5.5.0_cvs, release/5.5.0 |
|
#
5405ab48 |
| 11-May-2006 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Clean out sysctl machdep.* related defines.
The cmos clock related stuff should really be in MI code.
|
Revision tags: release/6.1.0_cvs, release/6.1.0 |
|
#
b439e431 |
| 22-Dec-2005 |
John Baldwin <jhb@FreeBSD.org> |
Tweak how the MD code calls the fooclock() methods some. Instead of passing a pointer to an opaque clockframe structure and requiring the MD code to supply CLKF_FOO() macros to extract needed values
Tweak how the MD code calls the fooclock() methods some. Instead of passing a pointer to an opaque clockframe structure and requiring the MD code to supply CLKF_FOO() macros to extract needed values out of the opaque structure, just pass the needed values directly. In practice this means passing the pair (usermode, pc) to hardclock() and profclock() and passing the boolean (usermode) to hardclock_cpu() and hardclock_process(). Other details: - Axe clockframe and CLKF_FOO() macros on all architectures. Basically, all the archs were taking a trapframe and converting it into a clockframe one way or another. Now they can just extract the PC and usermode values directly out of the trapframe and pass it to fooclock(). - Renamed hardclock_process() to hardclock_cpu() as the latter is more accurate. - On Alpha, we now run profclock() at hz (profhz == hz) rather than at the slower stathz. - On Alpha, for the TurboLaser machines that don't have an 8254 timecounter, call hardclock() directly. This removes an extra conditional check from every clock interrupt on Alpha on the BSP. There is probably room for even further pruning here by changing Alpha to use the simplified timecounter we use on x86 with the lapic timer since we don't get interrupts from the 8254 on Alpha anyway. - On x86, clkintr() shouldn't ever be called now unless using_lapic_timer is false, so add a KASSERT() to that affect and remove a condition to slightly optimize the non-lapic case. - Change prototypeof arm_handler_execute() so that it's first arg is a trapframe pointer rather than a void pointer for clarity. - Use KCOUNT macro in profclock() to lookup the kernel profiling bucket.
Tested on: alpha, amd64, arm, i386, ia64, sparc64 Reviewed by: bde (mostly)
show more ...
|
Revision tags: release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0, release/4.11.0_cvs, release/4.11.0 |
|
#
2d68e3fb |
| 16-Nov-2004 |
John Baldwin <jhb@FreeBSD.org> |
Initiate deorbit burn sequence for 80386 support in FreeBSD: Remove 80386 (I386_CPU) support from the kernel.
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
9f1b87f1 |
| 03-Aug-2004 |
Maxime Henrion <mux@FreeBSD.org> |
Instead of calling ia32_pause() conditionally on __i386__ or __amd64__ being defined, define and use a new MD macro, cpu_spinwait(). It only expands to something on i386 and amd64, so the compiled c
Instead of calling ia32_pause() conditionally on __i386__ or __amd64__ being defined, define and use a new MD macro, cpu_spinwait(). It only expands to something on i386 and amd64, so the compiled code should be identical.
Name of the macro found by: jhb Reviewed by: jhb
show more ...
|
#
4c5f10a6 |
| 20-Jun-2004 |
Bruce Evans <bde@FreeBSD.org> |
Backed out previous commit. Blind substitution of dev_t by `struct cdev *' was just wrong here because the dev_t's are user dev_t's.
|
#
89c9c53d |
| 16-Jun-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
Revision tags: release/4.10.0_cvs, release/4.10.0 |
|
#
f36cfd49 |
| 07-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
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 tags: release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0 |
|
#
4d33ee7c |
| 17-Dec-2003 |
Brian Feldman <green@FreeBSD.org> |
Hey, how about we NOT make modules crash 486s?
|
Revision tags: release/4.9.0_cvs, release/4.9.0 |
|
#
26502503 |
| 16-Aug-2003 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Further cleanup <machine/cpu.h> and <machine/md_var.h>: move the MI prototypes of cpu_halt(), cpu_reset() and swi_vm() from md_var.h to cpu.h. This affects db_command.c and kern_shutdown.c.
ia64: mo
Further cleanup <machine/cpu.h> and <machine/md_var.h>: move the MI prototypes of cpu_halt(), cpu_reset() and swi_vm() from md_var.h to cpu.h. This affects db_command.c and kern_shutdown.c.
ia64: move all MD prototypes from cpu.h to md_var.h. This affects madt.c, interrupt.c and mp_machdep.c. Remove is_physical_memory(). It's not used (vm_machdep.c).
alpha: the MD prototypes have been left in cpu.h with a comment that they should be there. Moving them is left for later. It was expected that the impact would be significant enough to be done in a seperate commit.
powerpc: MD prototypes left in cpu.h. Comment added.
Suggested by: bde Tested with: make universe (pc98 incomplete)
show more ...
|
Revision tags: release/5.1.0_cvs, release/5.1.0, release/4.8.0_cvs, release/4.8.0 |
|
#
553ebddc |
| 05-Feb-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make get_cyclecount() use binuptime() when no tsc is available: it is cheaper.
|