gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Physical memory size is greater than 3GB. Twice the number of memory controllers would be created.

AS
Ashif Sikder
Fri, Sep 18, 2015 12:14 AM

Hi all,

I'm new to Gem5. When I try to run Gem5 in Full System mode for x86
architecture with --mem-size=16GB, on the master terminal I get:

"warn: Physical memory size specified is 16GB which is greater than 3GB.
Twice the number of memory controllers would be created."

and simulation gets aborted after showing (on the master terminal):

"fatal: Could not mmap 13958643712 bytes for range [0x100000000 :
0x43fffffff]!".

In case of --mem-size=8GB, I get the same warning (on the master terminal):
"warn: Physical memory size specified is 8GB which is greater than 3GB.
Twice the number of memory controllers would be created."

but it runs and after showing:

"Initializing CPU#0
Checking aperture...
No AGP bridge found
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000
software IO TLB at phys 0x20000000 - 0x24000000
Memory: 8183752k/9437184k available (4469k kernel code, 1048964k absent,
203544k reserved, 2815k data, 376k init)"

on the slave terminal simulation gets aborted.

I have looked into the discussion at
http://comments.gmane.org/gmane.comp.emulators.m5.users/17539  and the
source code at /configs/common/FSConfig.py but could not solve the problem.

The command line used is:

./build/X86/gem5-MESI2L.opt ./configs/example/fs.py
--disk-image=linux-x86.img --kernel=x86-vmlinux-2.6.22.9.smp
--cpu-type=timing --ruby --num-cpus=16 --mesh-rows=4 --num-dirs=4
--mem-type=DDR4_2400_x64 --mem-channels=4 --mem-size=8GB
--topology=MeshDirCorners

Any help will be highly appreciated. Thanks.

Hi all, I'm new to Gem5. When I try to run Gem5 in Full System mode for x86 architecture with --mem-size=16GB, on the master terminal I get: "warn: Physical memory size specified is 16GB which is greater than 3GB. Twice the number of memory controllers would be created." and simulation gets aborted after showing (on the master terminal): "fatal: Could not mmap 13958643712 bytes for range [0x100000000 : 0x43fffffff]!". In case of --mem-size=8GB, I get the same warning (on the master terminal): "warn: Physical memory size specified is 8GB which is greater than 3GB. Twice the number of memory controllers would be created." but it runs and after showing: "Initializing CPU#0 Checking aperture... No AGP bridge found PCI-DMA: Using software bounce buffering for IO (SWIOTLB) Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000 software IO TLB at phys 0x20000000 - 0x24000000 Memory: 8183752k/9437184k available (4469k kernel code, 1048964k absent, 203544k reserved, 2815k data, 376k init)" on the slave terminal simulation gets aborted. I have looked into the discussion at http://comments.gmane.org/gmane.comp.emulators.m5.users/17539 and the source code at /configs/common/FSConfig.py but could not solve the problem. The command line used is: ./build/X86/gem5-MESI2L.opt ./configs/example/fs.py --disk-image=linux-x86.img --kernel=x86-vmlinux-2.6.22.9.smp --cpu-type=timing --ruby --num-cpus=16 --mesh-rows=4 --num-dirs=4 --mem-type=DDR4_2400_x64 --mem-channels=4 --mem-size=8GB --topology=MeshDirCorners Any help will be highly appreciated. Thanks.
AH
Andreas Hansson
Fri, Sep 18, 2015 2:46 PM

Hi Ashif,

I am not too familiar with the x86 system configs in gem5, but if I
remember correctly there is a 3 GB “hole” in the memory map where the
first 3 GB goes, and then the remainder goes in some upper address (above
32 bit). The consequence is that you get two distinct memory ranges, and
each range gets as many channels as you have specified. Thus, in your case
you have 8 channels(!).

The other part is the use of large simulated memories. By default gem5
calls mmap in such a way that the host machine has to guarantee swap
space. You can try and run without this by changing the System parameter
mmap_noreserve. I have successfully seen simulation runs with many Tbyte
of memory per socket using this technique. As long as you don’t touch all
the memory in the guest this should work.

Andreas

On 18/09/2015 01:14, "gem5-users on behalf of Ashif Sikder"
<gem5-users-bounces(a)gem5.org on behalf of ms047914(a)ohio.edu> wrote:

Hi all,

I'm new to Gem5. When I try to run Gem5 in Full System mode for x86
architecture with --mem-size=16GB, on the master terminal I get:

"warn: Physical memory size specified is 16GB which is greater than 3GB.
Twice the number of memory controllers would be created."

and simulation gets aborted after showing (on the master terminal):

"fatal: Could not mmap 13958643712 bytes for range [0x100000000 :
0x43fffffff]!".

In case of --mem-size=8GB, I get the same warning (on the master
terminal):
"warn: Physical memory size specified is 8GB which is greater than 3GB.
Twice the number of memory controllers would be created."

but it runs and after showing:

"Initializing CPU#0
Checking aperture...
No AGP bridge found
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000
software IO TLB at phys 0x20000000 - 0x24000000
Memory: 8183752k/9437184k available (4469k kernel code, 1048964k absent,
203544k reserved, 2815k data, 376k init)"

on the slave terminal simulation gets aborted.

I have looked into the discussion at
http://comments.gmane.org/gmane.comp.emulators.m5.users/17539  and the
source code at /configs/common/FSConfig.py but could not solve the
problem.

The command line used is:

./build/X86/gem5-MESI2L.opt ./configs/example/fs.py
--disk-image=linux-x86.img --kernel=x86-vmlinux-2.6.22.9.smp
--cpu-type=timing --ruby --num-cpus=16 --mesh-rows=4 --num-dirs=4
--mem-type=DDR4_2400_x64 --mem-channels=4 --mem-size=8GB
--topology=MeshDirCorners

Any help will be highly appreciated. Thanks.


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Hi Ashif, I am not too familiar with the x86 system configs in gem5, but if I remember correctly there is a 3 GB “hole” in the memory map where the first 3 GB goes, and then the remainder goes in some upper address (above 32 bit). The consequence is that you get two distinct memory ranges, and each range gets as many channels as you have specified. Thus, in your case you have 8 channels(!). The other part is the use of large simulated memories. By default gem5 calls mmap in such a way that the host machine has to guarantee swap space. You can try and run without this by changing the System parameter mmap_noreserve. I have successfully seen simulation runs with many Tbyte of memory per socket using this technique. As long as you don’t touch all the memory in the guest this should work. Andreas On 18/09/2015 01:14, "gem5-users on behalf of Ashif Sikder" <gem5-users-bounces(a)gem5.org on behalf of ms047914(a)ohio.edu> wrote: >Hi all, > >I'm new to Gem5. When I try to run Gem5 in Full System mode for x86 >architecture with --mem-size=16GB, on the master terminal I get: > >"warn: Physical memory size specified is 16GB which is greater than 3GB. >Twice the number of memory controllers would be created." > >and simulation gets aborted after showing (on the master terminal): > >"fatal: Could not mmap 13958643712 bytes for range [0x100000000 : >0x43fffffff]!". > >In case of --mem-size=8GB, I get the same warning (on the master >terminal): >"warn: Physical memory size specified is 8GB which is greater than 3GB. >Twice the number of memory controllers would be created." > >but it runs and after showing: > >"Initializing CPU#0 >Checking aperture... >No AGP bridge found >PCI-DMA: Using software bounce buffering for IO (SWIOTLB) >Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000 >software IO TLB at phys 0x20000000 - 0x24000000 >Memory: 8183752k/9437184k available (4469k kernel code, 1048964k absent, >203544k reserved, 2815k data, 376k init)" > >on the slave terminal simulation gets aborted. > >I have looked into the discussion at >http://comments.gmane.org/gmane.comp.emulators.m5.users/17539 and the >source code at /configs/common/FSConfig.py but could not solve the >problem. > >The command line used is: > >./build/X86/gem5-MESI2L.opt ./configs/example/fs.py >--disk-image=linux-x86.img --kernel=x86-vmlinux-2.6.22.9.smp >--cpu-type=timing --ruby --num-cpus=16 --mesh-rows=4 --num-dirs=4 >--mem-type=DDR4_2400_x64 --mem-channels=4 --mem-size=8GB >--topology=MeshDirCorners > >Any help will be highly appreciated. Thanks. > >_______________________________________________ >gem5-users mailing list >gem5-users(a)gem5.org >http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users ________________________________ -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
AS
Ashif Sikder
Wed, Sep 23, 2015 4:06 PM

Andreas Hansson <Andreas.Hansson <at> arm.com> writes:

Hi Ashif,

I am not too familiar with the x86 system configs in gem5, but if I
remember correctly there is a 3 GB “hole” in the memory map where the
first 3 GB goes, and then the remainder goes in some upper address (above
32 bit). The consequence is that you get two distinct memory ranges, and
each range gets as many channels as you have specified. Thus, in your case
you have 8 channels(!).

The other part is the use of large simulated memories. By default gem5
calls mmap in such a way that the host machine has to guarantee swap
space. You can try and run without this by changing the System parameter
mmap_noreserve. I have successfully seen simulation runs with many Tbyte
of memory per socket using this technique. As long as you don’t touch all
the memory in the guest this should work.

Andreas

On 18/09/2015 01:14, "gem5-users on behalf of Ashif Sikder"
<gem5-users-bounces <at> gem5.org on behalf of ms047914 <at> ohio.edu> wrote:

Hi all,

I'm new to Gem5. When I try to run Gem5 in Full System mode for x86
architecture with --mem-size=16GB, on the master terminal I get:

"warn: Physical memory size specified is 16GB which is greater than 3GB.
Twice the number of memory controllers would be created."

and simulation gets aborted after showing (on the master terminal):

"fatal: Could not mmap 13958643712 bytes for range [0x100000000 :
0x43fffffff]!".

In case of --mem-size=8GB, I get the same warning (on the master
terminal):
"warn: Physical memory size specified is 8GB which is greater than 3GB.
Twice the number of memory controllers would be created."

but it runs and after showing:

"Initializing CPU#0
Checking aperture...
No AGP bridge found
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000
software IO TLB at phys 0x20000000 - 0x24000000
Memory: 8183752k/9437184k available (4469k kernel code, 1048964k absent,
203544k reserved, 2815k data, 376k init)"

on the slave terminal simulation gets aborted.

I have looked into the discussion at
http://comments.gmane.org/gmane.comp.emulators.m5.users/17539  and the
source code at /configs/common/FSConfig.py but could not solve the
problem.

The command line used is:

./build/X86/gem5-MESI2L.opt ./configs/example/fs.py
--disk-image=linux-x86.img --kernel=x86-vmlinux-2.6.22.9.smp
--cpu-type=timing --ruby --num-cpus=16 --mesh-rows=4 --num-dirs=4
--mem-type=DDR4_2400_x64 --mem-channels=4 --mem-size=8GB
--topology=MeshDirCorners

Any help will be highly appreciated. Thanks.


gem5-users mailing list
gem5-users <at> gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


Hi Andreas,

Thanks for your reply.

I am having hard time to find the system parameter "mmap_noreserve". Can you
give some more information?

If I understand things correctly, the on-chip routers are connected using
IntLink, cache & directory controllers are connected to routers using
ExtLink. The directory controllers are connected with the memory controllers
and each memory controller is connected with a memory channel. Right?

If there are two distinct memory ranges each with same number of memory
channels, how are they connected with the memory controllers? (Memory
controllers are being doubled too!?).

https://www.mail-archive.com/gem5-dev(a)gem5.org/msg12225.html

According to the above thread, multiple memory controllers can be connected
with a directory controller. This might be a naive question,

can multiple directory controllers be connected with a memory controller and
can multiple routers be connected with a directory controller?

And in the command line I used

"-num-dirs=4 --mem-channels=4"

but when I looked into the  config.json  file, there were one  "mem_ctrls"
with  "channels": 1.  So, my last question will be,

when we define the number of directories and number of channels, how do they
get assigned?

I appreciate your help. Thanks.

Andreas Hansson <Andreas.Hansson <at> arm.com> writes: > > Hi Ashif, > > I am not too familiar with the x86 system configs in gem5, but if I > remember correctly there is a 3 GB “hole” in the memory map where the > first 3 GB goes, and then the remainder goes in some upper address (above > 32 bit). The consequence is that you get two distinct memory ranges, and > each range gets as many channels as you have specified. Thus, in your case > you have 8 channels(!). > > The other part is the use of large simulated memories. By default gem5 > calls mmap in such a way that the host machine has to guarantee swap > space. You can try and run without this by changing the System parameter > mmap_noreserve. I have successfully seen simulation runs with many Tbyte > of memory per socket using this technique. As long as you don’t touch all > the memory in the guest this should work. > > Andreas > > On 18/09/2015 01:14, "gem5-users on behalf of Ashif Sikder" > <gem5-users-bounces <at> gem5.org on behalf of ms047914 <at> ohio.edu> wrote: > > >Hi all, > > > >I'm new to Gem5. When I try to run Gem5 in Full System mode for x86 > >architecture with --mem-size=16GB, on the master terminal I get: > > > >"warn: Physical memory size specified is 16GB which is greater than 3GB. > >Twice the number of memory controllers would be created." > > > >and simulation gets aborted after showing (on the master terminal): > > > >"fatal: Could not mmap 13958643712 bytes for range [0x100000000 : > >0x43fffffff]!". > > > >In case of --mem-size=8GB, I get the same warning (on the master > >terminal): > >"warn: Physical memory size specified is 8GB which is greater than 3GB. > >Twice the number of memory controllers would be created." > > > >but it runs and after showing: > > > >"Initializing CPU#0 > >Checking aperture... > >No AGP bridge found > >PCI-DMA: Using software bounce buffering for IO (SWIOTLB) > >Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000 > >software IO TLB at phys 0x20000000 - 0x24000000 > >Memory: 8183752k/9437184k available (4469k kernel code, 1048964k absent, > >203544k reserved, 2815k data, 376k init)" > > > >on the slave terminal simulation gets aborted. > > > >I have looked into the discussion at > >http://comments.gmane.org/gmane.comp.emulators.m5.users/17539 and the > >source code at /configs/common/FSConfig.py but could not solve the > >problem. > > > >The command line used is: > > > >./build/X86/gem5-MESI2L.opt ./configs/example/fs.py > >--disk-image=linux-x86.img --kernel=x86-vmlinux-2.6.22.9.smp > >--cpu-type=timing --ruby --num-cpus=16 --mesh-rows=4 --num-dirs=4 > >--mem-type=DDR4_2400_x64 --mem-channels=4 --mem-size=8GB > >--topology=MeshDirCorners > > > >Any help will be highly appreciated. Thanks. > > > >_______________________________________________ > >gem5-users mailing list > >gem5-users <at> gem5.org > >http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > ________________________________ > Hi Andreas, Thanks for your reply. I am having hard time to find the system parameter "mmap_noreserve". Can you give some more information? If I understand things correctly, the on-chip routers are connected using IntLink, cache & directory controllers are connected to routers using ExtLink. The directory controllers are connected with the memory controllers and each memory controller is connected with a memory channel. Right? If there are two distinct memory ranges each with same number of memory channels, how are they connected with the memory controllers? (Memory controllers are being doubled too!?). https://www.mail-archive.com/gem5-dev(a)gem5.org/msg12225.html According to the above thread, multiple memory controllers can be connected with a directory controller. This might be a naive question, can multiple directory controllers be connected with a memory controller and can multiple routers be connected with a directory controller? And in the command line I used "-num-dirs=4 --mem-channels=4" but when I looked into the config.json file, there were one "mem_ctrls" with "channels": 1. So, my last question will be, when we define the number of directories and number of channels, how do they get assigned? I appreciate your help. Thanks.