Bobby,

You suggestion (number 3) worked, and I was able to run the compiled gem5.opt 
by fixing generator=generator. I did have an additional error which I corrected 
by:

motherboard._pre_instantiate()
m5.instantiate()

I am including the two runs (with error and no error). I have a couple of 
concerns. I used the docker commands in gem5-bootcamp-env to build a docker 
container that I used to run gem5. This seems to run in both WSL, and on my 
stand alone Ubuntu linux system. When I run via the docker I am root, so there 
may be some issues with root privilege.

I don’t have a problem running version 22 in my class, but I am concerned that 
I don’t control that repository. I need to make sure that repository will 
remain stable while I teach with that version. If I have enough time to 
prepared, I will also see if I can get it running on the jetson orin nano 
system since we are providing them to our students.

I think I disagree with statement 2. The build was following the example from 
Marjan Fariborz Cache Systems charts. I was in the gem5 directory (under the 
gem5-bootcamp-env directory). The argument –j16 indicates use all 16 cores.  I 
am not sure why the statement:

scons build/NULL_MESI_Two_Level/gem5.opt --default=NULL PROTOCOL=MESI_Two_Level 
–j16

Produces the error message:
Error: No non-leaf 'build' dir found on target path. 
/home/besernd1/gem5-bootcamp-env/gem5/–j16

If I use:
python3 `which scons` build/NULL_MESI_Two_Level/gem5.opt --default=NULL 
PROTOCOL=MESI_Two_Level -j16

Everything works correctly.

Thank-you for your help,

Nick

Prior to the correction this is the error message:


./gem5/build/NULL_MESI_Two_Level/gem5.opt 
materials/using-gem5/04-cache-models/simple_cache_run.py 2 MESITwoLevel 512MB
gem5 Simulator System.  https://www.gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 23.0.0.1
gem5 compiled Jul 24 2023 20:02:58
gem5 started Jul 24 2023 20:15:44
gem5 executing on BESERND1-WL2, pid 11874
command line: ./gem5/build/NULL_MESI_Two_Level/gem5.opt 
materials/using-gem5/04-cache-models/simple_cache_run.py 2 MESITwoLevel 512MB

Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file and 
pdf.
Exception:
AbstractBoard's `_connect_things` function has not been called. This is likely
due to not running a board outside of the gem5 Standard Library Simulator
module. If this is the case, this can be resolved by calling
`<AbstractBoard>._pre_instantiate()` prior to `m5.instantiate()`.


At:
  src/python/gem5/components/boards/abstract_board.py(402): 
_connect_things_check
  src/python/gem5/components/boards/abstract_system_board.py(65): createCCObject
  src/python/m5/simulate.py(124): instantiate
  materials/using-gem5/04-cache-models/simple_cache_run.py(104): <module>
  src/python/m5/main.py(629): main

After the correction I got:

:~/gem5-bootcamp-env$ ./gem5/build/NULL_MESI_Two_Level/gem5.opt 
materials/using-gem5/04-cache-models/simple_cache_run.py 2 MESITwoLevel 512MB
gem5 Simulator System.  https://www.gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 23.0.0.1
gem5 compiled Jul 24 2023 20:02:58
gem5 started Jul 24 2023 20:18:09
gem5 executing on BESERND1-WL2, pid 11886
command line: ./gem5/build/NULL_MESI_Two_Level/gem5.opt 
materials/using-gem5/04-cache-models/simple_cache_run.py 2 MESITwoLevel 512MB

Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file and 
pdf.
src/mem/dram_interface.cc:690: warn: DRAM device capacity (8192 Mbytes) does 
not match the address range assigned (512 Mbytes)
src/base/statistics.hh:279: warn: One of the stats is a legacy stat. Legacy 
stat is a stat that does not belong to any statistics::Group. Legacy stat is 
deprecated.
Beginning simulation!
src/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting simulation...
src/mem/ruby/system/Sequencer.cc:606: warn: Replacement policy updates recently 
became the responsibility of SLICC state machines. Make sure to setMRU() near 
callbacks in .sm files!
Exiting @ tick 250002414 because system.processor.cores1.generator has 
encountered the exit state and will terminate the simulation.
.


From: Bobby Bruce <bbr...@ucdavis.edu>
Sent: Monday, July 24, 2023 2:45 PM
To: The gem5 Users mailing list <gem5-users@gem5.org>; Beser, Nicholas D. 
<nick.be...@jhuapl.edu>
Subject: [EXT] Re: [gem5-users] Problems upgrading to latest version

APL external email warning: Verify sender 
bbr...@ucdavis.edu<mailto:bbr...@ucdavis.edu> before clicking links or 
attachments



I think there are a few things going on here causing problems.

1. The pre-commit hooks aren't being installed correctly. i think this is due 
to some directory permission error. The '/.cache' directory appears to not have 
the right permissions here. Perhaps this you did something here with sudo? You 
can recreate this error using "/util/pre-commit-install.sh". Either way it 
isn't necessary that these hooks are installed. If this step fails gem5 should 
still work.

2. The "error not "build' dir found on target path": I'm pretty sure you either 
didn't execute the this in the root of the gem5 directory or you made a typo 
when typing the scons command. The "-j16" at the end of that command makes me 
believe there was some kind of error with passing the `-j` flag and specifying 
the build path.

3. The "procesor" argument has been renamed to "generator" for the test board. 
I believe this is easily fixed. All you need to do is change 
https://github.com/gem5bootcamp/gem5-bootcamp-env/blob/1afde18b5c4240736507a68fd2e54351be31f30d/materials/using-gem5/04-cache-models/simple_cache_run.py#L98
 to `generator=generator,`.

It should be noted that the 2022 gem5 was build with v22.0 of gem5. If you're 
following the Bootcamp we strongly advise using v22.0 of gem5. There have been 
numerous codebase updates over the past year and we can't guarantee all of the 
tutorials will work as intended with the latest version.

--
Dr. Bobby R. Bruce
Room 3050,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net


On Jul 23, 2023, at 7:00 AM, Beser, Nicholas D. via gem5-users 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>> wrote:

I had been running version 22, and I had also run the bootcamp 2022 example for 
demonstrating MESI_Two_Level protocol. After I upgraded to version 23.0.0.1, I 
first noticed that I had trouble compiling the example. After finding a work 
around, to generate gem5.opt, The program seems to be missing the parameter 
processor (which was not needed when I ran version 22. I can use some 
suggestions on how to run this example with the new version (What has changed?

The example where it worked in version 22, but not in version 23:

scons build/NULL_MESI_Two_Level/gem5.opt --default=NULL PROTOCOL=MESI_Two_Level 
–j16

The program gave me an error:

scons build/NULL_MESI_Two_Level/gem5.opt --default=NULL PROTOCOL=MESI_Two_Level 
–j16
scons: Reading SConscript files ...

You're missing the pre-commit/commit-msg hooks. These hook help to ensure your
code follows gem5's style rules on git commit and your commit messages follow
our commit message requirements. This script will now install these hooks in
your .git/hooks/ directory.
Press enter to continue, or ctrl-c to abort:
An unexpected error has occurred: PermissionError: [Errno 13] Permission 
denied: '/.cache'
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/error_handler.py", 
line 73, in error_handler
    yield
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/main.py", line 367, 
in main
    store = Store()
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/store.py", line 71, 
in __init__
    os.makedirs(self.directory, exist_ok=True)
  File "/usr/lib/python3.8/os.py", line 213, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/usr/lib/python3.8/os.py", line 223, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/.cache'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pre-commit", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/main.py", line 433, 
in main
    raise AssertionError(
  File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/error_handler.py", 
line 81, in error_handler
    _log_and_exit(msg, ret_code, e, traceback.format_exc())
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/error_handler.py", 
line 31, in _log_and_exit
    storedir = Store().directory
  File "/usr/local/lib/python3.8/dist-packages/pre_commit/store.py", line 71, 
in __init__
    os.makedirs(self.directory, exist_ok=True)
  File "/usr/lib/python3.8/os.py", line 213, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/usr/lib/python3.8/os.py", line 223, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/.cache'
It is strongly recommended you install the pre-commit hooks before working with 
gem5. Do you want to continue compilation (y/n)?
y
Error: No non-leaf 'build' dir found on target path. 
/home/nbeser1/gem5-bootcamp-env/gem5/–j16

However if I run the following:

python3 `which scons` build/NULL_MESI_Two_Level/gem5.opt --default=NULL 
PROTOCOL=MESI_Two_Level -j16

The program generates gem5.opt

Unfortunately, I also get the following error when I try to run gem5.opt:


./gem5/build/NULL_MESI_Two_Level/gem5.opt 
materials/using-gem5/04-cache-models/simple_cache_run.py 2 MESITwoLevel 512MB
gem5 Simulator System.  https://www.gem5.org<https://www.gem5.org/>
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 23.0.0.1
gem5 compiled Jul 23 2023 13:29:06
gem5 started Jul 23 2023 13:34:05
gem5 executing on d8fae668e22d, pid 42880
command line: ./gem5/build/NULL_MESI_Two_Level/gem5.opt 
materials/using-gem5/04-cache-models/simple_cache_run.py 2 MESITwoLevel 512MB

TypeError: __init__() got an unexpected keyword argument 'processor'

At:
  materials/using-gem5/04-cache-models/simple_cache_run.py(96): <module>
  src/python/m5/main.py(629): main



_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org>
To unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto:gem5-users-le...@gem5.org>

_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to