It's not maintained properly, nor tested, and the engineering of these files 
has, frankly, become rather messy. se.py (and fs.py) are in the 
"configs/example" directory because they were intended to be examples of how to 
configure a gem5 simulation. Overtime they have been extended and used as a 
de-facto CLI to gem5 which they were never intended to be. This CLI is an 
inefficient, poorly documented way to configure a system and leads to all sorts 
problems. As an example, the cross-product of the all the CLI options is HUGE 
and a lot in them don't work or don't make sense. There really no way for the 
user to know what's right and what's wrong. This doesn't sit right with me.

Configuring a gem5 system should be seen more like writing a program. The scope 
of what can be done is infinite and is managed by giving the developer a 
language to state in a structured way what they want. gem5 is the interpreter 
for this language and the output is the simulation. Using fs.py/se.py to 
configure a system is like trying to develop a CPP program by CLI. You quickly 
run into limits. The reason I believe this was accepted for so long in gem5 is 
that configuring a non-trivial systems involved writing 100s of lines of Python 
code, a lot of which didn't vary much between different simulations. Building 
on our programming language comparison, we developed a standard library 
containing commonly used components which can be connected into a system in a 
modular manner: https://www.gem5.org/documentation/gem5-stdlib/overview. This 
library is continually tested, and we put significant engineering resources to 
maintaining its stability and extending it with new features.

With the gem5 stdlib users can configure simulations in a few lines of Python. 
Here is an example of configuring an X86 FS system simulation running Ubuntu 
18.04 boot to userspace with just 7 lines: 
https://github.com/gem5/gem5/blob/f29bfc0640c88a79eb7f94454ce31b3237ec0066/configs/example/gem5_library/x86-ubuntu-run.py.
 The stdlib addresses the problems se.py and fs.py were kept to address, in 
better way. 

Above all else, there's really no one who works regularly on the project 
willing to maintain these files to our standards. While they are deprecated and 
will be removed in a later release, we have no problem with people continuing 
to use them. They are open source, so take copy and use them in your work as 
you see fit. In deprecating them we are simply ceding responsibility so we may 
focus more-so on parts of the project we believe deliver better value to the 
community.

Kind regards,
Bobby

--
Dr. Bobby R. Bruce
Room 3050,
Kemper Hall, UC Davis
Davis,
CA, 95616
 
web: https://www.bobbybruce.net

> On Aug 26, 2023, at 6:52 AM, chengyong zhong via gem5-users 
> <gem5-users@gem5.org> wrote:
> 
> Hi all,
> I'm wondering why the config/example/se.py has been deprecated, it was a 
> helpful configuration for extending custom configuration.
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to 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