History log of /gem5/util/m5/m5op_x86.S
Revision Date Author Comments
# 12464:a02f2484c710 09-Dec-2017 Hanhwi Jang <jang.hanhwi@gmail.com>

util: Implement Lua module for m5ops.

This module allows m5ops to be executed in Lua programs.
To compile it (in util/m5):
The following command generates Lua moduel, gem5OpLua.so.

make -f Makefile.<arch> gem5OpLua.so

To use it:
First, put gem5OpLua.so in Lua library search path.
Then, import the module and execute the m5op function.

Example usage, creating a checkpoint.

m5 = require("gem5OpLua")
m5.do_checkpoint(0, 0)

Change-Id: Icc18a1fb6c050afeb1cf4558fbdc724fb26a90e2
Reviewed-on: https://gem5-review.googlesource.com/6541
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


# 12459:e1484770f671 09-Jan-2018 Hanhwi Jang <jang.hanhwi@gmail.com>

util: Implement PIC version of m5ops for X86.

Using m5ops for X86 in shared objects requires PIC for the m5ops.
Typically, the PIC version is used to make m5op interfaces to other
languages like python and lua.

Change-Id: I2463904c13ea8b839d0386d3c743d8dad1e1e6bc
Reviewed-on: https://gem5-review.googlesource.com/7261
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


# 12424:51b6cee2e203 08-Dec-2017 Hanhwi Jang <jang.hanhwi@gmail.com>

util: Add the missing wakecpu m5op in X86.

Change-Id: I74876a4638ad37308ecdb0ef68513a968fac8787
Reviewed-on: https://gem5-review.googlesource.com/6501
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>


# 12160:c282cb504275 27-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util, m5: Use consistent naming for m5op C symbols

Rename m5op C symbols to be prefixed all lower case, separated by
underscore, and prefixed by m5. This avoids potential name clashes for
short names such as arm.

Change-Id: Ic42f94d8a722661ef96c151d627e31eeb2e51490
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jose Marinho <jose.marinho@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4264
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>


# 12157:c27b548bad70 27-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Move the m5ops.h file to a shared directory

The header file m5ops.h contains a list of constants that should be
shared between the simulator and utilities. Move this header file to a
new top-level directory for shared files and rename constants to make
them suitable for inclusion in the main simulator.

The structure of the shared include directory is as follows:

include/gem5: Files that can be included from C code.
include/gem5/asm: Files that can be included from assembly code.
asm/generic/: Files that aren't guest ISA specific
asm/${isa}/: Files that are guest ISA specific

Change-Id: I1aa511057bcaa80cc2d566109ff26581558c4a41
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jose Marinho <jose.marinho@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4261
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>


# 11703:08b78e0a3717 26-Oct-2016 Michael LeBeane <michael.lebeane@amd.com>

dev: Add m5 op to toggle synchronization for dist-gem5.
This patch adds the ability for an application to request dist-gem5 to begin/
end synchronization using an m5 op. When toggling on sync, all nodes agree
on the next sync point based on the maximum of all nodes' ticks. CPUs are
suspended until the sync point to avoid sending network messages until sync has
been enabled. Toggling off sync acts like a global execution barrier, where
all CPUs are disabled until every node reaches the toggle off point. This
avoids tricky situations such as one node hitting a toggle off followed by a
toggle on before the other nodes hit the first toggle off.


# 9898:2935441b0870 29-Sep-2013 Andreas Sandberg <andreas@sandberg.pp.se>

x86: Add support for m5ops through a memory mapped interface

In order to support m5ops in virtualized environments, we need to use
a memory mapped interface. This changeset adds support for that by
reserving 0xFFFF0000-0xFFFFFFFF and mapping those to the generic IPR
interface for m5ops. The mapping is done in the
X86ISA::TLB::finalizePhysical() which means that it just works for all
of the CPU models, including virtualized ones.


# 9607:a54a4ef0f51d 25-Mar-2013 Andreas Sandberg <andreas@sandberg.pp.se>

x86: Revert [02321b16685f] which breaks m5ops on x86

Changeset 02321b16685f added m5_writefile to m5op_x86.S a second time,
which causes a compilation error on when compiling for x86. This
changeset reverts that changeset and fixes the error.


# 9458:02321b16685f 08-Jan-2013 Lluís Vilanova <vilanova@ac.upc.edu>

util: add writefile to m5 util program for x86


# 9457:a4739b6f799d 08-Jan-2013 Lluís Vilanova <vilanova@ac.upc.edu>

util: add m5_fail op.

Used as a command in full-system scripts helps the user ensure the benchmarks have finished successfully.

For example, one can use:

/path/to/benchmark args || /sbin/m5 fail 1

and thus ensure gem5 will exit with an error if the benchmark fails.


# 9351:4229aedfdd09 03-Nov-2012 Lluis Vilanova <vilanova@ac.upc.edu>

x86, util: add m5_writefile to m5op_x86.S

Committed by: Nilay Vaish


# 7914:eee5bb0fb8ea 07-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

m5: added work completed monitoring support


# 7773:0c67ea5dbb7e 22-Nov-2010 Gabe Black <gblack@eecs.umich.edu>

X86: Remove reserved* from the m5 utility program for x86.


# 5790:9279812da5ee 07-Jan-2009 Gabe Black <gblack@eecs.umich.edu>

X86: Set up support for adding m5 pseudo insts to a binary.