From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aO6y2-00015R-PB for qemu-devel@nongnu.org; Tue, 26 Jan 2016 11:59:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aO6xz-00008b-Jl for qemu-devel@nongnu.org; Tue, 26 Jan 2016 11:59:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45051) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aO6xz-00008Q-EV for qemu-devel@nongnu.org; Tue, 26 Jan 2016 11:59:43 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 05E1A263C for ; Tue, 26 Jan 2016 16:59:43 +0000 (UTC) From: Paolo Bonzini Date: Tue, 26 Jan 2016 17:59:40 +0100 Message-Id: <1453827580-29159-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH] memory: add early bail out from cpu_physical_memory_set_dirty_range List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: stefanha@redhat.com This condition is true in the common case, so we can cut out the body of the function. In addition, this makes it easier for the compiler to do at least partial inlining, even if it decides that fully inlining the function is unreasonable. Signed-off-by: Paolo Bonzini --- include/exec/ram_addr.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index ef1489d..6e31fb5 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -161,6 +161,10 @@ static inline void cpu_physical_memory_set_dirty_range(ram_addr_t start, unsigned long end, page; unsigned long **d = ram_list.dirty_memory; + if (!mask && !xen_enabled()) { + return; + } + end = TARGET_PAGE_ALIGN(start + length) >> TARGET_PAGE_BITS; page = start >> TARGET_PAGE_BITS; if (likely(mask & (1 << DIRTY_MEMORY_MIGRATION))) { -- 2.5.0