Hi, Yes, if you can live with O_DIRECT, libaio performs a lot better than posixaio. Nobody should use posixaio in their apps if they care just a bit about performance, it just doesn't work very well. Using CLONE_IO would help, but even with that it's still pretty suboptimal. On Tue, Sep 01 2009, Learner Study wrote: > Hi Jens: > > Thanks - it works well. > > I'm using FIO with posixaio ioengine and performance is pretty bad. I'm > trying to get libaio to work in my MIPS environment. Based on my tests in > previous x86 env, I had seen libaio to give better performance with FIO as > compared to posixaio. > > Again, thanks for your prompt help. > > On Mon, Aug 31, 2009 at 10:38 PM, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote: > > > On Mon, Aug 31 2009, Learner Study wrote: > > > Hello: > > > > > > I checked README for FIO and apparently it isn't yet supported on MIPS64 > > > platform yet (atleast until version 1.30) > > > Does someone have a patch I could use to do this? Any other ideas... > > > > I just checked in the below patch. I haven't checked the memory ordering > > defines yet, not sure if any of the mips cpus are weaker ordered. I'll > > check that later, this should at least get you started. > > > > commit c28b912f77c3dafbdcdcf4def2c8c1f9c127100c > > Author: Jens Axboe <jens.axboe@xxxxxxxxxx> > > Date: Tue Sep 1 07:23:57 2009 +0200 > > > > MIPS support > > > > Signed-off-by: Jens Axboe <jens.axboe@xxxxxxxxxx> > > > > diff --git a/arch/arch-mips.h b/arch/arch-mips.h > > new file mode 100644 > > index 0000000..759d3a9 > > --- /dev/null > > +++ b/arch/arch-mips.h > > @@ -0,0 +1,25 @@ > > +#ifndef ARCH_MIPS64_H > > +#define ARCH_MIPS64_H > > + > > +#define ARCH (arch_mips) > > + > > +#ifndef __NR_ioprio_set > > +#define __NR_ioprio_set 314 > > +#define __NR_ioprio_get 315 > > +#endif > > + > > +#ifndef __NR_fadvise64 > > +#define __NR_fadvise64 215 > > +#endif > > + > > +#ifndef __NR_sys_splice > > +#define __NR_sys_splice 263 > > +#define __NR_sys_tee 265 > > +#define __NR_sys_vmsplice 266 > > +#endif > > + > > +#define read_barrier() __asm__ __volatile__("": : :"memory") > > +#define write_barrier() __asm__ __volatile__("": : > > :"memory") > > +#define nop __asm__ __volatile__("": : :"memory") > > + > > +#endif > > diff --git a/arch/arch.h b/arch/arch.h > > index 28c6632..87db222 100644 > > --- a/arch/arch.h > > +++ b/arch/arch.h > > @@ -31,6 +31,8 @@ enum { > > #include "arch-sparc64.h" > > #elif defined(__arm__) > > #include "arch-arm.h" > > +#elif defined(__mips__) || defined(__mips64__) > > +#include "arch-mips.h" > > #else > > #error "Unsupported arch" > > #endif > > > > -- > > Jens Axboe > > > > -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html