Recent changes (master)
The following changes since commit e0b3258bde6f39ab3a9d178b56526b65e0e32a8d:
filesetup: Initialize all members of struct fio_file (2018-03-09 21:34:44 -0700)
are available in the git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to c4bf91427a4fd1fbdb662667307189eabacf45b5:
Merge branch 'master' of https://github.com/bvanassche/fio (2018-03-12 18:13:10 -0600)
----------------------------------------------------------------
Bart Van Assche (4):
configure: Disable lex on NetBSD
Rename struct rb_node into struct fio_rb_node
stat: Fix a compiler warning in __show_run_stats()
parse: Fix two compiler warnings
Jens Axboe (1):
Merge branch 'master' of https://github.com/bvanassche/fio
configure | 4 +++- iolog.c | 4 ++-- iolog.h | 2 +- lib/rbtree.c | 49 +++++++++++++++++++++++++------------------------ lib/rbtree.h | 37 +++++++++++++++++++------------------ parse.c | 4 ++-- stat.c | 5 +++-- t/dedupe.c | 6 +++--- verify.c | 2 +- 9 files changed, 59 insertions(+), 54 deletions(-)
---
Diff of recent changes:
configure +3 -1
@@ -252,6 +252,8 @@ elif check_define __linux__ ; then targetos="Linux" elif check_define __OpenBSD__ ; then targetos='OpenBSD' +elif check_define __NetBSD__ ; then + targetos='NetBSD' elif check_define __sun__ ; then targetos='SunOS' CFLAGS="$CFLAGS -D_REENTRANT"
@@ -280,7 +282,7 @@ fi # cross-compiling to one of these OSes then you'll need to specify # the correct CPU with the --cpu option. case $targetos in -AIX|OpenBSD) +AIX|*BSD) # Unless explicitly enabled, turn off lex. # OpenBSD will hit syntax error when enabled. if test -z "$disable_lex" ; then
iolog.c +2 -2
@@ -184,7 +184,7 @@ int read_iolog_get(struct thread_data *td, struct io_u *io_u)void prune_io_piece_log (struct thread_data *td) {struct io_piece *ipo; -struct rb_node *n; +struct fio_rb_node *n;while ((n =rb_first (&td->io_hist_tree)) !=NULL ) { ipo = rb_entry(n, struct io_piece, rb_node);
@@ -208,7 +208,7 @@ void prune_io_piece_log(struct thread_data *td)*/ void log_io_piece (struct thread_data *td,struct io_u *io_u) { -struct rb_node **p, *parent; +struct fio_rb_node **p, *parent;struct io_piece *ipo, *__ipo; ipo =malloc (sizeof (struct io_piece ));
iolog.h +1 -1
@@ -199,7 +199,7 @@ enum {*/ struct io_piece {union { -struct rb_node rb_node; +struct fio_rb_node rb_node;struct flist_head list; };struct flist_head trim_list;
lib/rbtree.c +25 -24
147 lines not on this page · raw message
lib/rbtree.h +19 -18
@@ -34,7 +34,7 @@static inline struct page *rb_search_page_cache (struct inode * inode,unsigned long offset) { -struct rb_node * n = inode->i_rb_page_cache.rb_node; +struct fio_rb_node * n = inode->i_rb_page_cache.rb_node;struct page * page;while (n)
@@ -53,10 +53,10 @@ static inline struct page * rb_search_page_cache(struct inode * inode,static inline struct page *__rb_insert_page_cache (struct inode * inode,unsigned long offset, -struct rb_node * node) +struct fio_rb_node * node) { -struct rb_node ** p = &inode->i_rb_page_cache.rb_node; -struct rb_node * parent =NULL ; +struct fio_rb_node ** p = &inode->i_rb_page_cache.rb_node; +struct fio_rb_node * parent =NULL ;struct page * page;while (*p)
@@ -79,7 +79,7 @@ static inline struct page * __rb_insert_page_cache(struct inode * inode,static inline struct page *rb_insert_page_cache (struct inode * inode,unsigned long offset, -struct rb_node * node) +struct fio_rb_node * node) {struct page * ret;if ((ret =__rb_insert_page_cache (inode, offset, node)))
@@ -97,34 +97,34 @@ static inline struct page * rb_insert_page_cache(struct inode * inode,#include <stdlib.h> #include <inttypes.h> -struct rb_node +struct fio_rb_node {intptr_t rb_parent_color;#define RB_RED 0#define RB_BLACK 1 -struct rb_node *rb_right; -struct rb_node *rb_left; +struct fio_rb_node *rb_right; +struct fio_rb_node *rb_left; } __attribute__((aligned (sizeof (long ))));/* The alignment might seem pointless, but allegedly CRIS needs it */ struct rb_root { -struct rb_node *rb_node; +struct fio_rb_node *rb_node; }; -#define rb_parent (r) ((struct rb_node *)((r)->rb_parent_color & ~3)) +#define rb_parent (r) ((struct fio_rb_node *)((r)->rb_parent_color & ~3))#define rb_color (r) ((r)->rb_parent_color & 1)#define rb_is_red (r) (!rb_color(r))#define rb_is_black (r) rb_color(r)#define rb_set_red (r) do { (r)->rb_parent_color &= ~1; } while (0)#define rb_set_black (r) do { (r)->rb_parent_color |= 1; } while (0) -static inline void rb_set_parent (struct rb_node *rb,struct rb_node *p) +static inline void rb_set_parent (struct fio_rb_node *rb,struct fio_rb_node *p) { rb->rb_parent_color = (rb->rb_parent_color &3 ) | (uintptr_t )p; } -static inline void rb_set_color (struct rb_node *rb,int color) +static inline void rb_set_color (struct fio_rb_node *rb,int color) { rb->rb_parent_color = (rb->rb_parent_color & ~1 ) | color; }
@@ -136,15 +136,16 @@ static inline void rb_set_color(struct rb_node *rb, int color)#define RB_EMPTY_NODE (node) (rb_parent(node) == node)#define RB_CLEAR_NODE (node) (rb_set_parent(node, node)) -extern void rb_insert_color (struct rb_node *,struct rb_root *); -extern void rb_erase (struct rb_node *,struct rb_root *); +extern void rb_insert_color (struct fio_rb_node *,struct rb_root *); +extern void rb_erase (struct fio_rb_node *,struct rb_root *);/* Find logical next and previous nodes in a tree */ -extern struct rb_node *rb_first (struct rb_root *); -extern struct rb_node *rb_next (const struct rb_node *); +extern struct fio_rb_node *rb_first (struct rb_root *); +extern struct fio_rb_node *rb_next (const struct fio_rb_node *); -static inline void rb_link_node (struct rb_node * node,struct rb_node * parent, -struct rb_node ** rb_link) +static inline void rb_link_node (struct fio_rb_node * node, +struct fio_rb_node * parent, +struct fio_rb_node ** rb_link) { node->rb_parent_color = (uintptr_t )parent; node->rb_left = node->rb_right =NULL ;
parse.c +2 -2
@@ -172,7 +172,7 @@ static unsigned long long get_mult_time(const char *str, int len, c =strdup (p);for (i =0 ; i <strlen (c); i++) - c[i] =tolower (c[i]); + c[i] =tolower ((unsigned char )c[i]);if (!strncmp ("us" , c,2 ) || !strncmp ("usec" , c,4 )) mult =1 ;
@@ -218,7 +218,7 @@ static unsigned long long __get_mult_bytes(const char *p, void *data, c =strdup (p);for (i =0 ; i <strlen (c); i++) { - c[i] =tolower (c[i]); + c[i] =tolower ((unsigned char )c[i]);if (is_separator (c[i])) { c[i] ='\0' ;break ;
stat.c +3 -2
@@ -1860,13 +1860,14 @@ void __show_run_stats(void)char time_buf[32 ];struct timeval now;unsigned long long ms_since_epoch; +time_t tv_sec;gettimeofday (&now,NULL ); ms_since_epoch = (unsigned long long )(now.tv_sec) *1000 + (unsigned long long )(now.tv_usec) /1000 ; -os_ctime_r ((const time_t *) &now.tv_sec, time_buf, -sizeof (time_buf)); + tv_sec = now.tv_sec; +os_ctime_r (&tv_sec, time_buf,sizeof (time_buf));if (time_buf[strlen (time_buf) -1 ] =='\n' ) time_buf[strlen (time_buf) -1 ] ='\0' ;
t/dedupe.c +3 -3
@@ -49,7 +49,7 @@ struct extent { };struct chunk { -struct rb_node rb_node; +struct fio_rb_node rb_node;uint64_t count;uint32_t hash[MD5_HASH_WORDS ];struct flist_head extent_list[0 ];
@@ -194,7 +194,7 @@ static struct chunk *alloc_chunk(void)static void insert_chunk (struct item *i) { -struct rb_node **p, *parent; +struct fio_rb_node **p, *parent;struct chunk *c;int diff;
@@ -497,7 +497,7 @@ static void show_stat(uint64_t nextents, uint64_t nchunks)static void iter_rb_tree (uint64_t *nextents,uint64_t *nchunks) { -struct rb_node *n; +struct fio_rb_node *n; *nchunks = *nextents =0 ;
verify.c +1 -1
@@ -1307,7 +1307,7 @@ int get_next_verify(struct thread_data *td, struct io_u *io_u)return 0 ;if (!RB_EMPTY_ROOT (&td->io_hist_tree)) { -struct rb_node *n =rb_first (&td->io_hist_tree); +struct fio_rb_node *n =rb_first (&td->io_hist_tree); ipo = rb_entry(n, struct io_piece, rb_node);