#include #include #include noinline long long bench(long long value, int shift, int divide) { int i; unsigned long j; unsigned mod = 0; j = jiffies; for (i = 0; i < 100000000; i++) { mod += value & (divide - 1); value >>= shift; value ^= 0x12345678; } j = jiffies - j; printk("and_shift: %ld\n", j); msleep(1000); j = jiffies; for (i = 0; i < 100000000; i++) { mod += do_div(value, divide); value ^= 0x12345678; } j = jiffies - j; printk("do_div: %ld\n", j); msleep(1000); return mod ^ value; } static int __init dump_init(void) { bench(123456789, 7, 345); return -EIO; } static void __exit dump_exit(void) { printk("dump exit\n"); } module_init(dump_init) module_exit(dump_exit) MODULE_LICENSE("GPL");