41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 372d687bc85030b8e81384010e7d35279fa4b9d3 Mon Sep 17 00:00:00 2001
 | |
| From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 | |
| Date: Tue, 10 Jun 2025 13:36:55 +0100
 | |
| Subject: [PATCH] hw/hyperv/syndbg: skip automatic zero-init of large array
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| The 'handle_recv_msg' method has a 4k byte array used for copying
 | |
| data between the network socket and guest memory. Skip the automatic
 | |
| zero-init of this array to eliminate the performance overhead in the
 | |
| I/O hot path.
 | |
| 
 | |
| The 'data_buf' array will be fully initialized when data is read
 | |
| off the network socket.
 | |
| 
 | |
| Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
 | |
| Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| Message-id: 20250610123709.835102-18-berrange@redhat.com
 | |
| Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| ---
 | |
|  hw/hyperv/syndbg.c | 2 +-
 | |
|  1 file changed, 1 insertion(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/hw/hyperv/syndbg.c b/hw/hyperv/syndbg.c
 | |
| index 065e12fb1..fd1f05d97 100644
 | |
| --- a/hw/hyperv/syndbg.c
 | |
| +++ b/hw/hyperv/syndbg.c
 | |
| @@ -188,7 +188,7 @@ static uint16_t handle_recv_msg(HvSynDbg *syndbg, uint64_t outgpa,
 | |
|                                  uint64_t timeout, uint32_t *retrieved_count)
 | |
|  {
 | |
|      uint16_t ret;
 | |
| -    uint8_t data_buf[TARGET_PAGE_SIZE - UDP_PKT_HEADER_SIZE];
 | |
| +    QEMU_UNINITIALIZED uint8_t data_buf[MSG_BUFSZ];
 | |
|      hwaddr out_len;
 | |
|      void *out_data;
 | |
|      ssize_t recv_byte_count;
 | |
| -- 
 | |
| 2.47.3
 | |
| 
 |