Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F116009971
D35493.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D35493.diff
View Options
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c
--- a/sys/kern/vfs_aio.c
+++ b/sys/kern/vfs_aio.c
@@ -104,7 +104,7 @@
SYSCTL_DECL(_p1003_1b);
static MALLOC_DEFINE(M_LIO, "lio", "listio aio control block list");
-static MALLOC_DEFINE(M_AIOS, "aios", "aio_suspend aio control block list");
+static MALLOC_DEFINE(M_AIO, "aio", "structures for asynchronous I/O");
static SYSCTL_NODE(_vfs, OID_AUTO, aio, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
"Async IO management");
@@ -339,11 +339,10 @@
/*
* Zones for:
* kaio Per process async io info
- * aiop async io process data
* aiocb async io jobs
* aiolio list io jobs
*/
-static uma_zone_t kaio_zone, aiop_zone, aiocb_zone, aiolio_zone;
+static uma_zone_t kaio_zone, aiocb_zone, aiolio_zone;
/* kqueue filters for aio */
static struct filterops aio_filtops = {
@@ -412,13 +411,11 @@
TAILQ_INIT(&aio_jobs);
aiod_unr = new_unrhdr(1, INT_MAX, NULL);
kaio_zone = uma_zcreate("AIO", sizeof(struct kaioinfo), NULL, NULL,
- NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
- aiop_zone = uma_zcreate("AIOP", sizeof(struct aioproc), NULL,
- NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, UMA_ALIGN_PTR, 0);
aiocb_zone = uma_zcreate("AIOCB", sizeof(struct kaiocb), NULL, NULL,
- NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, UMA_ALIGN_PTR, 0);
aiolio_zone = uma_zcreate("AIOLIO", sizeof(struct aioliojob), NULL,
- NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
aiod_lifetime = AIOD_LIFETIME_DEFAULT;
jobrefid = 1;
p31b_setcfg(CTL_P1003_1B_ASYNCHRONOUS_IO, _POSIX_ASYNCHRONOUS_IO);
@@ -1091,7 +1088,7 @@
* Allocate and ready the aio control info. There is one aiop structure
* per daemon.
*/
- aiop = uma_zalloc(aiop_zone, M_WAITOK);
+ aiop = malloc(sizeof(*aiop), M_AIO, M_WAITOK);
aiop->aioproc = p;
aiop->aioprocflags = 0;
@@ -1157,7 +1154,7 @@
TAILQ_REMOVE(&aio_freeproc, aiop, list);
num_aio_procs--;
mtx_unlock(&aio_job_mtx);
- uma_zfree(aiop_zone, aiop);
+ free(aiop, M_AIO);
free_unr(aiod_unr, id);
vmspace_free(myvm);
@@ -2034,11 +2031,11 @@
} else
tsp = NULL;
- ujoblist = malloc(uap->nent * sizeof(ujoblist[0]), M_AIOS, M_WAITOK);
+ ujoblist = malloc(uap->nent * sizeof(ujoblist[0]), M_AIO, M_WAITOK);
error = copyin(uap->aiocbp, ujoblist, uap->nent * sizeof(ujoblist[0]));
if (error == 0)
error = kern_aio_suspend(td, uap->nent, ujoblist, tsp);
- free(ujoblist, M_AIOS);
+ free(ujoblist, M_AIO);
return (error);
}
@@ -2957,7 +2954,7 @@
} else
tsp = NULL;
- ujoblist = malloc(uap->nent * sizeof(ujoblist[0]), M_AIOS, M_WAITOK);
+ ujoblist = malloc(uap->nent * sizeof(ujoblist[0]), M_AIO, M_WAITOK);
ujoblist32 = (uint32_t *)ujoblist;
error = copyin(uap->aiocbp, ujoblist32, uap->nent *
sizeof(ujoblist32[0]));
@@ -2967,7 +2964,7 @@
error = kern_aio_suspend(td, uap->nent, ujoblist, tsp);
}
- free(ujoblist, M_AIOS);
+ free(ujoblist, M_AIO);
return (error);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, May 2, 1:29 PM (15 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17906199
Default Alt Text
D35493.diff (2 KB)
Attached To
Mode
D35493: aio: Improve UMA usage
Attached
Detach File
Event Timeline
Log In to Comment