PERFORCE change 106208 for review
Alexander Leidinger
netchild at FreeBSD.org
Sat Sep 16 07:38:25 PDT 2006
http://perforce.freebsd.org/chv.cgi?CH=106208
Change 106208 by netchild at netchild_magellan on 2006/09/16 14:37:28
- Some minor modifications in comments and debugging messages.
- Calling uma_zcreate() without the flag UMA_ZONE_NOFREE to fix a
memory leak.
Submitted by: mag at intron.ac
Affected files ...
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_aio.c#2 edit
Differences ...
==== //depot/projects/linuxolator/src/sys/compat/linux/linux_aio.c#2 (text+ko) ====
@@ -61,7 +61,7 @@
/* Print message in syscall function */
#define DPRINTF(fmt, ...) printf(LMSG("%s(): " fmt), \
__func__, __VA_ARGS__)
-/* Print message in non-syscall function */
+/* Print message in non-syscall function, the one more "P" means "private" */
#define DPPRINTF(fmt, ...) printf("linux(): %s(): " fmt "\n", \
__func__, __VA_ARGS__)
@@ -87,9 +87,9 @@
* +------------+ +------------+
* | request | | request |
* | | | |
+ * |.req_pbsd | |.req_pbsd |
* |.req_porig | |.req_porig |
* |.req_linux | |.req_linux |
- * |.req_pbsd | |.req_pbsd |
* | | | |
* +------------+ +------------+
* | |
@@ -178,7 +178,8 @@
* AIO_(UN)LOCK in /sys/kern/vfs_aio.c. Thus, the mutex much be unlocked
* before calling functions of FreeBSD native AIO module.
*
- * XXX The member "kaio_mtx" is the first element of "struct kaioinfo".
+ * XXX
+ * I ASSUME the member "kaio_mtx" is the first element of "struct kaioinfo".
*/
#define LINUX_AIO_LOCK(p) { \
if ((p)->p_aioinfo == NULL) \
@@ -199,7 +200,7 @@
/*
* XXX
* Calling external function/variable declared with "static" is DANGEROUS !!!
- * Compiler may use register to transfer function arguments for optimization,
+ * Compiler may use register to transfer calling arguments for optimization,
* which is NOT a normal calling way and can cause kernel crash.
*/
@@ -236,6 +237,7 @@
return nerr;
}
+/* Allocate memory in user space */
static int user_malloc(struct thread *td, void **pp, size_t s)
{
struct mmap_args mmaparg;
@@ -264,6 +266,7 @@
return nerr;
}
+/* Free memory in user space */
static int user_free(struct thread *td, void *p, size_t s)
{
struct munmap_args munmaparg;
@@ -331,7 +334,7 @@
#else /* ! LINUX_AIO_DEBUG */
#define DUMP_FREEBSD_AIOCB(p, isu)
-#define DUMP_TIMESPEC(f,t,a)
+#define DUMP_TIMESPEC(f, t, a)
#endif /* LINUX_AIO_DEBUG */
@@ -348,7 +351,7 @@
* I/O buffer
*/
pbsd->aio_nbytes = plnx->aio_nbytes; /* Number of bytes for I/O */
- switch (plnx->aio_lio_opcode) { /* LIO opcode */
+ switch (plnx->aio_lio_opcode) { /* LIO opcode */
case LINUX_IOCB_CMD_PREAD:
pbsd->aio_lio_opcode = LIO_READ;
break;
@@ -814,7 +817,7 @@
if (args->timeout != NULL) {
nanouptime(&t1); /* Time before aio_suspend() */
DUMP_TIMESPEC("T1: ", &t1,
- " (uptime before aio_suspend())");
+ " (uptime before calling aio_suspend())");
}
/* Prepare arguments for aio_suspend() */
@@ -831,7 +834,7 @@
if (args->timeout != NULL) {
copyout(&timeout, u_ptimeout, sizeof(timeout));
aiosusargs.timeout = u_ptimeout;
- DUMP_TIMESPEC("Time remaining: ", &timeout, "");
+ DUMP_TIMESPEC("Time remained: ", &timeout, "");
} else {
aiosusargs.timeout = NULL;
}
@@ -844,25 +847,25 @@
if (args->timeout != NULL) {
nanouptime(&t2); /* Time after aio_suspend() */
DUMP_TIMESPEC("T2: ", &t2,
- " (uptime after aio_suspend())");
+ " (uptime after calling aio_suspend())");
timespecsub(&t2, &t1); /*
* Time spent by
* aio_suspend()
*/
DUMP_TIMESPEC("T_delta: ", &t2,
- " (time spent by aio_suspend())");
+ " (time spent by calling aio_suspend())");
if (timespeccmp(&t2, &timeout, >=)) {
timespecclear(&timeout); /* Timed out */
} else {
timespecsub(&timeout, &t2);
/* Time remaining */
}
- DUMP_TIMESPEC("Time remaining: ", &timeout, "");
+ DUMP_TIMESPEC("Time remained: ", &timeout, "");
}
if (aio_err == EAGAIN) { /* Timed out */
DPRINTF("returning(context %p): "
- "timed out after aio_suspend()",
+ "timed out after calling aio_suspend()",
pctx);
break;
}
@@ -883,7 +886,7 @@
skip_substantial_0:
td->td_retval[0] = i;
/* user_free() resets td->td_retval[0] to 0 */
- DPRINTF("%d requests got out of context %p", i, pctx);
+ DPRINTF("%d requests are unhooked from the context %p", i, pctx);
} /* End of dealing with request queue */
LINUX_AIO_CTX_UNLOCK(pctx);
@@ -1170,11 +1173,11 @@
linux_aio_context_zone = uma_zcreate("LINUXAIOCTX",
sizeof(struct linux_aio_context),
NULL, NULL, NULL, NULL,
- UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ UMA_ALIGN_PTR, 0);
linux_aio_request_zone = uma_zcreate("LINUXAIOREQ",
sizeof(struct linux_aio_request),
NULL, NULL, NULL, NULL,
- UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ UMA_ALIGN_PTR, 0);
mtx_init(&linux_aio_context_list_mtx,
"linux_aio_context_list", NULL, MTX_DEF);
SLIST_INIT(&linux_aio_context_list);
More information about the p4-projects
mailing list