On Wed, Oct 30 2013, Bruce Cran wrote: > It seems there's a bug in the x86_64 version of do_cpuid() that causes fio > to segfault when built with clang at lower optimization levels: > > static inline void do_cpuid(unsigned int *eax, unsigned int *ebx, > unsigned int *ecx, unsigned int *edx) > { > asm volatile("cpuid" > : "=a" (*eax), "=b" (*ebx), "=r" (*ecx), "=d" (*edx) > : "0" (*eax), "2" (*ecx) > : "memory"); > } > > via Tijl Coosemans: > > Should be: "=c" (*ecx) > > But you can also use the '+' modifier and remove the input operands: > > : "+a" (*eax), "=b" (*ebx), "+c" (*ecx), "=d" (*edx) > : > : "memory" +a/+c doesn't work, but =c will do the trick. -- 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