mem: Add snoop filter to SystemXBar by default
This patch changes the default behaviour of the SystemXBar, adding a snoop filter. With the recent updates to the snoop filter allocation behaviour this change no longer causes problems for the regressions without caches. Change-Id: Ibe0cd437b71b2ede9002384126553679acc69cc1 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com>
This commit is contained in:
parent
a23e914519
commit
080d4e08d6
3 changed files with 4 additions and 11 deletions
|
@ -162,11 +162,6 @@ def config_cache(options, system):
|
|||
else:
|
||||
system.cpu[i].connectAllPorts(system.membus)
|
||||
|
||||
# Add a snoop filter to the membus if there are caches above it
|
||||
if (options.l2cache or options.caches) and \
|
||||
(system.membus.snoop_filter == NULL):
|
||||
system.membus.snoop_filter = SnoopFilter()
|
||||
|
||||
return system
|
||||
|
||||
# ExternalSlave provides a "port", but when that port connects to a cache,
|
||||
|
|
|
@ -153,6 +153,9 @@ class SystemXBar(CoherentXBar):
|
|||
response_latency = 2
|
||||
snoop_response_latency = 4
|
||||
|
||||
# Use a snoop-filter by default
|
||||
snoop_filter = SnoopFilter(lookup_latency = 1)
|
||||
|
||||
# This specialisation of the coherent crossbar is to be considered
|
||||
# the point of coherency, as there are no (coherent) downstream
|
||||
# caches.
|
||||
|
|
|
@ -126,9 +126,6 @@ class BaseSystem(object):
|
|||
cpu.createInterruptController()
|
||||
cpu.connectAllPorts(sha_bus if sha_bus != None else system.membus,
|
||||
system.membus)
|
||||
# System has caches before the membus -> add snoop filter
|
||||
if sha_bus and system.membus.snoop_filter == NULL:
|
||||
system.membus.snoop_filter = SnoopFilter()
|
||||
|
||||
def init_kvm(self, system):
|
||||
"""Do KVM-specific system initialization.
|
||||
|
@ -152,9 +149,7 @@ class BaseSystem(object):
|
|||
self.init_kvm(system)
|
||||
|
||||
sha_bus = self.create_caches_shared(system)
|
||||
# System has caches before the membus -> add snoop filter
|
||||
if sha_bus and system.membus.snoop_filter == NULL:
|
||||
system.membus.snoop_filter = SnoopFilter()
|
||||
|
||||
for cpu in system.cpu:
|
||||
self.init_cpu(system, cpu, sha_bus)
|
||||
|
||||
|
|
Loading…
Reference in a new issue