Module Name: src
Committed By: rmind
Date: Sat Aug 29 00:06:43 UTC 2009
Modified Files:
src/sys/kern: sys_pipe.c
src/sys/uvm: uvm_emap.c
Log Message:
- Re-enable direct I/O with emap for pipe.
- While not used, #ifdef KVA allocation in emap (so it wont burn the space).
To generate a diff of this commit:
cvs rdiff -u -r1.117 -r1.118 src/sys/kern/sys_pipe.c
cvs rdiff -u -r1.4 -r1.5 src/sys/uvm/uvm_emap.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/sys_pipe.c
diff -u src/sys/kern/sys_pipe.c:1.117 src/sys/kern/sys_pipe.c:1.118
--- src/sys/kern/sys_pipe.c:1.117 Wed Jul 15 21:09:41 2009
+++ src/sys/kern/sys_pipe.c Sat Aug 29 00:06:43 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_pipe.c,v 1.117 2009/07/15 21:09:41 rmind Exp $ */
+/* $NetBSD: sys_pipe.c,v 1.118 2009/08/29 00:06:43 rmind Exp $ */
/*-
* Copyright (c) 2003, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_pipe.c,v 1.117 2009/07/15 21:09:41 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_pipe.c,v 1.118 2009/08/29 00:06:43 rmind Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -99,9 +99,6 @@
* #define PIPE_NODIRECT
*/
-/* XXX Disabled for now; rare hangs switching between direct/buffered */
-#define PIPE_NODIRECT
-
static int pipe_read(file_t *, off_t *, struct uio *, kauth_cred_t, int);
static int pipe_write(file_t *, off_t *, struct uio *, kauth_cred_t, int);
static int pipe_close(file_t *);
Index: src/sys/uvm/uvm_emap.c
diff -u src/sys/uvm/uvm_emap.c:1.4 src/sys/uvm/uvm_emap.c:1.5
--- src/sys/uvm/uvm_emap.c:1.4 Mon Jul 20 03:51:42 2009
+++ src/sys/uvm/uvm_emap.c Sat Aug 29 00:06:43 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_emap.c,v 1.4 2009/07/20 03:51:42 kiyohara Exp $ */
+/* $NetBSD: uvm_emap.c,v 1.5 2009/08/29 00:06:43 rmind Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_emap.c,v 1.4 2009/07/20 03:51:42 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_emap.c,v 1.5 2009/08/29 00:06:43 rmind Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -87,7 +87,7 @@
uvm_emap_size = roundup(uvm_emap_size, PAGE_SIZE);
qmax = 16 * PAGE_SIZE;
-
+#if 0
uvm_emap_va = uvm_km_alloc(kernel_map, uvm_emap_size, 0,
UVM_KMF_VAONLY | UVM_KMF_WAITVA);
if (uvm_emap_va == 0) {
@@ -99,7 +99,10 @@
if (uvm_emap_vmem == NULL) {
panic("uvm_emap_init: vmem creation failed");
}
-
+#else
+ uvm_emap_va = 0;
+ uvm_emap_vmem = NULL;
+#endif
/* Initial generation value is 1. */
uvm_emap_gen = 1;
for (i = 0; i < MAXCPUS; i++) {