| Branch: | Revision:

root / cputlb.c @ feature-archipelago

History | View | Annotate | Download (10.6 kB)

# Date Author Comment
09daed84 02/11/2014 02:56 pm Edgar E. Iglesias

cpu: Add per-cpu address space

Reviewed-by: Peter Maydell <>
Signed-off-by: Edgar E. Iglesias <>

77717094 02/11/2014 02:56 pm Edgar E. Iglesias

exec: Make iotlb_to_region input an AS

Reviewed-by: Peter Maydell <>
Signed-off-by: Edgar E. Iglesias <>

52159192 01/13/2014 03:04 pm Juan Quintela

memory: cpu_physical_memory_mask_dirty_range() always clears a single flag

Document it

Signed-off-by: Juan Quintela <>
Reviewed-by: Eric Blake <>
Reviewed-by: Orit Wasserman <>

a2cd8c85 01/13/2014 03:04 pm Juan Quintela

memory: s/dirty/clean/ in cpu_physical_memory_is_dirty()

All uses except one really want the other meaning.

Signed-off-by: Juan Quintela <>
Reviewed-by: Eric Blake <>
Reviewed-by: Orit Wasserman <>

a2f4d5be 01/13/2014 03:04 pm Juan Quintela

memory: make cpu_physical_memory_reset_dirty() take a length parameter

We have an end parameter in all the callers, and this make it coherent
with the rest of cpu_physical_memory_* functions, that also take a
length parameter.

Once here, move the start/end calculation to...

220c3ebd 01/13/2014 03:04 pm Juan Quintela

memory: split cpu_physical_memory_* functions to its own include

All the functions that use ram_addr_t should be here.

Signed-off-by: Juan Quintela <>
Reviewed-by: Orit Wasserman <>

a1390db4 01/13/2014 03:04 pm Juan Quintela

memory: create function to set a single dirty bit

Signed-off-by: Juan Quintela <>
Reviewed-by: Orit Wasserman <>
Reviewed-by: Eric Blake <>

eb2535f4 12/23/2013 04:32 pm Richard Henderson

cputlb: Tidy memset() of arrays

Don't duplicate the array length computation in the memset()
when plain sizeof() can produce the correct results.

Signed-off-by: Richard Henderson <>
Reviewed-by: Aurelien Jarno <>
Signed-off-by: Andreas Färber <>

4fadb3bb 12/23/2013 04:31 pm Richard Henderson

cputlb: Use memset() when flushing entries

The size of tlb_table is 4k on a 64-bit host. For overwriting
memory at this size, cacheline tricks can help.

Signed-off-by: Richard Henderson <>
Reviewed-by: Aurelien Jarno <>...

81258640 10/07/2013 12:48 pm liguang

cputlb: Remove dead function tlb_update_dirty()

Signed-off-by: liguang <>
Reviewed-by: Paolo Bonzini <>
Signed-off-by: Andreas Färber <>

bdc44640 09/03/2013 01:25 pm Andreas Färber

cpu: Use QTAILQ for CPU list

Introduce CPU_FOREACH(), CPU_FOREACH_SAFE() and CPU_NEXT() shorthand

Signed-off-by: Andreas Färber <>

182735ef 07/09/2013 10:32 pm Andreas Färber

cpu: Make first_cpu and next_cpu CPUState

Move next_cpu from CPU_COMMON to CPUState.
Move first_cpu variable to qom/cpu.h.

gdbstub needs to use CPUState::env_ptr for now.
cpu_copy() no longer needs to save and restore cpu_next.

Acked-by: Paolo Bonzini <>...

1b5ec234 07/04/2013 06:42 pm Paolo Bonzini

memory: return MemoryRegion from qemu_ram_addr_from_host

It will be needed in the next patch.

Reviewed-by: Jan Kiszka <>
Signed-off-by: Paolo Bonzini <>

7443b437 07/04/2013 06:42 pm Paolo Bonzini

exec: move qemu_ram_addr_from_host_nofail to cputlb.c

After the next patch it would not be used elsewhere anyway. Also,
the _nofail and the standard versions of this function return different
things, which is confusing. Removing the function from the public headers...

c658b94f 06/28/2013 02:25 pm Andreas Färber

cpu: Turn cpu_unassigned_access() into a CPUState hook

Use it for all targets, but be careful not to pass invalid CPUState.
cpu_single_env can be NULL, e.g. on Xen.

Signed-off-by: Andreas Färber <>

90260c6c 06/20/2013 05:32 pm Jan Kiszka

exec: Resolve subpages in one step except for IOTLB fills

Except for the case of setting the IOTLB entry in TCG mode, we can avoid
the subpage dispatching handlers and do the resolution directly on
address_space_lookup_region. An IOTLB entry describes a full page, not...

54b949d2 06/14/2013 01:29 pm Hervé Poussineau

cputlb: fix debug logs

'pd' variable has been removed in 06ef3525e1f271b6a842781a05eace5cf63b95c2.

Signed-off-by: Hervé Poussineau <>
Signed-off-by: Michael Tokarev <>

149f54b5 05/29/2013 05:26 pm Paolo Bonzini

memory: add address_space_translate

Using phys_page_find to translate an AddressSpace to a MemoryRegionSection
is unwieldy. It requires to pass the page index rather than the address,
and later memory_region_section_addr has to be called. Replace
memory_region_section_addr with a function that does all of it: call...

8f3e03cb 05/29/2013 05:26 pm Paolo Bonzini

cputlb: simplify tlb_set_page

The same "if" condition is repeated twice.

Reviewed-by: Richard Henderson <>
Signed-off-by: Paolo Bonzini <>

d77953b9 02/16/2013 03:51 pm Andreas Färber

cpu: Move current_tb field to CPUState

Explictly NULL it on CPU reset since it was located before breakpoints.

Change vapic_report_tpr_access() argument to CPUState. This also
resolves the use of void* for cpu.h independence.
Change vAPIC patch_instruction() argument to X86CPU....

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

a8170e5e 10/23/2012 04:58 pm Avi Kivity

Rename target_phys_addr_t to hwaddr

target_phys_addr_t is unwieldly, violates the C standard (_t suffixes are
reserved) and its purpose doesn't match the name (most target_phys_addr_t
addresses are not target specific). Replace it with a finger-friendly,...

ac1970fb 10/22/2012 03:50 pm Avi Kivity

memory: per-AddressSpace dispatch

Currently we use a global radix tree to dispatch memory access. This only
works with a single address space; to support multiple address spaces we
make the radix tree a member of AddressSpace (via an intermediate structure...

7762c2c1 10/15/2012 12:43 pm Avi Kivity

memory: rename 'exec-obsolete.h'

exec-obsolete.h used to hold pre-memory-API functions that were used from
device code prior to the transition to the memory API. Now that the
transition is complete, the name no longer describes the file. The
functions still need to be merged better into the memory core, but there's...

89c33337 09/15/2012 08:51 pm Blue Swirl

Remove unused CONFIG_TCG_PASS_AREG0 and dead code

Now that CONFIG_TCG_PASS_AREG0 is enabled for all targets,
remove dead code and support for !CONFIG_TCG_PASS_AREG0 case.

Remove dyngen-exec.h and all references to it. Although included by
hw/spapr_hcall.c, it does not seem to use it....

116aae36 08/15/2012 05:18 pm Peter Maydell

cputlb.c: Fix out of date comment

The comment about the return address from get_page_addr_code() was
well out of date as phys_ram_base has not existed for some time.

Signed-off-by: Peter Maydell <>
Signed-off-by: Stefan Hajnoczi <>

56eb21e1 05/12/2012 12:14 pm Max Filippov

cputlb: fix watchpoints handling

Cleanup commit e554861766d9ae84dd5720baa4869f4ed711506f have changed
code_address calculation in the tlb_set_page function in case of access
to a page with a watchpoint. This caused QEMU segfault in the xtensa
test_break unit test. Fix it by moving code_address assignment above...

cc5bea60 05/01/2012 01:45 pm Blue Swirl

cputlb: prepare private memory API for public consumption

Fold is_ram_rom and is_ram_rom_romd() into callers.

Change is_romd() and section_addr() to take MemoryRegion
instead of MemoryRegionSection for consistency and
use memory_region_ prefix.

Reviewed-by: Richard Henderson <>...

0cac1b66 05/01/2012 01:45 pm Blue Swirl

cputlb: move TLB handling to a separate file

Move TLB handling and softmmu code load helpers to cputlb.c,
compile only for softmmu targets.

Signed-off-by: Blue Swirl <>