Module Name: src
Committed By: pooka
Date: Sat Apr 27 15:34:54 UTC 2013
Modified Files:
src/lib/librumpuser: rumpuser.c
src/sys/rump/include/rump: rumpuser.h
src/sys/rump/librump/rumpkern: Makefile.rumpkern memalloc.c vm.c
Log Message:
* treat kern_malloc.c as an unreal allocator (it's so lightweight)
* get rid of the rumpuser_realloc() hypercall
* pass size to rumpuser_free()
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/lib/librumpuser/rumpuser.c
cvs rdiff -u -r1.80 -r1.81 src/sys/rump/include/rump/rumpuser.h
cvs rdiff -u -r1.124 -r1.125 src/sys/rump/librump/rumpkern/Makefile.rumpkern
cvs rdiff -u -r1.20 -r1.21 src/sys/rump/librump/rumpkern/memalloc.c
cvs rdiff -u -r1.137 -r1.138 src/sys/rump/librump/rumpkern/vm.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/librumpuser/rumpuser.c
diff -u src/lib/librumpuser/rumpuser.c:1.31 src/lib/librumpuser/rumpuser.c:1.32
--- src/lib/librumpuser/rumpuser.c:1.31 Sat Apr 27 15:01:21 2013
+++ src/lib/librumpuser/rumpuser.c Sat Apr 27 15:34:53 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: rumpuser.c,v 1.31 2013/04/27 15:01:21 pooka Exp $ */
+/* $NetBSD: rumpuser.c,v 1.32 2013/04/27 15:34:53 pooka Exp $ */
/*
* Copyright (c) 2007-2010 Antti Kantee. All Rights Reserved.
@@ -28,7 +28,7 @@
#include "rumpuser_port.h"
#if !defined(lint)
-__RCSID("$NetBSD: rumpuser.c,v 1.31 2013/04/27 15:01:21 pooka Exp $");
+__RCSID("$NetBSD: rumpuser.c,v 1.32 2013/04/27 15:34:53 pooka Exp $");
#endif /* !lint */
#include <sys/ioctl.h>
@@ -261,15 +261,9 @@ rumpuser_malloc(size_t howmuch, int alig
return mem;
}
-void *
-rumpuser_realloc(void *ptr, size_t howmuch)
-{
-
- return realloc(ptr, howmuch);
-}
-
+/*ARGSUSED1*/
void
-rumpuser_free(void *ptr)
+rumpuser_free(void *ptr, size_t size)
{
free(ptr);
Index: src/sys/rump/include/rump/rumpuser.h
diff -u src/sys/rump/include/rump/rumpuser.h:1.80 src/sys/rump/include/rump/rumpuser.h:1.81
--- src/sys/rump/include/rump/rumpuser.h:1.80 Sat Apr 27 15:32:36 2013
+++ src/sys/rump/include/rump/rumpuser.h Sat Apr 27 15:34:53 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: rumpuser.h,v 1.80 2013/04/27 15:32:36 pooka Exp $ */
+/* $NetBSD: rumpuser.h,v 1.81 2013/04/27 15:34:53 pooka Exp $ */
/*
* Copyright (c) 2007-2011 Antti Kantee. All Rights Reserved.
@@ -55,8 +55,7 @@ int rumpuser_getfileinfo(const char *, u
int rumpuser_nanosleep(uint64_t *, uint64_t *, int *);
void *rumpuser_malloc(size_t, int);
-void *rumpuser_realloc(void *, size_t);
-void rumpuser_free(void *);
+void rumpuser_free(void *, size_t);
void *rumpuser_anonmmap(void *, size_t, int, int, int *);
#define RUMPUSER_FILEMMAP_READ 0x01
Index: src/sys/rump/librump/rumpkern/Makefile.rumpkern
diff -u src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.124 src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.125
--- src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.124 Fri Mar 15 12:09:58 2013
+++ src/sys/rump/librump/rumpkern/Makefile.rumpkern Sat Apr 27 15:34:53 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.rumpkern,v 1.124 2013/03/15 12:09:58 pooka Exp $
+# $NetBSD: Makefile.rumpkern,v 1.125 2013/04/27 15:34:53 pooka Exp $
#
.include "${RUMPTOP}/Makefile.rump"
@@ -66,6 +66,7 @@ SRCS+= init_sysctl_base.c \
kern_event.c \
kern_hook.c \
kern_ksyms.c \
+ kern_malloc.c \
kern_module.c \
kern_mutex_obj.c \
kern_ntptime.c \
@@ -139,7 +140,7 @@ SRCS+= kern_select_50.c
.if defined(RUMP_UNREAL_ALLOCATORS) && ${RUMP_UNREAL_ALLOCATORS} == "yes"
SRCS+= memalloc.c
.else
-SRCS+= kern_malloc.c subr_kmem.c subr_pool.c
+SRCS+= subr_kmem.c subr_pool.c
.endif
.ifdef RUMP_LOCKDEBUG
Index: src/sys/rump/librump/rumpkern/memalloc.c
diff -u src/sys/rump/librump/rumpkern/memalloc.c:1.20 src/sys/rump/librump/rumpkern/memalloc.c:1.21
--- src/sys/rump/librump/rumpkern/memalloc.c:1.20 Sun Mar 10 17:05:12 2013
+++ src/sys/rump/librump/rumpkern/memalloc.c Sat Apr 27 15:34:53 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: memalloc.c,v 1.20 2013/03/10 17:05:12 pooka Exp $ */
+/* $NetBSD: memalloc.c,v 1.21 2013/04/27 15:34:53 pooka Exp $ */
/*
* Copyright (c) 2009 Antti Kantee. All Rights Reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: memalloc.c,v 1.20 2013/03/10 17:05:12 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: memalloc.c,v 1.21 2013/04/27 15:34:53 pooka Exp $");
#include <sys/param.h>
#include <sys/kmem.h>
@@ -44,54 +44,12 @@ __KERNEL_RCSID(0, "$NetBSD: memalloc.c,v
* libc malloc.
*
* Supported:
- * + malloc
* + kmem
* + pool
* + pool_cache
*/
/*
- * malloc
- */
-
-void
-kmeminit(void)
-{
-
- return;
-}
-
-void *
-kern_malloc(unsigned long size, int flags)
-{
- void *rv;
-
- rv = rumpuser_malloc(size, 0);
-
- if (__predict_false(rv == NULL && (flags & (M_CANFAIL|M_NOWAIT)) == 0))
- panic("malloc %lu bytes failed", size);
-
- if (rv && flags & M_ZERO)
- memset(rv, 0, size);
-
- return rv;
-}
-
-void *
-kern_realloc(void *ptr, unsigned long size, int flags)
-{
-
- return rumpuser_realloc(ptr, size);
-}
-
-void
-kern_free(void *ptr)
-{
-
- rumpuser_free(ptr);
-}
-
-/*
* Kmem
*/
@@ -125,7 +83,7 @@ void
kmem_free(void *p, size_t size)
{
- rumpuser_free(p);
+ rumpuser_free(p, size);
}
__strong_alias(kmem_intr_alloc, kmem_alloc);
@@ -198,7 +156,7 @@ pool_cache_destroy(pool_cache_t pc)
{
pool_destroy(&pc->pc_pool);
- rumpuser_free(pc);
+ rumpuser_free(pc, sizeof(*pc));
}
void *
@@ -255,7 +213,7 @@ void
pool_put(struct pool *pp, void *item)
{
- rumpuser_free(item);
+ rumpuser_free(item, pp->pr_size);
}
void
Index: src/sys/rump/librump/rumpkern/vm.c
diff -u src/sys/rump/librump/rumpkern/vm.c:1.137 src/sys/rump/librump/rumpkern/vm.c:1.138
--- src/sys/rump/librump/rumpkern/vm.c:1.137 Sun Mar 10 17:05:12 2013
+++ src/sys/rump/librump/rumpkern/vm.c Sat Apr 27 15:34:53 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vm.c,v 1.137 2013/03/10 17:05:12 pooka Exp $ */
+/* $NetBSD: vm.c,v 1.138 2013/04/27 15:34:53 pooka Exp $ */
/*
* Copyright (c) 2007-2011 Antti Kantee. All Rights Reserved.
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm.c,v 1.137 2013/03/10 17:05:12 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm.c,v 1.138 2013/04/27 15:34:53 pooka Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -742,7 +742,7 @@ uvm_km_free(struct vm_map *map, vaddr_t
if (__predict_false(map == module_map))
rumpuser_unmap((void *)vaddr, size);
else
- rumpuser_free((void *)vaddr);
+ rumpuser_free((void *)vaddr, size);
}
struct vm_map *
@@ -1189,5 +1189,5 @@ rump_hyperfree(void *what, size_t size)
if (rump_physmemlimit != RUMPMEM_UNLIMITED) {
atomic_add_long(&curphysmem, -size);
}
- rumpuser_free(what);
+ rumpuser_free(what, size);
}