Flexible I/O Tester development
 help / color / mirror / Atom feed
* fio netbsd support
@ 2010-05-12  8:29 YAMAMOTO Takashi
  2010-05-12 13:06 ` Jens Axboe
  0 siblings, 1 reply; 6+ messages in thread
From: YAMAMOTO Takashi @ 2010-05-12  8:29 UTC (permalink / raw)
  To: jens.axboe; +Cc: fio

[-- Attachment #1: Type: Text/Plain, Size: 139 bytes --]

hi,

the attached patch is for preliminary support for netbsd.

YAMAMOTO Takashi

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>

[-- Attachment #2: a.diff --]
[-- Type: Text/Plain, Size: 5215 bytes --]

diff --git a/Makefile.NetBSD b/Makefile.NetBSD
new file mode 100644
index 0000000..2fb089e
--- /dev/null
+++ b/Makefile.NetBSD
@@ -0,0 +1,75 @@
+CC	= gcc
+DEBUGFLAGS = -D_FORTIFY_SOURCE=2 -DFIO_INC_DEBUG
+OPTFLAGS= -O2 -g $(EXTFLAGS)
+CFLAGS	= -Wwrite-strings -Wall -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(DEBUGFLAGS) -rdynamic
+PROGS	= fio
+SCRIPTS = fio_generate_plots
+OBJS = gettime.o fio.o ioengines.o init.o stat.o log.o time.o filesetup.o \
+	eta.o verify.o memory.o io_u.o parse.o mutex.o options.o \
+	rbtree.o smalloc.o filehash.o helpers.o profile.o debug.o
+
+OBJS += crc/crc7.o
+OBJS += crc/crc16.o
+OBJS += crc/crc32.o
+OBJS += crc/crc32c.o
+OBJS += crc/crc32c-intel.o
+OBJS += crc/crc64.o
+OBJS += crc/sha1.o
+OBJS += crc/sha256.o
+OBJS += crc/sha512.o
+OBJS += crc/md5.o
+
+OBJS += engines/cpu.o
+OBJS += engines/mmap.o
+OBJS += engines/posixaio.o
+OBJS += engines/sync.o
+OBJS += engines/null.o
+OBJS += engines/net.o
+
+SOURCE = eta.c filehash.c filesetup.c fio.c gettime.c init.c ioengines.c \
+	 io_u.c log.c memory.c mutex.c options.c parse.c rbtree.c smalloc.c \
+	 stat.c parse.c crc/*.c engines/cpu.c engines/mmap.c \
+	 engines/posixaio.c engines/sync.c engines/null.c engines/net.c \
+	 *.h arch/*.h compiler/*.h crc/*.h lib/*.h \
+	 os/indirect.h os/kcompat.h os/os-freebsd.h os/os.h os/syslet.h
+
+ifneq ($(findstring $(MAKEFLAGS),s),s)
+ifndef V
+	QUIET_CC	= @echo '   ' CC $@;
+	QUIET_DEP	= @echo '   ' DEP $@;
+endif
+endif
+
+INSTALL = install
+prefix = /usr/local
+bindir = $(prefix)/bin
+mandir = $(prefix)/man
+
+%.o: %.c
+	$(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $<
+fio: $(OBJS)
+	$(QUIET_CC)$(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(EXTLIBS) -lpthread -lm -lrt
+
+depend:
+	$(QUIET_DEP)$(CC) -MM $(ALL_CFLAGS) $(SOURCE) 1> .depend
+
+$(PROGS): depend
+
+all: depend $(PROGS) $(SCRIPTS)
+
+clean:
+	-rm -f .depend cscope.out $(OBJS) $(PROGS) core.* core
+
+cscope:
+	@cscope -b
+
+install: $(PROGS) $(SCRIPTS)
+	$(INSTALL) -m755 -d $(DESTDIR)$(bindir)
+	$(INSTALL) $(PROGS) $(SCRIPTS) $(DESTDIR)$(bindir)
+	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
+	$(INSTALL) -m 644 fio.1 $(DESTDIR)$(mandir)/man1
+	$(INSTALL) -m 644 fio_generate_plots.1 $(DESTDIR)$(mandir)/man1
+
+ifneq ($(wildcard .depend),)
+include .depend
+endif
diff --git a/mutex.c b/mutex.c
index e148430..abe073f 100644
--- a/mutex.c
+++ b/mutex.c
@@ -65,14 +65,18 @@ struct fio_mutex *fio_mutex_init(int value)
 		log_err("pthread_mutexattr_init: %s\n", strerror(ret));
 		goto err;
 	}
+#ifdef FIO_HAVE_PSHARED_MUTEX
 	ret = pthread_mutexattr_setpshared(&attr, mflag);
 	if (ret) {
 		log_err("pthread_mutexattr_setpshared: %s\n", strerror(ret));
 		goto err;
 	}
+#endif
 
 	pthread_condattr_init(&cond);
+#ifdef FIO_HAVE_PSHARED_MUTEX
 	pthread_condattr_setpshared(&cond, mflag);
+#endif
 	pthread_cond_init(&mutex->cond, &cond);
 
 	ret = pthread_mutex_init(&mutex->lock, &attr);
diff --git a/os/os-freebsd.h b/os/os-freebsd.h
index 8d965aa..d1313e8 100644
--- a/os/os-freebsd.h
+++ b/os/os-freebsd.h
@@ -11,8 +11,6 @@
 
 #define OS_MAP_ANON		MAP_ANON
 
-typedef unsigned long os_cpu_mask_t;
-
 static inline int blockdev_invalidate_cache(int fd)
 {
 	return EINVAL;
diff --git a/os/os-mac.h b/os/os-mac.h
index be25458..1b786f8 100644
--- a/os/os-mac.h
+++ b/os/os-mac.h
@@ -18,7 +18,6 @@
 
 #define OS_MAP_ANON		MAP_ANON
 
-typedef unsigned long os_cpu_mask_t;
 typedef unsigned int clockid_t;
 typedef off_t off64_t;
 
diff --git a/os/os-netbsd.h b/os/os-netbsd.h
new file mode 100644
index 0000000..70d2958
--- /dev/null
+++ b/os/os-netbsd.h
@@ -0,0 +1,50 @@
+#ifndef FIO_OS_NETBSD_H
+#define FIO_OS_NETBSD_H
+
+#include <errno.h>
+#include <sys/param.h>
+/* XXX hack to avoid confilcts between rbtree.h and <sys/rb.h> */
+#define	rb_node	_rb_node
+#include <sys/sysctl.h>
+#undef rb_node
+#undef rb_left
+#undef rb_right
+
+#define FIO_HAVE_POSIXAIO
+#define FIO_HAVE_FADVISE
+#define	fadvise	posix_fadvise	/* XXX NetBSD doesn't have fadvise */
+#define FIO_HAVE_ODIRECT
+#define FIO_HAVE_STRSEP
+#define FIO_HAVE_FDATASYNC
+#define FIO_USE_GENERIC_BDEV_SIZE
+#define FIO_USE_GENERIC_RAND
+
+#undef	FIO_HAVE_CPU_AFFINITY	/* XXX notyet */
+
+#define OS_MAP_ANON		MAP_ANON
+
+typedef off_t off64_t;
+
+static inline int blockdev_invalidate_cache(int fd)
+{
+	return EINVAL;
+}
+
+static inline unsigned long long os_phys_mem(void)
+{
+	int mib[2] = { CTL_HW, HW_PHYSMEM64 };
+	uint64_t mem;
+	size_t len = sizeof(mem);
+
+	sysctl(mib, 2, &mem, &len, NULL, 0);
+	return mem;
+}
+
+#ifdef MADV_FREE
+#define FIO_MADV_FREE	MADV_FREE
+#endif
+
+/* XXX NetBSD doesn't have getopt_long_only */
+#define	getopt_long_only	getopt_long
+
+#endif
diff --git a/os/os.h b/os/os.h
index d128f02..b7fce80 100644
--- a/os/os.h
+++ b/os/os.h
@@ -8,6 +8,8 @@
 #include "os-linux.h"
 #elif defined(__FreeBSD__)
 #include "os-freebsd.h"
+#elif defined(__NetBSD__)
+#include "os-netbsd.h"
 #elif defined(__sun__)
 #include "os-solaris.h"
 #elif defined(__APPLE__)
@@ -48,6 +50,7 @@
 #define fio_getaffinity(pid, mask)	do { } while (0)
 #define fio_cpu_clear(mask, cpu)	do { } while (0)
 #define fio_cpuset_exit(mask)		(-1)
+typedef unsigned long os_cpu_mask_t;
 #endif
 
 #ifndef FIO_HAVE_IOPRIO

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: fio netbsd support
  2010-05-12  8:29 fio netbsd support YAMAMOTO Takashi
@ 2010-05-12 13:06 ` Jens Axboe
  2010-05-20  9:18   ` YAMAMOTO Takashi
  0 siblings, 1 reply; 6+ messages in thread
From: Jens Axboe @ 2010-05-12 13:06 UTC (permalink / raw)
  To: YAMAMOTO Takashi; +Cc: fio

On Wed, May 12 2010, YAMAMOTO Takashi wrote:
> hi,
> 
> the attached patch is for preliminary support for netbsd.

Thanks, looks good. Applied. The rb bit is a bit icky, but we can fix
that up later.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: fio netbsd support
  2010-05-12 13:06 ` Jens Axboe
@ 2010-05-20  9:18   ` YAMAMOTO Takashi
  2010-05-20  9:20     ` Jens Axboe
  0 siblings, 1 reply; 6+ messages in thread
From: YAMAMOTO Takashi @ 2010-05-20  9:18 UTC (permalink / raw)
  To: jens.axboe; +Cc: fio

> On Wed, May 12 2010, YAMAMOTO Takashi wrote:
>> hi,
>> 
>> the attached patch is for preliminary support for netbsd.
> 
> Thanks, looks good. Applied. The rb bit is a bit icky, but we can fix
> that up later.
> 
> -- 
> Jens Axboe

thanks.

it seems that the following small change is necessary to catch up with
the recent changes.

YAMAMOTO Takashi


Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>

diff --git a/Makefile.NetBSD b/Makefile.NetBSD
index 2fb089e..c223ab2 100644
--- a/Makefile.NetBSD
+++ b/Makefile.NetBSD
@@ -8,6 +8,9 @@ OBJS = gettime.o fio.o ioengines.o init.o stat.o log.o time.o filesetup.o \
 	eta.o verify.o memory.o io_u.o parse.o mutex.o options.o \
 	rbtree.o smalloc.o filehash.o helpers.o profile.o debug.o
 
+OBJS += lib/rand.o
+OBJS += lib/flist_sort.o
+
 OBJS += crc/crc7.o
 OBJS += crc/crc16.o
 OBJS += crc/crc32.o


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: fio netbsd support
  2010-05-20  9:18   ` YAMAMOTO Takashi
@ 2010-05-20  9:20     ` Jens Axboe
  2010-05-21  1:49       ` YAMAMOTO Takashi
  0 siblings, 1 reply; 6+ messages in thread
From: Jens Axboe @ 2010-05-20  9:20 UTC (permalink / raw)
  To: YAMAMOTO Takashi; +Cc: fio

On Thu, May 20 2010, YAMAMOTO Takashi wrote:
> > On Wed, May 12 2010, YAMAMOTO Takashi wrote:
> >> hi,
> >> 
> >> the attached patch is for preliminary support for netbsd.
> > 
> > Thanks, looks good. Applied. The rb bit is a bit icky, but we can fix
> > that up later.
> > 
> > -- 
> > Jens Axboe
> 
> thanks.
> 
> it seems that the following small change is necessary to catch up with
> the recent changes.

Indeed, thanks. I should have noticed that. I have committed it.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: fio netbsd support
  2010-05-20  9:20     ` Jens Axboe
@ 2010-05-21  1:49       ` YAMAMOTO Takashi
  2010-05-21  5:14         ` Jens Axboe
  0 siblings, 1 reply; 6+ messages in thread
From: YAMAMOTO Takashi @ 2010-05-21  1:49 UTC (permalink / raw)
  To: jens.axboe; +Cc: fio

hi,

> On Thu, May 20 2010, YAMAMOTO Takashi wrote:
>> > On Wed, May 12 2010, YAMAMOTO Takashi wrote:
>> >> hi,
>> >> 
>> >> the attached patch is for preliminary support for netbsd.
>> > 
>> > Thanks, looks good. Applied. The rb bit is a bit icky, but we can fix
>> > that up later.
>> > 
>> > -- 
>> > Jens Axboe
>> 
>> thanks.
>> 
>> it seems that the following small change is necessary to catch up with
>> the recent changes.
> 
> Indeed, thanks. I should have noticed that. I have committed it.

and it seems that you forgot to add os-netbsd.h.

YAMAMOTO Takashi

> 
> -- 
> Jens Axboe


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: fio netbsd support
  2010-05-21  1:49       ` YAMAMOTO Takashi
@ 2010-05-21  5:14         ` Jens Axboe
  0 siblings, 0 replies; 6+ messages in thread
From: Jens Axboe @ 2010-05-21  5:14 UTC (permalink / raw)
  To: YAMAMOTO Takashi; +Cc: fio

On Fri, May 21 2010, YAMAMOTO Takashi wrote:
> hi,
> 
> > On Thu, May 20 2010, YAMAMOTO Takashi wrote:
> >> > On Wed, May 12 2010, YAMAMOTO Takashi wrote:
> >> >> hi,
> >> >> 
> >> >> the attached patch is for preliminary support for netbsd.
> >> > 
> >> > Thanks, looks good. Applied. The rb bit is a bit icky, but we can fix
> >> > that up later.
> >> > 
> >> > -- 
> >> > Jens Axboe
> >> 
> >> thanks.
> >> 
> >> it seems that the following small change is necessary to catch up with
> >> the recent changes.
> > 
> > Indeed, thanks. I should have noticed that. I have committed it.
> 
> and it seems that you forgot to add os-netbsd.h.

Seems so indeed, should be there now :-)

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-05-21  5:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-12  8:29 fio netbsd support YAMAMOTO Takashi
2010-05-12 13:06 ` Jens Axboe
2010-05-20  9:18   ` YAMAMOTO Takashi
2010-05-20  9:20     ` Jens Axboe
2010-05-21  1:49       ` YAMAMOTO Takashi
2010-05-21  5:14         ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox