Просмотр исходного кода

[downloader] Profile receive datapath

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 10 лет назад
Родитель
Сommit
4e78733094
1 измененных файлов: 15 добавлений и 0 удалений
  1. 15
    0
      src/core/downloader.c

+ 15
- 0
src/core/downloader.c Просмотреть файл

@@ -29,6 +29,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
29 29
 #include <ipxe/uaccess.h>
30 30
 #include <ipxe/umalloc.h>
31 31
 #include <ipxe/image.h>
32
+#include <ipxe/profile.h>
32 33
 #include <ipxe/downloader.h>
33 34
 
34 35
 /** @file
@@ -37,6 +38,14 @@ FILE_LICENCE ( GPL2_OR_LATER );
37 38
  *
38 39
  */
39 40
 
41
+/** Receive profiler */
42
+static struct profiler downloader_rx_profiler __profiler =
43
+	{ .name = "downloader.rx" };
44
+
45
+/** Data copy profiler */
46
+static struct profiler downloader_copy_profiler __profiler =
47
+	{ .name = "downloader.copy" };
48
+
40 49
 /** A downloader */
41 50
 struct downloader {
42 51
 	/** Reference count for this object */
@@ -166,6 +175,9 @@ static int downloader_xfer_deliver ( struct downloader *downloader,
166 175
 	size_t max;
167 176
 	int rc;
168 177
 
178
+	/* Start profiling */
179
+	profile_start ( &downloader_rx_profiler );
180
+
169 181
 	/* Calculate new buffer position */
170 182
 	if ( meta->flags & XFER_FL_ABS_OFFSET )
171 183
 		downloader->pos = 0;
@@ -178,8 +190,10 @@ static int downloader_xfer_deliver ( struct downloader *downloader,
178 190
 		goto done;
179 191
 
180 192
 	/* Copy data to buffer */
193
+	profile_start ( &downloader_copy_profiler );
181 194
 	copy_to_user ( downloader->image->data, downloader->pos,
182 195
 		       iobuf->data, len );
196
+	profile_stop ( &downloader_copy_profiler );
183 197
 
184 198
 	/* Update current buffer position */
185 199
 	downloader->pos += len;
@@ -188,6 +202,7 @@ static int downloader_xfer_deliver ( struct downloader *downloader,
188 202
 	free_iob ( iobuf );
189 203
 	if ( rc != 0 )
190 204
 		downloader_finished ( downloader, rc );
205
+	profile_stop ( &downloader_rx_profiler );
191 206
 	return rc;
192 207
 }
193 208
 

Загрузка…
Отмена
Сохранить