* [Qemu-devel] [PATCH] exec: Remove unnecessary RAM_FILE flag
@ 2015-11-06 22:11 Eduardo Habkost
2015-11-09 9:46 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Eduardo Habkost @ 2015-11-06 22:11 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel, Michael S. Tsirkin
The only code that sets RAMBlock.fd is file_ram_alloc(), and the only
code that calls file_ram_alloc() sets the RAM_FILE flag. That means the
flag is always set when RAMBlock.fd >= 0, and the munmap() call at
reclaim_ramblock() is dead code that never runs.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
exec.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/exec.c b/exec.c
index a028961..9eb8b4b 100644
--- a/exec.c
+++ b/exec.c
@@ -88,9 +88,6 @@ static MemoryRegion io_mem_unassigned;
*/
#define RAM_RESIZEABLE (1 << 2)
-/* RAM is backed by an mmapped file.
- */
-#define RAM_FILE (1 << 3)
#endif
struct CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus);
@@ -1597,7 +1594,6 @@ ram_addr_t qemu_ram_alloc_from_file(ram_addr_t size, MemoryRegion *mr,
new_block->used_length = size;
new_block->max_length = size;
new_block->flags = share ? RAM_SHARED : 0;
- new_block->flags |= RAM_FILE;
new_block->host = file_ram_alloc(new_block, size,
mem_path, errp);
if (!new_block->host) {
@@ -1699,11 +1695,7 @@ static void reclaim_ramblock(RAMBlock *block)
xen_invalidate_map_cache_entry(block->host);
#ifndef _WIN32
} else if (block->fd >= 0) {
- if (block->flags & RAM_FILE) {
- qemu_ram_munmap(block->host, block->max_length);
- } else {
- munmap(block->host, block->max_length);
- }
+ qemu_ram_munmap(block->host, block->max_length);
close(block->fd);
#endif
} else {
--
2.1.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] exec: Remove unnecessary RAM_FILE flag
2015-11-06 22:11 [Qemu-devel] [PATCH] exec: Remove unnecessary RAM_FILE flag Eduardo Habkost
@ 2015-11-09 9:46 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2015-11-09 9:46 UTC (permalink / raw)
To: Eduardo Habkost; +Cc: qemu-devel, Michael S. Tsirkin
On 06/11/2015 23:11, Eduardo Habkost wrote:
> The only code that sets RAMBlock.fd is file_ram_alloc(), and the only
> code that calls file_ram_alloc() sets the RAM_FILE flag. That means the
> flag is always set when RAMBlock.fd >= 0, and the munmap() call at
> reclaim_ramblock() is dead code that never runs.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> exec.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index a028961..9eb8b4b 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -88,9 +88,6 @@ static MemoryRegion io_mem_unassigned;
> */
> #define RAM_RESIZEABLE (1 << 2)
>
> -/* RAM is backed by an mmapped file.
> - */
> -#define RAM_FILE (1 << 3)
> #endif
>
> struct CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus);
> @@ -1597,7 +1594,6 @@ ram_addr_t qemu_ram_alloc_from_file(ram_addr_t size, MemoryRegion *mr,
> new_block->used_length = size;
> new_block->max_length = size;
> new_block->flags = share ? RAM_SHARED : 0;
> - new_block->flags |= RAM_FILE;
> new_block->host = file_ram_alloc(new_block, size,
> mem_path, errp);
> if (!new_block->host) {
> @@ -1699,11 +1695,7 @@ static void reclaim_ramblock(RAMBlock *block)
> xen_invalidate_map_cache_entry(block->host);
> #ifndef _WIN32
> } else if (block->fd >= 0) {
> - if (block->flags & RAM_FILE) {
> - qemu_ram_munmap(block->host, block->max_length);
> - } else {
> - munmap(block->host, block->max_length);
> - }
> + qemu_ram_munmap(block->host, block->max_length);
> close(block->fd);
> #endif
> } else {
>
Queued for 2.6, thanks.
Paolo
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-11-09 9:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-06 22:11 [Qemu-devel] [PATCH] exec: Remove unnecessary RAM_FILE flag Eduardo Habkost
2015-11-09 9:46 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).