#
12334:e0ab29a34764 |
|
30-Nov-2017 |
Gabe Black <gabeblack@google.com> |
misc: Rename misc.(hh|cc) to logging.(hh|cc)
These files aren't a collection of miscellaneous stuff, they're the definition of the Logger interface, and a few utility macros for calling into that interface (panic, warn, etc.).
Change-Id: I84267ac3f45896a83c0ef027f8f19c5e9a5667d1 Reviewed-on: https://gem5-review.googlesource.com/6226 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Gabe Black <gabeblack@google.com>
|
#
11218:d135bc832ffe |
|
16-Nov-2015 |
Swapnil Haria <swapnilh@cs.wisc.edu> |
x86: Invalidating TLB entry on page fault
As per the x86 architecture specification, matching TLB entries need to be invalidated on a page fault. For instance, after a page fault due to inadequate protection bits on a TLB hit, the TLB entry needs to be invalidated. This behavior is clearly specified in the x86 architecture manuals from both AMD and Intel. This invalidation is missing currently in gem5, due to which linux kernel versions 3.8 and up cannot be simulated efficiently. This is exposed by a linux optimisation in commit e4a1cc56e4d728eb87072c71c07581524e5160b1, which removes a tlb flush on updating page table entries in x86.
Testing: Linux kernel versions 3.8 onwards were booting very slowly in FS mode, due to repeated page faults (~300000 before the first print statement in a bash file). Ensured that page fault rate drops drastically and observed reduction in boot time from order of hours to minutes for linux kernel v3.8 and v3.11
|
#
10805:f2c472d4ff9c |
|
29-Apr-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
x86: change divide-by-zero fault to divide-error Same exception is raised whether division with zero is performed or the quotient is greater than the maximum value that the provided space can hold. Divide-by-Zero is the AMD terminology, while Divide-Error is Intel's.
|
#
10687:276da6265ab8 |
|
11-Feb-2015 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
sim: Move the BaseTLB to src/arch/generic/
The TLB-related code is generally architecture dependent and should live in the arch directory to signify that.
|
#
10417:710ee116eb68 |
|
27-Sep-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
arch: Use const StaticInstPtr references where possible
This patch optimises the passing of StaticInstPtr by avoiding copying the reference-counting pointer. This avoids first incrementing and then decrementing the reference-counting pointer.
|
#
9873:530a50b10ebe |
|
18-Sep-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
x86: Expose the interrupt vector in faults
This patch allows a hardware virtualized CPU to discover which interrupt to deliver to the guest.
|
#
8902:75b524b64c28 |
|
19-Mar-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
gcc: Clean-up of non-C++0x compliant code, first steps
This patch cleans up a number of minor issues aiming to get closer to compliance with the C++0x standard as interpreted by gcc and clang (compile with std=c++0x and -pedantic-errors). In particular, the patch cleans up enums where the last item was succeded by a comma, namespaces closed by a curcly brace followed by a semi-colon, and the use of the GNU-extension typeof (replaced by templated functions). It does not address variable-length arrays, zero-size arrays, anonymous structs, range expressions in switch statements, and the use of long long. The generated CPU code also has a large number of issues that remain to be fixed, mainly related to overflows in implicit constant conversion (due to shifts).
|
#
8740:253aeee61e66 |
|
30-Sep-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Remove FULL_SYSTEM from the x86 faults.
|
#
8591:8f23aeaf6a91 |
|
27-Sep-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Faults: Replace calls to genMachineCheckFault with M5PanicFault.
|
#
8229:78bf55f23338 |
|
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
includes: sort all includes
|
#
7714:32496de51017 |
|
22-Oct-2010 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement genMachineCheckFault.
Even though this shouldn't ever be used, it might get called speculatively and shouldn't panic.
|
#
7681:61e31534522d |
|
14-Sep-2010 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make unrecognized instructions behave better in x86.
|
#
7678:f19b6a3a8cec |
|
13-Sep-2010 |
Gabe Black <gblack@eecs.umich.edu> |
Faults: Pass the StaticInst involved, if any, to a Fault's invoke method.
Also move the "Fault" reference counted pointer type into a separate file, sim/fault.hh. It would be better to name this less similarly to sim/faults.hh to reduce confusion, but fault.hh matches the name of the type. We could change Fault to FaultPtr to match other pointer types, and then changing the name of the file would make more sense.
|
#
7625:b1e69203bae9 |
|
23-Aug-2010 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the TLB fault instead of panic when something is unmapped in SE mode.
The fault object, if invoked, would then panic. This is a bit less direct, but it means speculative execution won't panic the simulator.
|
#
7087:fb8d5786ff30 |
|
24-May-2010 |
Nathan Binkert <nate@binkert.org> |
copyright: Change HP copyright on x86 code to be more friendly
|
#
6049:595b5016f6d5 |
|
19-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the STARTUP IPI.
|
#
6048:65a321a3a691 |
|
19-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the INIT IPI.
|
#
6023:47b4fcb10c11 |
|
09-Apr-2009 |
Nathan Binkert <nate@binkert.org> |
tlb: More fixing of unified TLB
|
#
6009:74bc713c71ce |
|
08-Mar-2009 |
Nathan Binkert <nate@binkert.org> |
build: fix compiler warnings in g++ 3.4
|
#
5909:ecbd27e5d1f8 |
|
25-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add a trace flag for tracing faults.
|
#
5895:569e3b31a868 |
|
25-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the X86 TLB take advantage of delayed translations, and get rid of the fake TLB miss faults.
|
#
5881:73c0aaaaf186 |
|
23-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Pass whether an access was a read/write/fetch so faults can behave accordingly.
|
#
5858:54f64fb1bd62 |
|
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: All x86 fault classes now attempt to do something useful.
|
#
5857:8cd8e1393990 |
|
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the fault classes handle error codes better.
|
#
5851:7bd73614dc1d |
|
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Keep track of the vector for all exceptions/faults.
|
#
5684:3995b7c2ae86 |
|
13-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Panic when an unimplemented fault is invoked, rather than spinning forever
|
#
5681:54c2d92f601e |
|
13-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the x86 interrupt fault kick off the interrupt microcode.
|
#
5655:74f76480407f |
|
12-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the local APIC process interrupts and send them to the CPU.
|
#
5654:340254de2031 |
|
12-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the local APIC handle interrupt messages from the IO APIC.
|
#
5652:7e710528969a |
|
12-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the bases for x86 fault class public.
|
#
5237:6c819dbe8045 |
|
12-Nov-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Work on the page table walker, TLB, and related faults.
|
#
5139:2422708d4fcb |
|
07-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make faults maintain an error code which gets pushed on the stack.
|
#
5124:3d8c50376609 |
|
03-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Start implementing the x86 tlb which will handle segmentation permission and limit checks and paging.
|
#
5114:edcdf9b908ec |
|
03-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add classes for the actual x86 faults.
|
#
5004:7d94cedab264 |
|
26-Aug-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Address translation: Make the page table more flexible. The page table now stores actual page table entries. It is still a templated class here, but this will be corrected in the near future.
|
#
4729:99800622a6e8 |
|
20-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Make the "name" function const.
|
#
4365:f780e9fad124 |
|
10-Apr-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Fix up the base x86 fault object and create a fault to be generated by unimplemented instructions in their microcode. This is useful if certain variations of an instruction are implemented, but, for instance, it's memory based versions aren't.
|
#
4150:642840fd4652 |
|
05-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Added fault generation functions. I would still like to see these go away. The page table fault should be moved into sim/faults.hh because it's a "fake" m5 fault for se mode and shouldn't vary between architectures.
|
#
4139:385be08269d7 |
|
05-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Added a missing include.
|
#
4135:58a8bd096de9 |
|
04-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Stub x86 Fault class which just panics.
|
#
4120:3e09b5d32c45 |
|
03-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Add build hooks for x86.
|